我有一些困難,使用GLM庫使用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文件紋理COORDS在裝入一個OBJ文件將具有相同數量的索引(無重複)vertexs作爲紋理COORDS的那麼「GLMtriangle:結構」將包含vertexs「GLuint tindices [3]」該索引texturecoord陣列「texcoords」。但是我發現的例子沒有與頂點相同數量的紋理座標。
使用上述認識我試圖通過每個GLMtriangle循環和添加索引的紋理COORDS到一個數組把所有紋理COORDS中的數組。給我一個每個頂點的紋理座標。
基於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
這是我當前的輸出。
,你有沒有使用一個實際考慮[處理網呢?(http://assimp.sourceforge.net/)。 Open Asset將網格正確設置爲三角形,可以上傳和渲染。 – 2012-04-22 10:34:21
我加載來自同一OBJ裝載機的vertexs和指數法,我不得不使用GLM OBJ裝載機分配 – Andrew 2012-04-22 10:41:52
在我看來,'GLMmodel'表示數據相當原始。你不能使用頂點索引來查找tex座標。你需要tex索引('tindices')。 – 2012-04-22 10:51:01