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 を使用します。
ディファード | フォワード | 古いディファード | 頂点ライト | |
---|---|---|---|---|
機能 | ||||
パーピクセルライト (法線マップ、ライトクッキー) | 対応 | 対応 | 対応 | 。 |
リアルタイムシャドウ | 対応 | 警告あり | 対応 | 。 |
リフレクションプローブ | 対応 | 対応 | 。 | 。 |
デプス/ノーマルバッファ | 対応 | 追加のレンダリングパス | 対応 | 。 |
ソフトパーティクル | 対応 | 。 | 対応 | 。 |
半透明オブジェクト | 。 | 対応 | 。 | 対応 |
アンチエイリアス | 。 | 対応 | 。 | 対応 |
ライトカリングマスク | Limited | 対応 | Limited | 対応 |
ライトの厳密さ | All per-pixel | 一部のピクセル | All per-pixel | すべての頂点 |
パフォーマンス | ||||
1 ピクセルあたりのライトのコスト | 明るくなる pixel の数 | 明るくなるピクセル数*オブジェクトの数 | 明るくなる pixel の数 | 。 |
通常レンダリングされるオブジェクトの個数 | 1 | ピクセル単位のライトの数 | 2 | 1 |
シンプルなシーンのオーバーヘッド | 高 | None | 中 | None |
Platform Support | ||||
PC (Windows/Mac) | Shader Model 3.0+ & MRT | すべて | Shader Model 3.0+ | すべて |
モバイル (iOS/Android) | OpenGL ES 3.0 & MRT | すべて | OpenGL ES 2.0 | すべて |
コンソール | XB1、PS4 | すべて | XB1、PS4、360 | 。 |