プリプロセッサーマクロ 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 |
シャドウキャスターと深度テクスチャレンダリングパス |