在 Unity 的 Shader 开发中,Cull 命令是控制 GPU 多边形剔除策略的核心工具。通过设置剔除方向(正面 / 背面 / 关闭),可以显著优化渲染性能或实现特殊视觉效果。本文将深入解析 Cull 的工作原理、常用场景及性能影响。
一、Cull 的核心原理:面向相机的多边形剔除
剔除(Culling) 是渲染流程中过滤不可见多边形的关键步骤,其核心逻辑基于多边形法线与相机视角的相对方向:
- 背面(Back Face):多边形法线背离相机方向的面(默认剔除)。
- 正面(Front Face):多边形法线朝向相机方向的面。
默认行为:
- 开启背面剔除(Cull Back),即不渲染背对相机的多边形,减少约 50% 的几何处理量。
数学判断:
通过叉乘计算多边形顶点顺序(顺时针 / 逆时针)判断前后方向,符合右手定则的为正面(依赖渲染管线的 winding order 设置)。</