我在使用 GLM 库从 obj 文件中加载纹理坐标时遇到了一些困难
使用 OpenGL 3.3
http://www.cs.manchester.ac.uk/ugt/COMP37111/glm/glm.h http://www.cs.manchester.ac.uk/ugt/COMP37111/glm/glm.c
我的印象是 obj 文件将具有与纹理坐标相同数量的索引(不重复)顶点,然后“GLMtriangle:Struct”将包含索引纹理坐标数组“texcoords”的顶点“GLuint tindices [3]” . 但是,我发现的示例没有与顶点相同数量的纹理坐标。
使用上述理解,我尝试通过循环遍历每个 GLMtriangle 并将索引纹理坐标添加到数组中,将所有纹理坐标放入数组中。给我每个顶点的纹理坐标。
基于 C++ 的伪代码。
for (the number of GLMtriangles)
t= (the GLMtriangle index )
//vertex0
rawTextCoords[t] = GLMmodel->texcoords [GLMtriangle.tindices[0]];
rawTextCoords[t+1] = GLMmodel->texcoords [GLMtriangle.tindices[0]+1];
//vertex1
rawTextCoords[t+2] = GLMmodel->texcoords [GLMtriangle.tindices[1]];
rawTextCoords[t+3] = GLMmodel->texcoords [GLMtriangle.tindices[1]+1];
//vertex2
rawTextCoords[t+4] = GLMmodel->texcoords [GLMtriangle.tindices[2]];
rawTextCoords[t+5] = GLMmodel->texcoords [GLMtriangle.tindices[2]+1];
od
这是我目前的输出。