プラットフォーム別のレンダリングの違い
Debugging DirectX 11 shaders with Visual Studio

シェーダ LOD

シェーダ Level of Detail (LOD) は,LOD値が決められたしきい値以下の場合に,シェーダあるいはサブシェーダを使用します。

デフォルトでは,許容されるLODレベルは無限であり,すなわちユーザのハードウェアでサポートされる全てのシェーダを使用することが出来ます。しかし,いくつかのケースでは,たとえハードウェアがサポートする場合であっても,シェーダのディテールを落としたい場合があります。例えば,安価なグラフィックスカードでは全ての機能がサポートされるものの処理速度が遅すぎる場合があります。だから,視差法線マッピングを使用したくない,といったことになります。

Shader LODは個別のシェーダごとに設定する(Shader.maximumLOD を使用して),あるいは全てのシェーダでグローバルに使用する(Shader.globalMaximumLOD を使用して)ことが出来ます。

ユーザ作成のカスタムのシェーダでは,LOD コマンドを使用してどのようなサブシェーダでもLOV値を設定することが出来ます。

Unityのビルトイン シェーダはLODを次のように設定されています:

  • VertexLit のようなシェーダ = 100
  • Decal,Reflective VertexLit = 150
  • Diffuse = 200
  • Diffuse Detail,Reflective Bumped Unlit,Reflective Bumped VertexLit = 250
  • Bumped,Specular = 300
  • Bumped Specular = 400
  • Parallax = 500
  • Parallax Specular = 600
プラットフォーム別のレンダリングの違い
Debugging DirectX 11 shaders with Visual Studio