Version: 2020.2
言語: 日本語
ShaderLab: SubShader 内のタグ
ShaderLab: Fallback

ShaderLab: SubShader LOD 値

このページには、シェーダーの LOD (Level of LOD) に関して説明します。メッシュの LOD については、メッシュの LOD を参照してください。

LOD 値をサブシェーダーに割り当てることができます。この値は、シェーダープログラムの計算負荷を示します。ランタイムに、指定した LOD 値を超えるサブシェーダーを除外するよう Unity に指示することができます。そうすることで、Unity は低い LOD 値を持つサブシェーダーを使用するようになります。

この手法を使用して、さまざまなハードウェアでシェーダーのパフォーマンスを微調整できます。これは、サブシェーダーが理論的にはハードウェアによってサポートされていても、ハードウェアがそれをうまく実行できない場合に便利です。

LOD の最大値の設定

最大 LOD の設定は、Shader.maximumLOD を使って個々のシェーダーに対して行ったり、または、Shader.globalMaximumLOD を使用して、すべてのシェーダーに対してグローバルに行えます。デフォルトでは、最大 LOD はありません。

このテクニックはメッシュをレンダリングするための LOD 機能にちなんで名付けられていますが、重要な違いがあることに注意してください。Unity はサブシェーダーの LOD を自動的に計算せず、この機能はカメラからの距離とは関係ありません。最大 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
ShaderLab: SubShader 内のタグ
ShaderLab: Fallback