주어진 obj 파일을 사용하여 모델을 렌더링하는 프로그램을 만들고 있습니다. 지금은 텍스처 매핑없이 작동하지만이 기능을 구현하고 재질 라이브러리 파일을 읽으려고합니다.obj 파일에서로드 된 모델에 텍스처를 매핑하는 효율적인 방법
하지만 꼭지점 수는 텍스처 좌표 수와 다를 수 있습니다. 이 예제를보십시오 :
# Blender v2.58 (sub 0) OBJ File: ''
# www.blender.org
mtllib /home/frenk/Documenti/Progetti/dado.mtl
o Cube
v 1.000000 -1.000000 -1.000000
v 1.000000 -1.000000 1.000000
v -1.000000 -1.000000 1.000000
v -1.000000 -1.000000 -1.000000
v 1.000000 1.000000 -0.999999
v 0.999999 1.000000 1.000001
v -1.000000 1.000000 1.000000
v -1.000000 1.000000 -1.000000
vt 0.593772 0.740196
vt 0.593666 0.869263
vt 0.394866 0.869219
vt 0.394973 0.740152
vt 0.792572 0.740240
vt 0.993810 0.740284
vt 0.993703 0.869351
vt 0.792466 0.869307
vt 0.792360 0.995233
vt 0.593560 0.995189
vt 0.593984 0.482061
vt 0.792784 0.482105
vt 0.792678 0.611172
vt 0.593878 0.611129
usemtl dado_verde_dado.tga
s off
f 1/1 2/2 3/3 4/4
f 5/5 8/6 7/7 6/8
f 1/1 5/5 6/8 2/2
f 2/2 6/8 7/9 3/10
f 3/11 7/12 8/13 4/14
f 5/5 1/1 4/14 8/13
인덱스가 일치하지 않으므로 drawElements() 함수를 사용할 수 없습니다. 버텍스 좌표를 텍스처 좌표에 일대일로 매핑해야합니까?
//example
glBegin(GLTriangles);
gltexcoord2f(...); glvertex3f(...);
...
blaBlaBla(...);
...
glEnd();
나는 효율적인 API가 내가 원하는 것을하기 위해 존재해야한다고 생각합니다.
ASSIMP 라이브러리는 .obj 파일을로드하고 원하는대로 모든 것을 설정합니다. 그러나 모델을 사용하려면 여전히 GL 객체를 생성해야합니다. – Robinson