Unityは異なる Rendering Paths に対応しています。 どれを選択すべきかは,ゲームの内容やターゲット/ハードウェアに依存します。異なるRendering Pathsは異なる特徴やパフォーマンスを持ちます。(おおかたライトや影が影響するのですが)
Rendering Pathsは Player Settings で選択します。 さらに Camera でも上書き設定もできます。
もしグラフィックスカードが選択したRendering Pathsを利用出来ないのであれば,Unityは自動的に下位のパスを使います。 ですので例えばDeferred Lightingが出来ないGPUでは,Forward Renderingが選ばれるでしょう。 もしForward Renderingがサポートしていないのであれば,Vertex Litが選択されるでしょう。
Deferred Lighting はライトと影が最も厳密にレンダリングされます。もし多くのリアルタイムライトを使いたいのであれば最適でしょう。ただ,これはハードウェアがある一定のレベルが必要なので,__Unity Pro__ 専用で, Mobile Devices ではサポートされていません。
さらに詳しくは Deferred Lighting page を参照して下さい。
Forward Rendering はシェーダーベースのRendering Pathsです。 これはパーピクセルライト(ノーマルマップやlight Cookiesが含まれます)をサポートし,1個のディレクショナル(一方方向)ライトからのリアルタイムシャドウをサポートします。 デフォルト設定では,パーピクセルライトモードでは最小の数のライトでレンダリングされます。 残りのライトは頂点で計算されます。
さらに詳しくは Forward Rendering を参照して下さい。
Vertex Lit は一番軽いRendering Pathsで,リアルタイム影もサポートされていません。古いマシンでは最も使われるでしょうし,モバイルプラットフォーム限定利用されるかもしれません。
さらに詳しくは Vertex Lit page を参照して下さい。
Rendering Paths比較
Deferred Lighting | Forward Rendering | Vertex Lit | |
---|---|---|---|
Features | |||
パーピクセルライト (normal maps, light cookies) | 対応 | 対応 | - |
リアルタイム影 | 対応 | 1 Directional Light | - |
デュアルライトマップ | 対応 | - | - |
デプス/ノーマル バッファ | 対応 | 追加のレンダーパス | - |
ソフトパーティクル | 対応 | - | - |
半透明オブジェクト | - | 対応 | 対応 |
アンチエイリアス | - | 対応 | 対応 |
ライトカリングマスク | Limited | 対応 | 対応 |
ライトの厳密さ | All per-pixel | Some per-pixel | All per-vertex |
Performance | |||
1ピクセルあたりのライトのコスト | 明るくなるpixelの数 | 明るくなるピクセル数*オブジェクトの数 | - |
Platform Support | |||
PC (Windows/Mac) | Shader Model 3.0+ | Shader Model 2.0+ | Anything |
Mobile (iOS/Android) | OpenGL ES 2.0 | OpenGL ES 2.0 | OpenGL ES 2.0 & 1.1 |
Consoles | 360, PS3 | 360, PS3 | - |