unity經(jīng)驗(yàn)分享:URP渲染管線實(shí)戰(zhàn)教程系列
? ? ? ?上一節(jié)從項(xiàng)目的目錄結(jié)構(gòu)與示例場(chǎng)景的內(nèi)容分析了UPR渲染管線項(xiàng)目的基本組成,接下來(lái)分析URP的主要機(jī)制,并通過(guò)與內(nèi)置的向前渲染管線做對(duì)比,來(lái)比較它們的與不同。按照先后順序本節(jié)首先來(lái)分析URP渲染管線的攝像機(jī)的策略。
1: URP渲染管線重新定義了攝像機(jī)
相比于內(nèi)置的向前渲染管線,UPR渲染管線首先重新定義了攝像機(jī)的策略。接下來(lái)看下相比向前渲染管線攝像機(jī)機(jī)制的核心變化(為了更好的展示,我把URP的攝像機(jī)屬性面板做成兩行,并放大),URP渲染管線攝像機(jī)面板參數(shù),從左到右,從上到小


URP渲染管線攝像機(jī)面板參數(shù),從左到右,從上到小
由上圖對(duì)比我們發(fā)現(xiàn)了UPR 攝像機(jī)相比向前渲染管線,明顯變多,同時(shí)進(jìn)行了分類,讓整個(gè)配置的屬性更清晰,先來(lái)講解攝像機(jī)的幾個(gè)核心變化:
(1) 多Camera共存機(jī)制: 取消了向前渲染管線中每個(gè)Camera完全一樣,基于Depth來(lái)決定先后繪制的順序,代替的是基于base-overlay模式的Camera共存機(jī)制。在URP中由一個(gè)base攝像機(jī)與N個(gè)overlay攝像機(jī)組成,overlay攝像機(jī)放到base 攝像機(jī)的Stack List中,按照List中的順序來(lái)繪制overlay攝像機(jī),讓渲染性能更好。
(2) Camera后期處理機(jī)制: 上一節(jié)分析了URP示例場(chǎng)景中Post-process Volume節(jié)點(diǎn)做后期處理控制被單獨(dú)拿出來(lái),分全局與局部,在攝像機(jī)處提供一個(gè)bool型屬性配置”Post-process”, 來(lái)配置后期處理是否有效。而內(nèi)置的向前渲染管線的Camera沒有考慮這樣的機(jī)制,讓開發(fā)者通過(guò)腳本并重載接口來(lái)實(shí)現(xiàn)后期處理。
(3) 抗鋸齒算法: URP渲染管線提供可選的FXAA與SMAA, 內(nèi)置向前渲染管線提供抗鋸齒算法為MXAA。
(4) 其它渲染控制更靈活: 例如URP引入了是否渲染陰影的開關(guān),相比內(nèi)置的渲染管線,陰影控制更靈活,可以在低端機(jī)上關(guān)閉陰影,高端機(jī)上開啟陰影等,更適合手機(jī)游戲開發(fā)。
…
還有一些很差別,建議大家對(duì)著Camera的屬性面板進(jìn)行比對(duì)與分析。
2 如何基于URP渲染管線來(lái)實(shí)現(xiàn)多個(gè)攝像機(jī)
如何在場(chǎng)景中使用多個(gè)攝像機(jī),首先我們創(chuàng)建一個(gè)base攝像機(jī)。base攝像機(jī)就是把Camera組件上的Render Type 設(shè)置為Base。

URP Base攝像機(jī)配置
Base 攝像機(jī)是最先被繪制的,場(chǎng)景中只有一個(gè)Base攝像機(jī)有效,如果要做多個(gè)攝像機(jī)共存,我們需要把創(chuàng)建一個(gè)Overlay模式攝像機(jī)(可以添加組件或復(fù)制其它攝像機(jī)),并在Base攝像機(jī)的Stack List上添加這個(gè)Overlay模式攝像機(jī)。這樣多攝像機(jī)效果就渲染出來(lái)了,如圖

創(chuàng)建Overlay攝像機(jī)

將創(chuàng)建的Overlay攝像機(jī)放入Base攝像機(jī)的Stack中
最后多攝像機(jī)的繪制畫面就能出現(xiàn)在屏幕上。

URP的多攝像機(jī)共存
最后更多的攝像機(jī)的屬性參數(shù)與相關(guān)功能和使用說(shuō)明,可以看下Camera組件下的腳本組件”Universal Additional Camera”的代碼,你能對(duì)URP的Camera組件有更加深入的了解。
今天的分享就到這里,下一節(jié)剖析URP渲染管線的其它核心機(jī)制