単純なVBOプログラムの例を読んでいると、通常のデータと頂点データが関連付けられているように見えます。しかし、法線の定義から、法線データは顔データに関連付けられるべきだと思いました。
以下のコードセグメントから、各MyVertexの通常のデータが同じであることがわかります。したがって、「三角形の面」の通常のデータは理にかなっています。しかし、複数の面がGL_ELEMENT_ARRAY_BUFFERに格納されているのと同じ頂点を共有する可能性がある、より大きなオブジェクトの通常のデータをどのように格納するかはわかりません。
質問:OpenGLは概念的に通常のデータをどのように処理しますか?または、法線がどこかでどのように機能するかについて間違った仮定をしましたか?
(以下のコードはhttp://www.opengl.org/wiki/VBO_-_just_examplesから)
struct MyVertex
{
float x, y, z; //Vertex
float nx, ny, nz; //Normal
float s0, t0; //Texcoord0
};
MyVertex pvertex[3];
//VERTEX 0
pvertex[0].x = 0.0;
pvertex[0].y = 0.0;
pvertex[0].z = 0.0;
pvertex[0].nx = 0.0;
pvertex[0].ny = 0.0;
pvertex[0].nz = 1.0;
pvertex[0].s0 = 0.0;
pvertex[0].t0 = 0.0;
//VERTEX 1
前もって感謝します