頂点バッファオブジェクトをテクスチャリング
-
22-08-2019 - |
質問
私は何をしたいOpenGLと(大)地形を描いています。だから私は頂点のセットを持って、私はVRAMで頂点バッファオブジェクトに格納256×256を言うことができます。私はそれらを適切に三角ので、私は顔用のインデックスバッファを持っています。
// vertexes
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vertexBufferId);
glVertexPointer(3, GL_FLOAT, 0, 0);
// textures
glBindBufferARB(GL_ARRAY_BUFFER_ARB, texCoordBufferId);
glTexCoordPointer(2, GL_FLOAT, 0, 0);
// indexes
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, indexBufferId);
// draw it
glDrawRangeElements(GL11.TRIANGLES, 0, size - 1, size, GL_UNSIGNED_INT, 0);
Iは、各三角形に適用されなければならない正方形テクスチャをロード。だから私は、テクスチャCOORDSの問題を持ってます:
各頂点は、それが4つのテクスチャCOORDSを必要手段4つの三角形に含まれています。しかしglDrawRangeElements()は頂点と同じくらいテクスチャCOORDSを必要とします。
だから私はVBOsでこれを行うにはどのような方法が表示されません。たぶん、私の問題を解決するか、私はちょうど良いアイデアを欠いてるためのより良い概念があります。
事前に感謝します。
解決
は、テクスチャが繰り返し(またはミラー)必要がある場合、それ自体各クワッドに最良の方法は、アレイ内の位置(x、y)の数と一致するテクスチャ座標を使用することであろう。例えば。頂点の最初のラインのためにこれらのテクスチャ座標を使用します。(0.0、0.0)、(1.0、0.0)、(2.0、0.0)...(255.0、0.0)
他のヒント
あなたはおそらく、あなたがする必要があるすべては、適切なテクスチャが各頂点座標とちょうど頂点のようにそれらを渡す計算することである、シームレスタイルにあなたのテクスチャをしたいと。
所属していません StackOverflow