顶点计数器/顺时针

Mai*_*ein 6 opengl vertices

我正在阅读几本关于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,
};
Run Code Online (Sandbox Code Playgroud)

我不应该总是使用逆时针符号,因为那是opengl的默认值吗?

另外为什么是a型float?不应该是一个GLfloat

Ole*_*tov 9

我不应该总是使用逆时针符号,因为那是opengl的默认值吗?

这是你的选择.您可以使用CCW或CW表示法.您始终可以使用覆盖此行为glFrontFace().硬件没有区别,哪种方式可以工作,但是,我想,选择CW可能会在尝试使用CCW之类的第三方库时引起一些意想不到的麻烦.

为什么类型是浮动?不应该是GLfloat吗?

它应该是GLfloat.另一方面,在大多数平台上float并且GLfloat完全相同,并且找不到任何差异.GLfloat从便携性的角度来看,使用是更好的实践.另一个考虑因素:它强调变量用于图形渲染,因此这是一件好事.