6

我正在阅读几本关于 OpenGL 的书,其中两本总是逆时针定义顶点。从我读到的内容来看,这非常重要,因为它决定了正面和背面的位置。

但我也在阅读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 可能会导致一些意想不到的麻烦。

另外为什么类型是浮点数?它不应该是 GLfloat 吗?

应该是GLfloat。另一方面,在大多数平台上floatGLfloat它们完全相同,找不到任何区别。GLfloat从可移植性的角度来看,使用是更好的做法。另一个考虑:它强调变量是用于图形渲染的,所以这是一件好事。

于 2012-12-25T18:15:05.683 回答