Version: 2019.2
レンダリングパス
グラフィックス API サポート

Level of Detail (LOD)

シーン内のゲームオブジェクトがカメラから遠くにあるとき、ゲームオブジェクトがカメラの近くにあるときと比べて、細かい部分を見ることはできません。そして、離れたゲームオブジェクトの詳細を見ることができないとしても、Unity はどちらの距離にあるものも同じ数の三角形を使用してレンダリングします。

レンダリングを最適化するには、Level Of Detail (LOD) 技法を使用します。LOD では、ゲームオブジェクトがカメラから遠ざかるにつれて描画する三角形の数を減らすことができます。いくつかのメッシュと任意の ビルボードアセット を使用します。これらはすべて、同じゲームオブジェクトをジオメトリの詳細さを削減して表現したものです。各メッシュには Mesh Renderer コンポーネントが含まれ、‘メッシュの LOD レベル’ を表します。ビルボードアセットには Billboard Renderer コンポーネントがあり、「ビルボードの LOD レベル」を表します。

ゲームオブジェクトのすべてが同時にカメラの近くにあるわけではない場合、LOD はハードウェアの負荷を軽減し、レンダリングのパフォーマンスを向上させます。

LOD レベルの利用

Unity では、LOD Group コンポーネントを使用して、ゲームオブジェクトの LOD レンダリングを設定します。以下の画像は、カメラからの距離に応じて LOD レベルがどのように変化するかを示しています。

図 1: LOD 0 のカメラは、メッシュ内に多数の小さな三角形を表示します
図 1: LOD 0 のカメラは、メッシュ内に多数の小さな三角形を表示します

図 1 は最初のレベル LOD 0 を示しています。このレベルはカメラに最も近い値であるため、最も詳細な LOD レベルです。例えば、多くの第 1 レベルの LOD は、ゲームオブジェクトの高さが画面の高さの 50% 以上を占める場合にアクティブになります。

図 2: LOD 1 のカメラは、メッシュ内にはるかに少ない数のサイズがずっと大きい三角形を表示します
図 2: LOD 1 のカメラは、メッシュ内にはるかに少ない数のサイズがずっと大きい三角形を表示します

図 2 は、次のレベル LOD 1 を示しています。このレベルはカメラから遠いので、LOD レベルが低くなります。例えば、多くの LOD Group は 3 つのレベルを使用します。ゲームオブジェクトが画面の高さの 25% から 49% を占めるとき LOD 1 がアクティブになり、ゲームオブジェクトが画面の高さの 25% 未満を占めるとき LOD 2 がアクティブになります。

LOD レベルの設定は、ターゲットプラットフォームと可能なレンダリングパフォーマンスに依存するため、Unity で最高の LOD レベルと Lod Bias の Quality 設定を設定できます。Lod Bias は、しきい値の距離の場合に、高い/低い、どちらの LOD レベルを優先するかを決定します。

メッシュインポート時の命名規則

一揃いの LOD メッシュをインポートすると、ゲームオブジェクトの LOD グループが自動的に作成され、以下の命名規則に従うと適切な設定が適用されます。

  • 一揃いのメッシュは _LOD0 から「LOD レベルの総数 - 1」の範囲の数字で終わる名前にします。例えば、メッシュの基本となる名が Player の場合、ファイル名を Player_LOD0Player_LOD1Player_LOD2 とすると、Player ゲームオブジェクトを 3 つの LOD レベルで生成されます。
  • 最も詳細なメッシュファイルを _LOD0 と名づけます。
  • 残りのメッシュファイルは、詳細度が減少するごとに、数字が大きくなるようにしてください。
  • ビルボードの LOD レベルを数字のプレフィックスが最も高いものに設定します (ビルボードは常に最も低い詳細レベルを持つため)。

LOD レベル数に上限はありません。

レンダリングパス
グラフィックス API サポート