Unity は異なる Rendering Path に対応しています。どれを選択すべきかは、ゲームの内容やターゲット、ハードウェアに依存します。異なる Rendering Path はライトやシャドウに影響を与える特徴やパフォーマンスをそれぞれ持ちます。技術的な詳細は、Unity のレンダリングパイプライン を参照してください。
プロジェクトで使用するレンダリングパスは、 Graphics Settings で選択できます。さらに、各カメラ にそれをオーバーライドできます。
もしグラフィックスカードが、上位の Rendering Path を利用できないのであれば、Unity は自動的に下位のパスを使います。ですので例えば Deferred Lighting ができない GPU では、Forward Rendering が選ばれるでしょう。
Deferred Shading はライトと影が最も厳密にレンダリングされます。もし多くのリアルタイムライトを使いたいのであれば最適でしょう。ただ、これはハードウェアがある一定のレベルが必要です。
詳細は Deferred Shading レンダリングパス を参照してください。
Forward は、従来のレンダリングパスです。Forward では、通常の Unity のグラフィックス機能(ノーマルマップ、パーピクセルライト、シャドウなど)をサポートしています。ただし、デフォルト設定では、数値が少ない最も明るいライトのみピクセル単位のライティングモードでレンダリングされます。残りのライトはオブジェクトの頂点やオブジェクトごとに計算されます。
さらに詳しくは Forward Rendering パスの詳細 を参照してください。
旧 Deferred(ライトプリパス) は遅延シェーディングに似ているので異なるトレードオフとテクニックを使用します。Unity5では物理ベースのスタンダードシェーダーをサポートしません。
さらに詳しくは 旧 Deferred Lighting レンダリングパス を参照してください。
Vertex Lit は一番軽い Rendering Path で、Forward レンダリングパスのサブセットです。
さらに詳しくは Vertex Lit レンダリングパス詳細 を参照してください。
注意 Deferred レンダリングは、Orthographic プロジェクションを使用しているときは、サポートされません。カメラのプロジェクション モードが Orthographic に設定されているとき、この値は上書きされ、カメラは常に Forward rendering を使用します。
Rendering Path 比較
Deferred | Forward | 旧 Deferred | Vertex Lit | |
---|---|---|---|---|
Features | ||||
パーピクセルライト (normal maps、light cookies) | サポート | サポート | サポート | - |
リアルタイムシャドウ | サポート | 警告 | サポート | - |
リフレクションプローブ | サポート | サポート | - | - |
デプス/ノーマルバッファ | サポート | 追加のレンダーパス | サポート | - |
ソフトパーティクル | サポート | - | サポート | - |
半透明オブジェクト | - | サポート | - | サポート |
アンチエイリアス | - | サポート | - | サポート |
ライトカリングマスク | 制限あり | サポート | 制限あり | サポート |
ライトの厳密さ | すべてのピクセル | 一部のピクセル | すべてのピクセル | すべての頂点 |
Performance | ||||
1 ピクセルあたりのライトのコスト | ライトが当たる pixel の数 | ライトが当たるピクセル数*オブジェクトの数 | ライトが当たる pixel の数 | - |
通常レンダリングされるオブジェクトの個数 | 1 | ピクセル単位のライトの数 | 2 | 1 |
シンプルなシーンのオーバーヘッド | 高 | なし | 中 | なし |
Platform Support | ||||
PC (Windows/Mac) | Shader Model 3.0+ & MRT | すべて | Shader Model 3.0+ | すべて |
Mobile (iOS/Android) | OpenGL ES 3.0 & MRT | すべて | OpenGL ES 2.0 | すべて |
コンソール | XB1、PS4 | すべて | XB1、PS4、360 | - |