モバイル プラットフォーム向けシェーダーの最適化

Tutorial

intermediate

+0XP

15 mins

Unity Technologies

モバイル プラットフォーム向けシェーダーの最適化

このチュートリアルでは、想定する対象のモバイルプラットフォーム向けに Unity で正しく lit シェーダーと unlit シェーダーを使用して、シェーダーの最適化をする場合におけるベストプラクティスを紹介します。

1. モバイルプラットフォーム向け unlit シェーダーの使用

Unity では、ユニバーサルレンダーパイプライン(URP)に、さまざまな組み込みのシェーダーが用意されています。次のスクリーンショットは、URP 専用シェーダーがある場所を示しています。

2019 年 4 月から、「Mobile」セクションにある組み込みの unlit シェーダーのみ、Unity のユニバーサルレンダーパイプライン(URP)で利用できるようになっています。モバイル用の lit シェーダーを使用する場合は、「Universal Render Pipeline/Simple Lit」シェーダーを基盤として使用します。これは、よりシンプルでパフォーマンスに優れた URP の lit シェーダーです。

シェーダーの機能は、マテリアルのカスタマイズに必要なものに限って使用することをおすすめします。Unity では、シェーダーを選択、設定すると、最適化された状態でランタイムバージョンが作成されます。このようにしてシェーダーの複雑度を軽減することで、モバイルプラットフォームでのパフォーマンスが向上します。

2. lit シェーダーと unlit シェーダーの違い

シェーダーを作成する際は、マテリアルをライトにどのように反応させるかを指定できます。ほとんどのシェーダーは、lit または unlit のいずれかに分類されます。

unlit シェーダーは、最も高速で演算負荷が小さいシェーディングモデルです。ローエンドデバイスをターゲットにしている場合は、これを使用します。考慮すべき重要なポイントは次のとおりです。

  • ライティングは、unlit シェーディングモデルには影響しません。これはつまり鏡面反射計算などの多くの計算が必要ないということになります。その結果、レンダリングが低コストまたは高速になります。
  • 漫画のように定型化されたアートディレクションは、unlit シェーディングに適しています。こういった定型化するスタイルはモバイルプラットフォーム用のゲームを制作する際には十分に検討する価値があります。

lit シェーダーは、unlit シェーダーよりも多くの処理能力を使用します。ですが、次のような特徴があります。

  • ライトは lit シェーダーに影響を与え、サーフェスに鏡面性を持たせることができます。
  • おそらく、今日のモバイルゲームで最も使用されているシェーディングモデルです。

次の画像は、lit オブジェクトと unlit オブジェクトの違いを示しています。

同じタワーメッシュとテクスチャが既に適用されている状態ですが、使用されているシェーダーが異なります。ライトは unlit シェーダーには影響を与えないため、画面上にレンダリングするために必要な計算が少なくなります。その結果、特に性能の低いデバイスではパフォーマンスが向上します。

3. まとめ

アプリケーションにおいては、どういったシェーダーやマテリアル機能が目標とするビジュアルスタイルを実現するため不可欠なのかをよく考え、そのスタイルの実現に直接に貢献しない機能については、なるべく使用を控えることが重要になります。次のチュートリアルでは、透明マテリアルがモバイルアプリケーションのパフォーマンスに与える影響について説明します。

Complete this Tutorial