UnityShader—LOD值與渲染隊列

LOD值與渲染隊列

什麼是LOD值?

LOD值指的是LOD Level of Detail, Unity根據LOD來設置使用不同版本的Shader;

每次的運行,只會執行SubPass的一部分,每一個SubPass裏面都會指定一個LOD,相當於一個等級,然後Unity執行的時候,根據等級來選擇執行哪一個SubPass。

 

腳本里面可以創建一個shader的public變量,以及支持的最大的LOD,用來控制使用的shader

public Shader shader;

public int LODLevel = 600;// 賦初始值

然後在updata裏面進行更改

this.shader.maximumLOD = this.LODLevel ;

 

當設置的LOD == 600 的時候,就會調用SubPass的LOD小於等於600的最大值的SubPass。

 

渲染隊列

1:渲染隊列標籤可選值:

      (1)Background 背景,對應的值爲1000;

      (2) Geometry(default) 幾何體對應的值爲2000, 這個隊列是默認的渲染隊列,大多數不透明的物體;

     (3)AlphaTest Alpha測試,對應值爲2450, alpha測試的幾何體使用這種隊列,它是獨立於 Geometry的隊列,它可以在所有固體對象繪製後更有效的渲染採用Alpha測試的對象;

     (4)Transparent:透明,對應值3000, 這個渲染隊列在Geometry被渲染,採用從後向前的次序;

    任何有alpha混合的對象都在這個隊列裏面渲染;

     (5) Overlay 覆蓋對應值爲4000, 這個渲染隊列是最後渲染的物體;

2: Unity 渲染模式: 普通物體從前向後, Alpha從後向前;

在Tags裏面可以設置其屬於的渲染隊列,默認的是Geometry(幾何體):

當使用:ZTest off關閉深度測試的時候,使用當前shader的物體繪製的時候,一直會被繪製在最前面,深度測試默認是打開的。

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