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