Unity--URP渲染管線核心機(jī)制分析(1)URP渲染管線項(xiàng)目創(chuàng)建與剖析
前言
現(xiàn)在越來(lái)越多的手游開發(fā)都采用URP渲染管線,來(lái)代替之前Unity引擎默認(rèn)的向前渲染管線,本節(jié)通過(guò)一下幾個(gè)方面來(lái)闡述URP 渲染管線,對(duì)URP渲染管線有個(gè)全面認(rèn)識(shí)。
(1)為什么使用URP渲染管線;
(2)如何創(chuàng)建一個(gè)URP渲染管線的項(xiàng)目;
(3)基于URP渲染管線的全局配置
1為什么使用URP渲染管線
游戲是從PC端游發(fā)展起來(lái)的,我們拿傳統(tǒng)的向前渲染管線中的光源來(lái)距離,向前渲染管線支持任意多的重要光源,每個(gè)重要光源, Unity 都要基于這個(gè)光照來(lái)繪制一次物體, 這樣導(dǎo)致pass次數(shù)非常的多,性能消耗開銷非常大,于是就有靜態(tài)光照,靜態(tài)烘培等。隨著手機(jī)游戲的發(fā)展,人們不滿足于假的靜態(tài)光照,需要實(shí)時(shí)光照,又要保證很好的性能。這個(gè)時(shí)候,就需要開發(fā)者做一個(gè)權(quán)衡和選擇,在特定的滿足手游開發(fā)需求前提下,最大限度的提升性能,于是URP渲染管線就出來(lái)了,他假定了一些特定條件如主光源只能是平行光,其它的附加光源在配置文件中限定數(shù)目,在一個(gè)pass內(nèi)處理完所有的光源與光照計(jì)算。加上這些限制條件后,URP渲染管線能開發(fā)出滿足手機(jī)游戲的實(shí)時(shí)光照的很好效果,同時(shí)又能最大限度的獲得最好的性能。URP渲染管線是對(duì)使用環(huán)境做一些限定,基于這些限定來(lái)定制渲染策略, 獲得很好效果的同時(shí)還有很好的性能。所以慢慢的很多公司都采用URP渲染管線來(lái)做手機(jī)游戲。
URP渲染管線,是基于Unity游戲引擎的可編程渲染管線機(jī)制,接合URP渲染管線的前提,實(shí)現(xiàn)的渲染策略。從渲染來(lái)說(shuō)他有重新定制了攝像機(jī),光照計(jì)算,陰影計(jì)算,后期處理,特有的一套Shader等(基于URP的PBR shader,以前的向前渲染管線的PBR Shader不能用了)。Unity在新版本中把URP渲染管線做成一個(gè)工程項(xiàng)目模板,我們使用這個(gè)模板來(lái)創(chuàng)建URP渲染管線項(xiàng)目非常容易,后續(xù)我們也會(huì)講如何把老項(xiàng)目升級(jí)成URP渲染管線項(xiàng)目。
2 如何創(chuàng)建一個(gè)URP渲染管線的項(xiàng)目
接下來(lái)我們使用Unity 2020.2.3f1 來(lái)創(chuàng)建一個(gè)URP渲染管線的項(xiàng)目,基于這個(gè)項(xiàng)目來(lái)學(xué)習(xí)URP。打開Unity Hub,選擇新建項(xiàng)目會(huì)出現(xiàn)URP項(xiàng)目模板,如圖 1.1-1所示:

創(chuàng)建完成以后,我們就能看到一個(gè)標(biāo)準(zhǔn)的基于URP渲染的項(xiàng)目與開發(fā)環(huán)境(Packages下都有URP的渲染管線代碼與Shader,項(xiàng)目目錄下有一些URP相關(guān)的一些設(shè)置等。),基于這個(gè)環(huán)境來(lái)開發(fā)自己的項(xiàng)目與代碼就可以了,其實(shí)和普通的沒有什么差別。如圖1.1-2:

接下來(lái)從文件夾入手來(lái)分析一下URP的示例場(chǎng)景與項(xiàng)目的組織方式。實(shí)例場(chǎng)景給出了URP的幾個(gè)重要部分,如圖1.1-3:

URP攝像機(jī): Main Camera, 下面再寫關(guān)于base攝像機(jī)與Overlay攝像機(jī)。
主光源與附加光源
:主光源是平行光,可以多個(gè)平行光疊加,附加光源再場(chǎng)景中部署如圖1.1-4:

畫面的后期處理:?畫面后期處理的控制,主要是渲染完成后針對(duì),加一些后期的渲染效果,分為全局與局部模式,后面的教程再講解。如圖1.1-5所示:

接下來(lái)看下URP項(xiàng)目文件夾,URP項(xiàng)目組織其實(shí)和普通的差不多,Packages下安裝好了URP相關(guān)的依賴,在Assets下和普通的稍有不同,主要在于URP的配置文件,一起來(lái)看下。


1.1-7中ExampleAssets與Materials文件夾我們導(dǎo)自己項(xiàng)目里面直接可以刪除,到時(shí)候用項(xiàng)目的資源目錄相關(guān)代替就可以了。Presets文件夾里面存放了一些全局的設(shè)定,一般帶到項(xiàng)目就可以了。Scenes / Scripts文件夾存放場(chǎng)景與代碼,和普通項(xiàng)目一樣,可以隨意的刪除與修改。Settings文件夾存放了渲染管線的配置文件相關(guān)如圖1.1-8,不要?jiǎng)h除。

TutorialInfo文件夾項(xiàng)目中可以刪除,沒有任何實(shí)際的作用。

URP渲染管線Shader相關(guān)都存放在這里,做項(xiàng)目開發(fā)的時(shí)候要使用基于URP的Shader,自己開發(fā)Shader也要符合URP的規(guī)范。
3基于URP渲染管線的全局配置
URP渲染管線的決定渲染關(guān)鍵性的全局配置參數(shù)在PipeLine的配置里面。如何打開全局配置,打開Project Settings窗口啊, 選擇Graphics,如圖1.1-10

這里有光照,霧以及預(yù)加載的Shader以外,就是有一個(gè)Scriptable Render Pipeline Settings, 這里就是渲染管線的一些配置,而這個(gè)文件關(guān)聯(lián)的就是項(xiàng)目中Settings文件夾中的設(shè)置,如圖1.1-11所示:

URP渲染管線的設(shè)置分成了3個(gè)等級(jí),每個(gè)等級(jí)一個(gè)配置文件,分為:
高渲染質(zhì)量等級(jí):UniversalRP-HighQuality
中渲染質(zhì)量等級(jí): UniversalRP-MediumQuality
低渲染質(zhì)量等級(jí):UniversalRP-LowQuality
渲染設(shè)置的主要參數(shù)如下,如圖1.1-12所示

你可以根據(jù)手機(jī)的性能來(lái)切換渲染等級(jí),從而在不同的性能手機(jī)上來(lái)在性能與效果之間獲得很好的平衡。
今天的分享就到這里,關(guān)注我們,下一節(jié)我們將會(huì)繼續(xù)講解解URP渲染管線實(shí)戰(zhàn)教程。
附:視頻教程
Unity / 框架設(shè)計(jì)
50K架構(gòu)師面試必備:向前渲染管線詳解
https://www.bycwedu.com/promotion_channels/266338810