有人可以解释我如何确定三角形是顺时针还是逆时针?
如果我使用以下代码渲染三角形
glBegin(GL_POLYGON);
glVertex3f(-0.5f, -0.5f, 0.0f);
glVertex3f(-0.5f, 0.5f, 0.0f);
glVertex3f(0.5f, 0.5f, 0.0f);
glEnd();
如果它是顺时针还是逆时针,我该怎么办?我知道它也取决于你正在看的三角形的面,但我怎么能在代码中看到它?我已经读过OpenGL默认使用逆时针方向。但是,如果我考虑OpenGL如何绘制顶点,对我来说似乎顺时针。我认为这只是我推理中的一个错误。
答案 0 :(得分:1)
看看this说:
多边形到窗口坐标的投影被称为顺时针缠绕,如果一个假想的对象跟随从其第一个顶点,第二个顶点等到其最后一个顶点的路径,最后回到它的第一个顶点,则移动到围绕多边形内部的顺时针方向。
重要的是要考虑与所述多边形投影到窗口坐标的关系。
基本上,当您说默认情况下OpenGL使用逆时针时,您的推理会稍微偏离。但为了什么?它是确定前面的多边形,以便剔除(不渲染)多边形不可见的多边形。也就是说,绕组有一些目的,它们不仅恰好是ccw或cw winded。
在侧节点上,停止使用glBegin()和glEnd()。
答案 1 :(得分:0)
默认情况下,glVertex3f函数以逆时针顺序提供这些点。
您在视觉上提供的点构成一个顺时针三角形。
您看到的是三角形的背面。