內置渲染管線中的渲染路徑

2020-10-22 10:33 更新

Unity 的內置渲染管線支持不同渲染路徑。渲染路徑是與光照和陰影相關的一系列操作。不同的渲染路徑具有不同功能和性能特征。應根據項目類型以及目標硬件,確定哪種渲染路徑最適合您的項目。

可在 Graphics 窗口中選擇項目使用的渲染路徑,并可為每個攝像機覆蓋該路徑。

如果運行項目的設備上的 GPU 不支持所選的渲染路徑,則 Unity 將自動使用較低保真度的渲染路徑。例如,在無法處理延遲著色的 GPU 上,Unity 使用前向渲染。

前向渲染

前向渲染是內置渲染管線中的默認渲染路徑。這是通用的渲染路徑。

采用前向渲染方式渲染實時光源會非常消耗資源。為了抵消此成本,可以選擇 Unity 在任何一個時間應該為每個像素渲染的光源數(shù)量。Unity 會以較低保真度渲染場景中的其余光源:每個頂點或每個對象。

如果項目沒有使用大量實時光源,或者光照保真度對項目而言不重要,則此渲染路徑可能是這個項目的不錯選擇。

有關更多詳細信息,請參閱前向渲染頁面。

延遲著色

延遲著色是內置渲染管線中具有最大光照和陰影保真度的渲染路徑。

延遲著色需要 GPU 支持,并且有一些局限性。這種著色方式不支持半透明對象(Unity 使用前向渲染來渲染這些對象)、正交投影(Unity 對這些攝像機使用前向渲染)或硬件抗鋸齒(但可以使用后期處理效果來獲得類似結果)。延遲著色對剔除遮罩的支持有限,并會將 Renderer.receiveShadows 標志始終視為 true。

如果項目具有大量的實時光源并需要高級別的光照保真度,而目標硬件支持延遲著色,那么此渲染路徑對于該項目而言可能是一個不錯的選擇。

有關更多詳細信息(包括有關此渲染路徑的局限性的建議),請參閱延遲著色頁面。

舊版延遲 (Legacy Deferred)

舊版延遲(光照預通道)類似于延遲著色,只是采用不同的技術并進行不同的折中。它不支持 Unity 5 基于物理的標準著色器。

有關更多詳細信息,請參閱延遲光照頁面。

舊版頂點光照

舊版頂點光照 (Legacy Vertex Lit) 是具有最低光照保真度且不支持實時陰影的渲染路徑。這是前向渲染路徑的子集。

有關更多詳細信息,請參閱頂點光照頁面

渲染路徑比較

延遲\ 前向\ 舊版延遲 頂點光照\
功能
每像素光照(法線貼圖、光照剪影) -
實時陰影 帶有警告 -
反射探針 - -
深度和法線緩沖區(qū) 其他渲染pass -
軟粒子 - -
半透明對象 - -
抗鋸齒 - -
光照剔除遮罩 受限 受限
光照保真度 全部每像素 部分每像素 全部每像素 全部每頂點
性能
每像素光照的成本 照射像素數(shù)量 像素數(shù)量 * 照射對象數(shù)量 照射像素數(shù)量 -
正常渲染對象的次數(shù) 1 每像素光照的數(shù)量 2 1
簡單場景的開銷
平臺支持
PC (Windows/Mac) Shader Model 3.0+ 和 MRT 所有 Shader Model 3.0+ 所有
移動端 (iOS/Android) OpenGL ES 3.0 和 MRT、Metal(在搭載 A8 或更高版本 SoC 的設備上) 所有 OpenGL ES 2.0 所有
游戲主機 XB1、PS4 所有 XB1、PS4、360 -
以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號