2

GLMライブラリを使用してobjファイルからテクスチャ座標をロードするのに問題があります

OpenGL3.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」には、texturecoord配列「texcoords」にインデックスを付ける頂点「GLuinttindices[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

これが私の現在の出力です。

glmの問題

4

1 に答える 1

2

サンプルの擬似コードは、少なくとも健全に見えます。

ワイルドな推測:適切な値をglTexCoordPointer()(またはglVertexAttribPointer())に渡していない。size入力が速すぎると、またはのtype値を間違えるのは簡単です。擬似コードからsize2である必要があります。

于 2012-04-22T13:41:54.607 に答える