LOD是 ( Level of Detail ) 的縮寫,表示細節級別。
Shader LOD
- 這個是另外一種控制細節級別的技術
- 在一個 Shader 當中,可以給不同的 SubShader 指定不同的LOD屬性。
官方論壇:https://forum.unity3d.com/threads/what-is-shader-level-of-detail.23082/
SubShader
{
Tags{ "RenderType" = "Opaque" }
LOD 100
}
SubShader
{
Tags{ "RenderType" = "Opaque" }
LOD 200
}
在腳本中,我們可以用 Shader.globalMaximumLOD = 100
來全局設置 lod 值,激活使用相對應的 SubShader。
我們也可以用 _shader.maximumLOD
來單獨設置一個 shader 的 lod。
根據這個特性,我們就可以在一個 shader 裏寫一出組 SubShader ,分別設置不同的 lod ,lod 越大的對應性能越好,越低的性能越差。然後我們就可以用設置 lod 的方法來控制遊戲畫面的渲染質量。
在Unity3D->Project Setting->QualitySettings中的Maximum LODLevel可以設置最大LOD等級,Shader的LOD值是小於所設定的LOD值,纔會被編譯使用。Maximum LODLevel的等級可以設置7個級別,例如設置爲1,則表示把最大LOD值設置爲100,等級2,則最大LOD值爲200,以此類推,若設置爲0,則表示不進行LOD判斷,任何LOD值的Shader都會被使用。