ユニバーサルレンダーパイプラインのシェーディングモデル
シェーディングモデルには、サーフェスの向き、ビューアーの方向、ライティングなどの要素に応じてマテリアルの色を変化させる方法が定義されています。どのシェーディングモデルを選択するかは、アプリケーションの演出やパフォーマンスバジェットに応じて決まります。Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) には、以下のシェーディングモデルを利用するシェーダーがあります。
物理ベースシェーディング
物理ベースシェーディング (PBS) はサーフェスから反射される光の量を物理演算の原則に基づいて計算することで、現実世界で見えるとおりにオブジェクトをシミュレートします。これにより、写実的なオブジェクトやサーフェスを作成できます。
PBS は以下の 2 つの原則に従います。
省エネルギー性 - サーフェスが総入射光を超える量の光を反射することはありません。唯一の例外は、オブジェクトが発光するときです。例えば、ネオンサインなどが挙げられます。 マイクロジオメトリ - サーフェスには微視的レベルのジオメトリが含まれます。一部のオブジェクトには滑らかなマイクロジオメトリが使用され、鏡のような外観になります。粗いマイクロジオメトリが使用されたオブジェクトは、よりくすんで見えます。URP では、レンダリングされたオブジェクトのサーフェスのスムースネスレベルを模倣することができます。
レンダリングされたオブジェクトの表面に光が当たると、一部は反射して一部は屈折します。反射した光は 鏡面反射 と呼ばれます。これはカメラの向きや、入射角 とも呼ばれる光が表面に当たる場所によって変わります。このシェーディングモデルでは、スペキュラーハイライトの形状は GGX 関数 を使用して近似されます。
メタルオブジェクトの場合、光は表面に吸収されて変化します。メタリック以外のオブジェクトは 誘電体 オブジェクトとも呼ばれ、表面で一部の光を反射します。
光の減衰は光の強度によってのみ影響を受けます。そのため、減衰を制御するために光の範囲を拡大する必要はありません。
物理ベースシェーディングは以下の URP シェーダーで使用されます。
ノート: このシェーディングモデルは、ローエンドのモバイルハードウェアには適していません。このハードウェアをターゲットにしている場合は、シンプルシェーディング モデルを利用するシェーダーを使用してください。
物理ベースレンダリングの詳細については、こちらの Marmoset の Joe Wilson 氏による解説 を参照してください。
シンプルシェーディング
このシェーディングモデルはスタイリッシュなビジュアルや性能が劣るプラットフォームで実行されるゲームに適しています。このシェーディングモデルを使用すると、マテリアルが真に写実的ではなくなります。このシェーダーは省エネルギー性の原則を満たしません。このシェーディングモデルは Blinn-Phong モデルに基づいています。
このシンプルシェーディングモデルでは、マテリアルはディフューズライトとスペキュラーライトを反射し、両者の間に相関関係はありません。マテリアルから反射されたディフューズライトとスペキュラーライトの量は、マテリアルで選択したプロパティによって異なるため、総反射光が総入射光を上回る場合があります。鏡面反射はカメラの向きによってのみ変わります。
光の減衰は光の強度によってのみ影響を受けます。
シンプルシェーディングは以下の URP シェーダーで使用されています。
Baked Lit シェーディング
Baked Lit シェーディングモデルでは、リアルタイムライティングを利用しません。マテリアルは ベイクしたライティング を ライトマップ または ライトプローブ から取得します。これにより、わずかなパフォーマンスコストでシーンに奥行きを与えることができます。このシェーディングモデルを利用するゲームは、性能が劣るプラットフォームでも実行できます。
Baked Lit シェーディングモデルを使用するシェーダーは URP の Baked Lit シェーダーのみです。
ライティングなしのシェーダー
URP にはいくつかの Unlit シェーダーが用意されています。これは、ディレクショナルライトやベイクしたライティングを利用しないことを意味します。ライトの計算が行われないため、これらのシェーダーはライティングを利用するシェーダーよりも短時間でコンパイルできます。ゲームオブジェクトやビジュアルでライティングを必要としないことがあらかじめわかっている場合は、Unlit シェーダーを選択すると、最終製品の計算とビルドにかかる時間を節約できます。
以下の URP シェーダーにはライティング機能がありません。