opengl中GL_TRIANGLES的显示问题

来源:互联网 发布:淘宝情趣内衣模特真人 编辑:程序博客网 时间:2024/06/06 20:58


 glBegin(GL_TRIANGLES);

 glVertex3f(0.0f,0.0f,0.0f); //1

 glVertex3f(0.0f,0.3f,0.0f); //2

 glVertex3f(0.4f,0.3f,0.0f); //3

glEnd();


在使用opengl的时候这句话一直就显示不了,并不是因为背景颜色,也不是因为线的颜色,其实是因为环绕方式有问题。



顺时针:图像的背面,不能显示

逆时针:图像的正面,可以显示

这三个点正好组成了顺时针,于是显示不了图片。

若改成

 glBegin(GL_TRIANGLES);

 glVertex3f(0.0f,0.0f,0.0f); //1

 glVertex3f(0.4f,0.3f,0.0f); //3

 glVertex3f(0.0f,0.3f,0.0f); //2

 glEnd();

就变成了逆时针,于是就到了正面,就可以看到图像。

还有一点是,可以用这个解决:

glFrontFace(GL_CW);

函数原型
void glFrontFace(GLenum mode);
作用是控制多边形的正面是如何决定的。在默认情况下,mode是GL_CCW。
mode的值为:
GL_CCW 表示窗口坐标上投影多边形的顶点顺序为逆时针方向的表面为正面。
GL_CW 表示顶点顺序为顺时针方向的表面为正面。
0 0
原创粉丝点击