このページでは、メッシュの LOD (Level of Detail) について説明します。シェーダーの LOD については、SubShader の LOD 値 を参照してください。 LOD は、Unity が離れたメッシュをレンダリングするために必要とする GPU 操作の数を減らす技術です。
シーン内のゲームオブジェクトがカメラから遠くにあるとき、ゲームオブジェクトがカメラの近くにあるときと比べて、細かい部分を見ることはできません。ただし、デフォルトでは、Unity は同じ数の三角形を使用して両方の距離でレンダリングします。これは結果的に、GPU 操作が無駄になり、シーンのパフォーマンスに影響を与える可能性があります。
LOD 技術を使用すると、カメラオブジェクトからの距離に基づいて、ゲームオブジェクトをレンダリングする三角形の数を減らすことができます。これを使用するには、ゲームオブジェクトのジオメトリにディテールレベルを下げた多くのメッシュを持つ必要があります。これらのメッシュは LOD レベルと呼ばれます。ゲームオブジェクトがカメラから遠いほど、Unity は LOD レベルの低い LOD レベルをレンダリングします。このテクニックは、これらの遠くにあるゲームオブジェクトに対するハードウェアの負荷を減らし、レンダリングパフォーマンスを向上させます。
Unity で LOD を利用する方法を理解するには、まず LOD レベルとは何か、どのように機能するかを理解する必要があります。
LOD レベルは、ゲームオブジェクトのジオメトリのために Unity がレンダリングする LOD を定義するメッシュです。ゲームオブジェクトが LOD を使用する場合、Unity はカメラからのゲームオブジェクトの距離に基づいて、そのゲームオブジェクトに適切な LOD レベルを表示します。
各 LOD レベルは、個々のゲームオブジェクトに存在しています。それぞれがその LOD レベルを表示する Mesh Renderer コンポーネントを持ちます。最低の LOD には、3D メッシュの代わりにビルボードアセットを使用できます。Unity は必要に応じてこれらのゲームオブジェクトを表示/非表示にします。LOD レベルは、関連するゲームオブジェクトの子ゲームオブジェクトである必要があります。
以下の画像は、LOD レベルがカメラからの距離に応じてどのように変化するかを示しています。
LOD を使用するには、LOD Group コンポーネントを持つゲームオブジェクトが必要です。LOD Group コンポーネントは、このゲームオブジェクトで LOD がどのように動作するかを定義するコントロールを提供し、各 LOD レベルで Unity が表示または非表示にするゲームオブジェクトを参照します。このコンポーネントのプロパティの詳細については、LOD Group を参照してください。
Unity の LOD は 2 つの方法で設定できます。
Unity が各 LOD レベルを表示するカメラからの距離を手動で設定するには、LOD Group コンポーネントの選択バー を使用します。
LOD Group コンポーネントは最大 8 の LOD レベルを受け入れます。LOD 0 はカメラに最も近く、最も詳細な LOD レベルです。
Quality設定 ウィンドウで、プロジェクト内のすべてのゲームオブジェクトに影響するLOD設定を行うことができます。
2 つの LOD 設定があります。