2012-12-25 4 views
6

私はOpenGLについていくつかの本を読んでおり、そのうち2つは常に頂点を時計回りに反時計回りに定義しています。私がこれを読んだことは、表と裏がどこであるかを決定するので非常に重要です。Vertices counter/clockwise

でも私は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のデフォルトですか?

また、タイプはfloatですか? GLfloatであってはなりませんか?

答えて

9

それはOpenGLで デフォルトですので、私は常に、反時計回りの表記を使用するべきではないでしょうか。

これはあなたの選択です。 CCWまたはCW表記を使用できます。 glFrontFace()でいつでもこの振る舞いを無効にすることができます。ハードウェアには違いはありませんが、CCWなどを好むサードパーティのライブラリを使用しようとすると、CWを選択すると予期せぬ問題が発生する可能性があります。

また、タイプは浮動小数点ですか?それはGLfloatではいけませんか?

GLfloatである必要があります。一方、ほとんどのプラットフォームでは、floatGLfloatはまったく同じで、違いを見つけることはできません。 GLfloatを使用する方がポータビリティの観点から優れています。もう一つ考慮すべき点は、変数がグラフィックスレンダリングに使用されることを強調しているため、行うのが良いことです。

関連する問題