ドローコールの削減、カリング、シェーダーの最適化などの標準的な最適化手法に加え、2D ライティングのグラフィックスパイプライン固有の手法と考慮事項をいくつか紹介します。
レンダリングパフォーマンスを高める最も簡単な方法は、使用するブレンドスタイルの数を減らすことです。各ブレンドスタイルはレンダーテクスチャであり、レンダリングしてからアップロードする必要があります。
ブレンドスタイルの数を減らすと、パフォーマンスに直接的な影響があります。シンプルなシーンであれば、ブレンドスタイルは 1 つで十分です。また、1 つのシーンで使用するブレンドスタイルは 2 つ以下であるのが普通です。
2D ライティングシステムは、スクリーンスペースのライトレンダーテクスチャを利用してライトの影響をキャプチャします。そのため、多くのレンダーテクスチャが描画され、その後アップロードされることになります。適切なレンダーテクスチャサイズの選択は、パフォーマンスに直接影響します。
デフォルトでは、サイズは画面解像度の 0.5 倍に設定されています。ライトレンダーテクスチャのサイズを小さくすると、パフォーマンスは向上しますが、ビジュアルアーティファクトが発生します。画面サイズの半分の解像度であれば、多くの場合、アーティファクトはほとんど目立たず、良好なパフォーマンスが得られます。
さまざまなスケールを試し、プロジェクトに適したものを見つけてください。
ライトレンダーテクスチャの数をさらに減らすには、ソートレイヤーをバッチ処理できるようにすることが重要です。同じライトレンダーテクスチャのセットを使用するレイヤーがバッチ処理されます。ライティングが他と異なるレイヤーは、独自のセットを使用することになるため、必要な処理の量が増加します。
レイヤーは、同じライトのセットを共有している場合、バッチ処理することができます。
複数のライトレンダーテクスチャのセットを、レンダラーを描画する前にレンダリングできます。すべてのライトレンダーテクスチャを事前にレンダリングしてから、最終的な色の出力にレンダラーを描画するのが理想的です。これにより、最終的な色の出力をロード/アンロード/リロードする必要が減ります。
設定が非常に複雑で、ライティングが他と異なるレイヤーが数多くある場合は、すべてのライトレンダーテクスチャを事前にレンダリングするのは現実的でないでしょう。この上限は、2D Renderer Data の Inspector で設定できます。
法線マップを使用した深度のシミュレーションは、現時点では、コストが非常に高い処理です。これが有効な場合、デプスプレパスの間にフルサイズのレンダーテクスチャが作成され、レンダラーがその上に描画されます。この処理は、各レイヤーバッチに対して行われます。
奥行き知覚のシミュレーションを行うための法線マッピングエフェクトが不要な場合は、すべてのライトで法線マップオプションを無効にしてください。