內(nèi)置渲染管線中的渲染路徑

2020-10-22 10:33 更新

Unity 的內(nèi)置渲染管線支持不同渲染路徑。渲染路徑是與光照和陰影相關(guān)的一系列操作。不同的渲染路徑具有不同功能和性能特征。應(yīng)根據(jù)項(xiàng)目類型以及目標(biāo)硬件,確定哪種渲染路徑最適合您的項(xiàng)目。

可在 Graphics 窗口中選擇項(xiàng)目使用的渲染路徑,并可為每個(gè)攝像機(jī)覆蓋該路徑。

如果運(yùn)行項(xiàng)目的設(shè)備上的 GPU 不支持所選的渲染路徑,則 Unity 將自動(dòng)使用較低保真度的渲染路徑。例如,在無法處理延遲著色的 GPU 上,Unity 使用前向渲染。

前向渲染

前向渲染是內(nèi)置渲染管線中的默認(rèn)渲染路徑。這是通用的渲染路徑。

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

如果項(xiàng)目沒有使用大量實(shí)時(shí)光源,或者光照保真度對(duì)項(xiàng)目而言不重要,則此渲染路徑可能是這個(gè)項(xiàng)目的不錯(cuò)選擇。

有關(guān)更多詳細(xì)信息,請(qǐng)參閱前向渲染頁面。

延遲著色

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

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

如果項(xiàng)目具有大量的實(shí)時(shí)光源并需要高級(jí)別的光照保真度,而目標(biāo)硬件支持延遲著色,那么此渲染路徑對(duì)于該項(xiàng)目而言可能是一個(gè)不錯(cuò)的選擇。

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

舊版延遲 (Legacy Deferred)

舊版延遲(光照預(yù)通道)類似于延遲著色,只是采用不同的技術(shù)并進(jìn)行不同的折中。它不支持 Unity 5 基于物理的標(biāo)準(zhǔn)著色器。

有關(guān)更多詳細(xì)信息,請(qǐng)參閱延遲光照頁面。

舊版頂點(diǎn)光照

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

有關(guān)更多詳細(xì)信息,請(qǐng)參閱頂點(diǎn)光照頁面。

渲染路徑比較

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)