Learn OpenGL 笔记5.4 Face culling

Face culling面剔除,背对着相机的面,就不要显示了。

基础知识:

1.front facing

朝向摄像机

2.back facing

背对摄像机

3.winding order

缠绕顺序。当我们定义一组三角形顶点时,我们是以顺时针或逆时针的特定缠绕顺序定义它们的。 

float vertices[] = {
    // clockwise
    vertices[0], // vertex 1
    vertices[1], // vertex 2
    vertices[2], // vertex 3
    // counter-clockwise
    vertices[0], // vertex 1
    vertices[2], // vertex 3
    vertices[1]  // vertex 2  
};

 OpenGL 在渲染图元时使用顺时针还是逆时针信息来确定三角形是正面三角形还是背面三角形。 默认情况下,使用逆时针顶点定义的三角形被处理为正面三角形

定义顶点顺序时,可以将相应的三角形可视化,像它面向您,因此指定的每个三角形都逆时针旋转,就像直接面向该三角形一样。 

4.Face culling 面剔除

启动面剔除:

glEnable(GL_CULL_FACE);  

还可以剔除正面超camera的面

glCullFace(GL_FRONT);
  • GL_BACK: Culls only the back faces.
  • GL_FRONT: Culls only the front faces.
  • GL_FRONT_AND_BACK: Culls both the front and back faces.

glCullFace 的初始值是 GL_BACK。 我们还可以通过 glFrontFace 告诉 OpenGL 我们更喜欢顺时针面作为正面而不是逆时针面:

设定顺时针才是正面:

glFrontFace(GL_CCW);

 当设定为正面剔除,只显示背面的时候:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值