Shader指令——RenderPath標籤
阿新 • • 發佈:2018-12-12
博主只是簡單瞭解,暫時沒深入。這裡是入門文章
後續懂了再來修改文章
為什麼有
Rendering Path其實指的就是渲染場景中光照的方式。
由於場景中的光源可能很多,甚至是動態的光源。
所以怎麼在速度和效果上達到一個最好的結果確實很困難
首先我們先看這2個元件,肯定不陌生。
Shader引數
Tags{"LightMode" = "Always"} Tags{"LightMode" = "ForwardBase"} Tags{"LightMode" = "ForwardAdd"} Tags{"LightMode" = "Deferred"} Tags{"LightMode" = "ShadowCaster"} Tags{"LightMode" = "PrepassBase"} Tags{"LightMode" = "PrepassFinal"} Tags{"LightMode" = "Vertex"}
Use Graphics Setting
預設,更新了演算法?
Vertex Lit Rendering Path
頂點渲染模式
燈光只會在這裡作用,節省效能.(因為頂點片元運算級別),物體只會渲染一次
Forward
較耗效能,絕大數引擎都含有的一種渲染方式,適合戶外這種光源較少的場景
一個物體渲染2次,
第一次逐畫素、燈光、頂點
第二次其他逐畫素\燈光再渲染
Deferred
延遲處理,先放在GBuffer中。
Legacy Vertex Lit
Legacy Deferred (light Prepass)
記錄
選擇了Deferred時,優先選擇deferred模式下的pass,如果找不到,則會選擇forward模式下面的pass。
選擇了Forward時,優先選擇Forward模式下的pass,如果找不到,則會選擇Vertex模式下面的pass。
Unity在一個時間只會執行一個渲染路徑下的pass
附:
強烈建議看連結
RenderingPaths Unity官方API
【原】實時渲染中常用的幾種Rendering Path - 桑果 - 部落格園
【風宇衝】Unity3D教程寶典之Shader篇:第九講Render Path_風宇衝_新浪部落格