我正在阅读几本关于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的默认值吗?
为什么类型为float
?不应该是GLfloat
吗?
答案 0 :(得分:9)
我不应该总是使用逆时针符号,因为那样 opengl中的默认值?
这是你的选择。您可以使用CCW或CW表示法。您始终可以使用glFrontFace()
覆盖此行为。硬件没有区别,哪种方式可以工作,但是,我想,在尝试使用CCW之类的第三方库时,选择CW会导致一些意想不到的麻烦。
为什么类型是浮点数?不应该是GLfloat吗?
应该是GLfloat
。另一方面,在大多数平台上float
和GLfloat
完全相同,并且找不到任何差异。从可移植性的角度来看,使用GLfloat
是更好的做法。另一个考虑因素:它强调变量用于图形渲染,因此这是一件好事。