컴퓨터 그래픽스를 배울때 보통 제일 처음 접해보는 포맷인 obj 파일에 대한 설명입니다.
제가 직접 열어본 여러 obj 파일들을 참고해 작성 했습니다. 그래서 모든 obj에 적용되진 않을 수 있습니다.

구성
주요한 부분만 설명하자면
v : 정점 값 즉 3차원 좌표에서의 점의 위치 값을 나타내는 값이다.
3차원 공간을 x,y,z 축으로 표현한다면, 위의 사진 과 같이 각각 x,y,z 값에 해당하는 3개의 값을 가진다.
vt : texture uv map에서의 좌표값으로 위의 사진에서 u,v 가 각각 1인 텍스쳐에서 의 좌표값 2가지를 가지고 있지만, uvw 3개 까지 가지는 경우도 많다. 여기서 w는 깊이 값이다. (하지만 3가지 다 가지더라도 w는 0을 가지는 경우가 많다.)
vn : 노말 벡터 값으로, 크기가 1이고 방향만 나타내주는 값이다. 정점의 방향을 표현하는데 사용한다. 그리고 이 방향 값을 보통 빛을 표현하는데 사용되고, 앞 뒤를 구분하는데 사용할 수도 있을 거 같다.
f : x/y/z 이런 형태가 여러개 이어져 있는 형태로 되어 있는데 위의 사진에선 3개 까지만 있지만 수는 제한없이 여러개 있을 수 있다. 여기서 내가 x로 표현 한부분은 몇번째 v(vertex) 값을 사용 할 것인지 y 는 vt, z 는 vn을 나타낸다. face 즉 면의 형태를 표현 하는 값으로 위의 사진의 경우 3개만 있으므로 전부 삼각 형을 나타내는 것이다.
face 값이 음수인 경우가 있는데, x 로 표현한 vertex를 예로 들면 위에서 부터 f 값이 나오기 전까지 쌓인 vertex 중 뒤에서 부터의 순서이다. 만약 저기 위에 사진에있는 데이터들이 2개 붙어 있고 face가 음수인경우 첫번째 페이스 값 -3을 양수로 변형 한다면 첫번째 까지 쌓인 vertex수는 4개이므로 1이 된다. 만약 두번째 face 모음들의 -3인경우 vertex수는 8개 이므로 5가 된다.
mtl 파일은 obj 파일의 데이터로 표현된 mesh 가 어떤성질로 표현 되는지 에 대한 데이터를 가지고 있는 값으로 물체의 색 반사 정도 이러한 값들을 가지고 있다.
mtllib : 사용할 mtl 파일의 이름을 나타낸다.
usemtl : mtl 파일 안에서 어떤 이름의 mtl 값을 사용할지 나타내는 것이다.