OpenGL 背面剔除

OpenGL 中如何开启背面剔除

  在OpenGL种可使用glEnable(GL_CULL_FACE)开启背面剔除功能,即把那些我们看不见的面删除。但在剔除之前我们需要定义正面和背面,这个可以用法线来理解。在数学学科中,法线是用右手法则定义的,如图:

  

右手法则

  首先右手手指全部张开,使右手除拇指之外的四指从起始向量向终止向量握住,大拇指的方向即为法线方向。OpenGL中默认是右手法则,即点的顺序为逆时针方向时,这个面为正面。但同时OpenGL也提供了API改变默认的设定。

  • glFrontFace可改变正面判断原则,默认时GL_CCW(逆时针),可改为GL_CW(顺时针);
  • glCullFace可改变要剔出的面,默认是GL_BACK(剔除背面),还可以是GL_FRONT(剔除正面),GL_FRONT_AND_BACK(剔除所有面)。
posted @ 2018-04-01 22:32  北冥有鱼其名为鲲  阅读(999)  评论(0编辑  收藏  举报