ビルトインレンダーパイプラインでのライティングの最適化
Reduce extra lighting work so Unity uses fewer draw calls and processes fewer vertices and pixels.
読み終わるまでの所要時間 5 分最終更新 1ヶ月前
シーンのライトを最適化するには、Unity がゲームオブジェクトの描画に複数のレンダーパスを使用したり、ライトをレンダリングするために余分な作業を行ったりしないようにします。これにより、CPU が送信するドローコールの回数と、GPU が処理する頂点とピクセルの数が減ります。
以下の操作を行います。
- リアルタイムライトの代わりに静的オブジェクトをライティングする ライトマッピング を使用します。
- メッシュがピクセルごとに異なるリアルタイムのライトで照らされる場合は、メッシュの結合を避けます。Unity は結合されたメッシュごとにすべてのライトを計算するからです。
- ピクセルごとの複数のライトでゲームオブジェクトをライティングすることを避けます。
ライトの優先順位付け
ピクセルごとの複数のライトでゲームオブジェクトをライティングしないようにするには、ライトがどのゲームオブジェクトをライティングするかに基づいて、ピクセルごとのライティングを提供するライトに優先順位を付けます。
例えば、ドライビングゲームでは、車のヘッドライトをピクセルごとのライトとして優先しますが、リアライトと遠くの街灯の優先順位は下げます。
ピクセルごとのライトの数を減らすには、以下のいずれかを実行します。
- Light コンポーネントの Inspector ウィンドウ で、Render Mode を Not important に設定します。これにより、ライトが頂点ごとのライトまたは球面調和関数 (SH) ライトとして設定されます。
- Quality 設定ウィンドウ で、Pixel Light Count を減らします。ピクセルごとのライトグループからライトを除外します。
ピクセルごとのライトの数を増やすには、以下のいずれかを実行します。
- Light コンポーネントの Inspector ウィンドウ で、Intensity を上げます。最も明るいライトは常にピクセルごとのライトです。
- Light コンポーネントの Inspector ウィンドウ で、Render Mode を Important に設定します。これにより、ライトがピクセルごとのライトとして設定されます。
- Quality 設定ウィンドウ で、Pixel Light Count を増やします。これにより、ピクセルごとのライトグループにライトが追加されます。
頂点ごとおよび球面調和関数 (SH) ライトの無効化
カスタムシェーダーで頂点ごとおよび SH ライトを無効にするには、ShaderLab コードでパスに タグを追加します。詳細については、ShaderLab の Pass タグのリファレンス を参照してください。
OnlyDirectional