剔除
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