1

OpenGL と C を使用して 2D レンダリング エンジンを作成しています。VBO と非即時モード レンダリングに使用する方法について学習しています。私はから読んでいます:http://www.opengl.org/wiki/Vertex_Buffer_Object

チュートリアルでは、次のことを提案しています。

struct MyVertex
{
float x, y, z;        //Vertex
float nx, ny, nz;     //Normal
float s0, t0;         //Texcoord0
float s1, t1;         //Texcoord1
float s2, t2;         //Texcoord2
float padding[4];
};

法線値は必要ありません。また、1 つの頂点に対して 3 つのテクスチャ座標が存在する方法や理由がわかりません。

必要なのは Vertex (XYZ) と 1 つの Texcoord (s0, t0 <-- まだ意味がわからない) だけだと思います。

4

1 に答える 1

1

これは単なる例にすぎません。その頂点形式を福音や提案とさえ見なさないでください。実際、本格的なアプリケーションでは、それほど多くのフロートを使用することはありません。

いずれにせよ、これらの属性を削除したい場合は問題ありません。それはあなた次第です。

3 セットのテクスチャ座標が必要な理由は、サーフェスへの 3 セットのテクスチャ マッピングがあるためです。そのようなことをするのには理由がありますが、実際にはかなりまれです。

また、OpenGL にはテクスチャ座標の命名方法が異なります。OpenGL では、他のほとんどの方法で "UV" を使用するのではなく、"ST" を使用します。

于 2011-08-09T01:46:40.583 に答える