ドキュメント

Unity Engine

Unity Engine

ビルトインレンダーパイプラインでのライティングの最適化

Reduce extra lighting work so Unity uses fewer draw calls and processes fewer vertices and pixels.
読み終わるまでの所要時間 5 分最終更新 1ヶ月前

シーンのライトを最適化するには、Unity がゲームオブジェクトの描画に複数のレンダーパスを使用したり、ライトをレンダリングするために余分な作業を行ったりしないようにします。これにより、CPU が送信するドローコールの回数と、GPU が処理する頂点とピクセルの数が減ります。
以下の操作を行います。
  • リアルタイムライトの代わりに静的オブジェクトをライティングする ライトマッピング を使用します。
  • メッシュがピクセルごとに異なるリアルタイムのライトで照らされる場合は、メッシュの結合を避けます。Unity は結合されたメッシュごとにすべてのライトを計算するからです。
  • ピクセルごとの複数のライトでゲームオブジェクトをライティングすることを避けます。

ライトの優先順位付け

ピクセルごとの複数のライトでゲームオブジェクトをライティングしないようにするには、ライトがどのゲームオブジェクトをライティングするかに基づいて、ピクセルごとのライティングを提供するライトに優先順位を付けます。
例えば、ドライビングゲームでは、車のヘッドライトをピクセルごとのライトとして優先しますが、リアライトと遠くの街灯の優先順位は下げます。
ピクセルごとのライトの数を減らすには、以下のいずれかを実行します。
ピクセルごとのライトの数を増やすには、以下のいずれかを実行します。

頂点ごとおよび球面調和関数 (SH) ライトの無効化

カスタムシェーダーで頂点ごとおよび SH ライトを無効にするには、ShaderLab コードでパスに
OnlyDirectional
タグを追加します。詳細については、ShaderLab の Pass タグのリファレンス を参照してください。

追加リソース