質問

頂点、テクスチャ座標、および法線を解析するOBJローダーを書きました。それぞれがフロートバッファに保存され、OpenGLに渡されます。

gl.glVertexPointer(3, GL10.GL_FLOAT, 0, fbVertices);
gl.glNormalPointer(GL10.GL_FLOAT, 0, fbNormals);

しかし、インデックスバッファーをGldrawelementsにどのように渡すことになっているかについて困惑しているので、インデックスは頂点、テクスチャ、および通常の配列のインデックスを参照するが、OBJファイルの説明を読み取ると、顔は次のような形式で保存されているようです。

f 1/2/3 4/5/6 7/8/9

フォーマットがあります

vertice/texture/normal

Gldrawelementsは1つのインデックスのみを受け入れます。これは3つすべてを参照する必要がありますが、実際のOBJファイルを見ると、これは不可能と思われます。 3つすべてのインデックスをどのように渡しますか?

ここでコードのコピーを見つけることができます:http://codepad.org/melc1hic

役に立ちましたか?

解決

直接できないので、データをOpenGLに渡す前に前処理を行う必要があるため、各頂点に1つのインデックスのみが使用され、このインデックスはテクスチャ座標、通常などにも機能します。

他のヒント

.OBJファイルを解析する小さなライブラリを書き、OpenGL(LWJGL)でモデルをレンダリングするためのサンプルコードが含まれています。 VBOSを作成するためのコードは、それがどのように機能するかをアイデアするのに十分なほど簡単で明確であることを願っています。 (ライセンスはパブリックドメインです。)それを見てください。

http://darksleep.com/oobjloader/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top