Version: 2019.4
言語: 日本語
プラットフォーム特有のレンダリングの違い
シェーダーでのテクスチャ配列の使用

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
プラットフォーム特有のレンダリングの違い
シェーダーでのテクスチャ配列の使用