ビルトインレンダーパイプラインでは、サーフェスシェーダーを使用する場合、ライティングの適用方法とシェーダーのどの パス が使用されるかは、使用される レンダリングパス によって異なります。シェーダーの各パスは、パスタグ を通してそのライティングタイプを伝えます。
| 機能名 | ユニバーサルレンダーパイプライン (URP) | HD レンダーパイプライン (HDRP) | カスタム SRP | ビルトインレンダーパイプライン |
|---|---|---|---|---|
| サーフェスシェーダー | いいえ URP でシェーダーオブジェクトを効率的に作成する方法については、Shader Graph を参照してください。 |
いいえ HDRP でシェーダーオブジェクトを効率的に作成する方法については、Shader Graph を参照してください。 |
いいえ | はい |
ForwardBase と ForwardAdd パスが使用されます。Deferred パスが使用されます。Vertex、VertexLMRGBM、VertexLM パスが使用されます。ShadowCaster パスが使用されます。
ForwardBase パスは、アンビエント、ライトマップ、メインのディレクショナルライト、重要でない (頂点/球面調和) ライトを一度にレンダリングします。ForwardAdd パスは、追加のピクセルごとのライトに使用されます。このようなライトによって照らされるオブジェクトごとに 1 回の呼び出しが行われます。詳細については、フォワードレンダリング を参照してください。
フォワードレンダリングが使用され、シェーダーにフォワードレンダリングに適切なパスがない (ForwardBase も ForwardAdd もない) 場合には 、そのオブジェクトは、頂点ライティングパスでレンダリングされたのと同じようにレンダリングされます。詳しくは後述を参照してください。
Deferred パスは、ライティングに必要なすべての情報 (ビルトインシェーダーの場合、ディフューズ色、スペキュラー色、滑らかさ、ワールド空間法線、発光) をレンダリングします。また、発光のチャンネルには、ライトマップ、リフレクションプローブ、アンビエントライトの情報も追加されます。詳細は、ディファードシェーディング を参照してください。
頂点ライティングは、プログラム可能なシェーダーをサポートしないプラットフォームで使用されることが多いため、Unity が内部的に複数のシェーダーバリアントを作成して、ライトマップされた場合/ライトマップされていない場合を処理することができません。そのため、ライトマップされたオブジェクトとライトマップされていないオブジェクトを処理するためには、複数のパスを明示的に作成する必要があります。
Vertex パスは、ライトマップされていないオブジェクトに使用されます。すべてのライトは、OpenGL/Direct3D ライティングモデルのデフォルト機能である (Blinn-Phong) を使用して、一度にレンダリングされます。VertexLMRGBM パスは、ライトマップが RGBM エンコードされている場合に、ライトマップされたオブジェクトに使用されます (PC およびコンソール)。リアルタイムライティングは適用されません。パスはテクスチャとライトマップを組み合わせることを想定しています。VertexLM パスは、ライトマップが double-LDR エンコードされている場合 (モバイルプラットフォーム)、ライトマップされたオブジェクトに使用されます。リアルタイムライティングは適用されません。パスはテクスチャとライトマップを組み合わせることを想定しています。