0

1 つの VBO に複数のメッシュがある場合、それらのメッシュに個別に変換を適用する方法はありますか?

2 つのメッシュを持つ VBO がバインドされている間に glDrawElements を呼び出すと、現在の MVP マトリックスが何であれ、それらの 2 つのメッシュが描画されます。画面上で一度に 20 個以上の独立して移動するメッシュがある場合、20 個の VBO が必要でしょうか? または、オフセットとカウントを glDrawElements に指定して、VBO に格納されている最初のメッシュのみをレンダリングする方法はありますか? このようにして、MVP マトリックスを変更し、VBO で 2 番目のメッシュをレンダリングすることができました。

4

1 に答える 1

1

5、11、13個の三角形がそれぞれ1つのインデックスバッファにパックされた3つのメッシュがある場合、2つの別々のメッシュを次のように描画できます。

// assumes index buffer has been bound
// set modelview
glDrawElements(GL_TRIANGLES, 5 * 3, GL_UNSIGNED_SHORT, 0);
// set modelview
glDrawElements(GL_TRIANGLES, 11 * 3, GL_UNSIGNED_SHORT, 5 * 3 * sizeof(unsigned short));
// set modelview
glDrawElements(GL_TRIANGLES, 13 * 3, GL_UNSIGNED_SHORT, (5 + 11) * 3 * sizeof(unsigned short));

最後の引数でポインタをオフセットすることにより、オフセットを指定します。

于 2012-04-18T17:39:20.033 に答える