4

現在、OpenGl でプログラムを作成しています。ファイルから複雑な 3D フィギュアをレンダリングしています。コードを 3 回チェックした後、すべての値が正しく読み取られていることがわかりました。奇妙な動作をするのは法線だけです。私はそれらを次のように描いています:

     glVertex3fv(vert1);
     glVertex3fv(vert2);
     glVertex3fv(vert3);


    glNormal3fv(norm1);
    glNormal3fv(norm2);
    glNormal3fv(norm3);

値は GLFloats から読み取られています。正しい方法、または少なくとも私が間違っていることを教えてください。

4

1 に答える 1

7

を呼び出すglVertexと頂点が終了するため、その前に他のすべての頂点の状態を設定する必要があります。頂点を仕上げる前に、頂点の法線を設定する必要があります。

次のようになります。

glNormal3fv(norm1);
glVertex3fv(vert1);

glNormal3fv(norm2);
glVertex3fv(vert2);

glNormal3fv(norm3);
glVertex3fv(vert3);
于 2012-06-28T16:38:46.773 に答える