私がobjローダーを書いて、次しまっ:CとロードOBJファイルとバグ++とOpenGL
それは黄色のワシですが、あなたが見るように、それは翼にその足から行くいくつかの追加の三角形があります。私は使用されるコード:
{....
glBindBuffer(GL_ARRAY_BUFFER,vbo);
glBufferData(GL_ARRAY_BUFFER,sizeof(data),data,GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
glBufferData(GL_ELEMENT_ARRAY_BUFFER,numOfIndices*sizeof(GLuint),indices,GL_STATIC_DRAW);
}
void Mesh::draw()
{
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER,vbo);
glVertexAttribPointer(
0, // attribute 0. No particular reason for 0, but must match the layout in the shader.
3, // size
GL_FLOAT, // type
GL_FALSE, // normalized?
0, // stride
(void*)0 // array buffer offset
);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,ibo);
glDrawElements(GL_TRIANGLES,numOfIndices,GL_UNSIGNED_INT,(void*)0 );
glDisableVertexAttribArray(0);
}
をデータ頂点とインデックスの配列である場合は、インデックスの配列です。
データとインデックスをobj形式で取り込んで保存し、3Dエディタで結果ファイルを開くと、eagleはうまく見えます。これらの追加の三角形はありません(データとインデックスの両方がうまくいくことを意味します)。
コードを修正してワシを正常に見せようと時間を費やしましたが、今はアイデアが足りなくなりました。だから、もしあなたが私と一緒にイーグル普通のものを共有する方法を知っていればお願いします。問題は、ここでローダにある([]データから、[]を指数)ローダからのデータの中からなされるOBJモデル
レンダリングでエラーが発生していますか?*読み込み中ではありませんか?読み込まれたメッシュデータを見るにはデバッガを使いますが、それは正しいか?もちろん、それを印刷することもできます。 –
私はあなたの意見を見て、私は同じ考えを持っていました。それらをテストするために、データとインデックスをobjに変換し、上記のように3Dエディタで通常のモデルを得ました。ロードがテストされ、うまくいきます –