このページには、シェーダーの LOD (Level of LOD) に関して説明します。メッシュの LOD については、メッシュの LOD を参照してください。
LOD 値をサブシェーダーに割り当てることができます。この値は、シェーダープログラムの計算負荷を示します。ランタイムに、指定した LOD 値を超えるサブシェーダーを除外するよう Unity に指示することができます。そうすることで、Unity は低い LOD 値を持つサブシェーダーを使用するようになります。
この手法を使用して、さまざまなハードウェアでシェーダーのパフォーマンスを微調整できます。これは、サブシェーダーが理論的にはハードウェアによってサポートされていても、ハードウェアがそれをうまく実行できない場合に便利です。
最大 LOD の設定は、Shader.maximumLOD を使って個々のシェーダーに対して行ったり、または、Shader.globalMaximumLOD を使用して、すべてのシェーダーに対してグローバルに行えます。デフォルトでは、最大 LOD はありません。
このテクニックはメッシュをレンダリングするための LOD 機能にちなんで名付けられていますが、重要な違いがあることに注意してください。Unity はサブシェーダーの LOD を自動的に計算せず、この機能はカメラからの距離とは関係ありません。最大 LOD は手動で設定する必要があります。
Unity のビルトインの 古いシェーダー には以下の LOD 値があります。
LOD 値 | シェーダー名 |
---|---|
100 | VertexLit |
150 | Decal Reflective VertexLit |
200 | Diffuse |
250 | Diffuse Detail Reflective Bumped Unlit Reflective Bumped VertexLit |
300 | Bumped Specular |
400 | Bumped Specular |
500 | Parallax |
600 | Parallax Specular |