unity shader lod 使用

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都會被使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章