Unity は異なる Rendering Path に対応しています。どれを選択すべきかは、ゲームの内容やターゲット/ハードウェアに依存します。異なる Rendering Path はライトやシャドウに影響を与える異なる特徴やパフォーマンスを持ちます。技術的な詳細は、Unity のレンダリングパイプライン を参照してください。
Rendering Path は プレイヤー設定 で選択します。さらに カメラ でも上書き設定もできます。
もしグラフィックスカードが選択した 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) | 対応 | 対応 | 対応 | - |
リアルタイム影 | 対応 | 警告 | 対応 | - |
リフレクションプローブ | 対応 | 対応 | - | - |
デプス/ノーマルバッファ | 対応 | 追加のレンダーパス | 対応 | - |
ソフトパーティクル | 対応 | - | 対応 | - |
半透明オブジェクト | - | 対応 | - | 対応 |
アンチエイリアス | - | 対応 | - | 対応 |
ライトカリングマスク | Limited | 対応 | Limited | 対応 |
ライトの厳密さ | All per-pixel | Some per-pixel | All per-pixel | All per-vertex |
Performance | ||||
1 ピクセルあたりのライトのコスト | 明るくなる pixel の数 | 明るくなるピクセル数*オブジェクトの数 | 明るくなる pixel の数 | - |
オブジェクトの個数分、通常レンダリングされます。 | 1 | ピクセル単位のライトの数 | 2 | 1 |
シンプルなシーンのオーバーヘッド | High | None | Medium | None |
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 | すべて |
Consoles | XB1、PS4 | すべて | XB1、PS4、360、PS3 | - |