1. 程式人生 > >Shader指令——RenderPath標籤

Shader指令——RenderPath標籤

博主只是簡單瞭解,暫時沒深入。這裡是入門文章 

後續懂了再來修改文章

為什麼有

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_風宇衝_新浪部落格