opengl中GL_TRIANGLES的显示问题


 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 表示顶点顺序为顺时针方向的表面为正面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值