剔除

opengl fcae culling:https://learnopengl-cn.github.io/04 Advanced OpenGL/04 Face culling/
剔除能够节省性能开销

OpenGL能够检查所有面向(Front Facing)观察者的面,并渲染它们,而丢弃那些背向(Back Facing)的面,节省我们很多的片段着色器调用(它们的开销很大!)。
但我们仍要告诉OpenGL哪些面是正向面(Front Face),哪些面是背向面(Back Face)。OpenGL使用了一个很聪明的技巧,分析顶点数据的环绕顺序(Winding Order)。

观察一个面时,正面看过去时是三角形是逆时针的,背面看过去是顺时针的.
剔除
openGl的剔除命令:

//启用剔除
glEnable(GL_CULL_FACE);
//剔除正面
glCullFace(GL_FRONT);
//剔除背面
glCullFace(GL_Back);

shaderLab的剔除:https://docs.unity3d.com/cn/current/Manual/SL-Cull.html
shaderLab也是默认背面剔除的.

// 为此通道禁用剔除。
// 这通常用于实现特殊效果,如透明对象或双面墙。透明测试可以用这个
Cull Off 

//剔除背面 默认的
Cull Back 

//剔除前面 使用它可翻转几何体。
Cull Front
上一篇:C++《STL全集》


下一篇:手机上的算法优化 —— 分支优化