编译每个着色器阶段时会定义预处理器宏 SHADER_STAGE_VERTEX、SHADER_STAGE_FRAGMENT、SHADER_STAGE_DOMAIN、SHADER_STAGE_HULL、SHADER_STAGE_GEOMETRY 或 SHADER_STAGE_COMPUTE。通常,在像素着色器和计算着色器之间共享着色器代码时,这些宏非常有用,可以解决某些工作必须以略有不同的方式来完成的情况。
编译表面着色器时,表面着色器会为各种通道生成大量代码以产生光照。编译每个通道时,将定义以下宏之一:
| 宏: | 用途: |
|---|---|
UNITY_PASS_FORWARDBASE |
前向渲染基础通道(主方向光、光照贴图和 SH)。 |
UNITY_PASS_FORWARDADD |
前向渲染附加通道(每个通道一个光源)。 |
UNITY_PASS_DEFERRED |
延迟着色通道(渲染 G 缓冲区)。 |
UNITY_PASS_SHADOWCASTER |
阴影投射物和深度纹理渲染通道。 |