6

私は OpenGL に関する本を何冊か読んでいますが、そのうちの 2 冊では常に反時計回りに頂点を定義しています。私が読んだことから、これは非常に重要です。なぜなら、これは表と裏がどこにあるかを決定するからです.

しかし、私はhttp://www.arcsynthesis.org/gltut/のチュートリアルも読んでおり、彼はそれらを時計回りに定義しています。

const float vertexPositions[] = {
    0.75f, 0.75f, 0.0f, 1.0f,
    0.75f, -0.75f, 0.0f, 1.0f,
    -0.75f, -0.75f, 0.0f, 1.0f,
};

それがopenglのデフォルトであるため、常に反時計回りの表記法を使用すべきではありませんか?

また、なぜ型が a なのfloatですか? それはすべきではありませんGLfloatか?

4

1 に答える 1

9

それがopenglのデフォルトであるため、常に反時計回りの表記法を使用すべきではありませんか?

それはあなたの選択です。CCW または CW 表記を使用できます。でいつでもこの動作をオーバーライドできますglFrontFace()。どちらのハードウェアでも動作に違いはありませんが、CCW を優先するサードパーティのライブラリなどを使用しようとすると、CW を選択すると予期しないトラブルが発生する可能性があると思います。

また、なぜタイプが float なのですか? GLfloat ではないでしょうか。

である必要がありますGLfloat。一方、ほとんどのプラットフォームでは、floatGLfloatはまったく同じであり、違いは見つかりません。GLfloat移植性の観点からは、使用することをお勧めします。もう 1 つの考慮事項: 変数がグラフィックスのレンダリングに使用されることを強調しているため、これは良いことです。

于 2012-12-25T18:15:05.683 に答える