美文网首页
opengl学习-面剔除

opengl学习-面剔除

作者: 小杰66 | 来源:发表于2021-04-24 08:36 被阅读0次

    OpenGL能够检查所有面向观察者的面,并渲染它们,而丢弃那些背向的面,以节省片段着色器调用。我们要做的就是告诉OpenGL哪些是正向面哪些是背向面。

    环绕顺序

    当我们定义一组三角形顶点时,我们需要以特定的环绕顺序来定义它们,可能是顺时针或者逆时针。OpenGL在渲染图元的时候将使用这个信息来决定一个三角形是一个正向三角形还是背向三角形。默认情况下,逆时针顶点所定义的三角形将会被处理为正向三角形。

    开启面剔除

    glEnable(GL_CULL_FACE);

    面剔除类型

    glCullFace(GL_FRONT);

    • GL_BACK:只剔除背向面。
    • GL_FRONT:只剔除正向面。
    • GL_FRONT_AND_BACK:剔除正向面和背向面。

    设置正向面

    glFrontFace(GL_CCW);
    GL_CCW 默认值 逆时针环绕顺序为正向面
    GL_CW 顺时针环绕顺序为正向面

    当逆时针顺序定义三角形顶点,然后设置顺时针环绕为正向面glEnable(GL_CULL_FACE);``glFrontFace(GL_CW);得到结果如下,只会绘制原本不应该看见的立方体内部。

    image.png

    相关文章

      网友评论

          本文标题:opengl学习-面剔除

          本文链接:https://www.haomeiwen.com/subject/hxvlrltx.html