熱門
Unity2021.2版本著色器圖形新功能概覽
隨著Unity 2021.2的發(fā)布,Unity在Shader Graph中引入了一些令人興奮的新功能,例如通用渲染管道(URP))中的表面選項支持、自定義插值器和Blackboard分類等,這些功能大大提高了藝術(shù)家工作流和著色器性能。
在本篇文章中,將使用之前由Unity發(fā)布的維京村項目來向大家逐一介紹這些全新添加的功能,并指導大家利用這些新的著色器圖形功能重新創(chuàng)建項目中使用的一些著色器。廢話不多說讓我們開始吧!
維京村資產(chǎn)包
維京村演示項目時候使用Unity的2021.2 beta 7版本和URP模板創(chuàng)建的一個新的URP項目。當你有新的相似項目時,就可以直接下載并導入維京村URP包。下面讓我門來看看在維京村演示中究竟使用了什么新功能。
URP表面選項
我們使用的第一個功能是對URP表面選項的支持功能。該功能允許我們將“光照”或“未光照著色器圖形”著色器的“表面選項”屬性傳遞給材質(zhì)檢查器。通過啟用“允許材質(zhì)覆蓋”選項,我們可以在材質(zhì)檢查器級別中選擇常用屬性,如“表面類型”、“Alpha剪輯”或“陰影”。下面讓我們仔細看看在示例項目中的這個選項的作用。
維京村URP資產(chǎn)包包含許多不同的材料。在多種情況下,材質(zhì)具有不同的表面選項設(shè)置。但是,在材質(zhì)中使用的著色器沒有很大的區(qū)別。圖形檢查器上的新選項“允許材質(zhì)覆蓋”可以讓我們覆蓋每個材質(zhì)著色器圖形中的“表面選項”,因此,我們可以基于單個著色器圖形資源創(chuàng)建具有不同設(shè)置的材質(zhì)。
我們來看一些例子。在項目中啟用Mat_fence_02.mat、standard.shadergraph和Mat_strawroof_01.mat,standard.shadergraph是Alpha剪輯啟用的版本。在圖形檢查器中啟用“允許材質(zhì)覆蓋”選項后,通過相同的著色器,我可以使用Alpha剪輯控制材質(zhì)級別以此獲得不同的材質(zhì)變體。
啟用“允許材質(zhì)覆蓋”選項后,我們還可以在材質(zhì)檢查器的“金屬粗糙度”工作流和“鏡面光澤度”工作流之間輕松切換。
以此項目中的Lit_SSS_Cutout.shadergraph為例。該著色器用于項目中的不同植被材質(zhì),默認情況下設(shè)置為“金屬”工作流。如果我們只想使用著色器將一個特定的材質(zhì)轉(zhuǎn)換為鏡面工作流,啟用“允許材質(zhì)覆蓋”選項后,我們可以覆蓋材質(zhì)檢查器上的設(shè)置,同時不接觸正在使用著色器的其他材質(zhì)。
自定義插值器
現(xiàn)在我們已經(jīng)熟悉了項目和一些著色器資源,接下來將向大家展示著色器圖形的一個全新功能自定義插值器。
通過使用自定義插值器,我們能夠?qū)⑿畔捻旤c階段傳遞到碎片階段,以獲得更好的著色器性能。
我們可以用一個簡單的噪聲節(jié)點平鋪和偏移UVs來舉例,以獲得一些泡沫紋理的扭曲效果。泡沫紋理本身利用RGB通道存儲不同密度的泡沫紋理。為了獲得更真實的結(jié)果,不同的通道會向相反的方向扭曲。為了使泡沫不那么僵硬,我們使用波浪的法線貼圖作為遮罩,這樣泡沫就可以自然地融入波浪。泡沫的計算在頂點階段進行并將信息傳遞到碎片階段,能夠大幅提升著色器性能。
下面再讓我們看看著色器中法線貼圖平鋪的功能。
為了獲得更好的波浪效果,原始著色器將兩個法線貼圖平鋪在不同的方向上,并且計算都是以每像素為單位的方式進行的。在這里,有了自定義插值器的支持,我們現(xiàn)在可以將UVs平鋪部分移動到頂點階段。
為了看到使用自定義插值器帶來的性能提升,我們構(gòu)建了兩個版本,兩個版本只交換了水著色器。一個水著色器使用自定義插值器,另一個沒有。我們通過使用PIX從每個構(gòu)建中捕獲每一幀,來分析GPU上的渲染成本。通過下圖我們可以明顯的看到在使用自定義插值器的著色器中,水著色器的繪制調(diào)用持續(xù)時間顯著減少了33%。
使用自定義插值器時,需要注意的一點是,在片段階段執(zhí)行的操作要比在頂點階段執(zhí)行的更加頻繁。在某些情況下,將計算移動到頂點階段可能會導致視覺效果中微小細節(jié)的丟失。自定義插值器功能最多支持32個通道。且不同平臺和GPU有不同的插值器變量限制。
Blackboard分類
隨著著色器變得越來越復雜,許多屬性可能很難在Blackboard上進行導航。現(xiàn)在,我們能夠使用新的Blackboard分類創(chuàng)建自定義屬性組,并在材質(zhì)檢查器中將它們顯示為可擴展的部分。
我將繼續(xù)使用水著色器作為示例。在著色器圖形的Blackboard中,我們將所有法線貼圖屬性分組到一個名為“波法線”的類別中。然后,當我門在場景中工作并想要在材質(zhì)檢查器中調(diào)整屬性值時,我可以輕松導航到該組。我也可以折疊它來節(jié)省檢查器中的空間。
我們在這篇文章中談到的所有功能現(xiàn)在都可以在Unity 2021.2的全新Shader Graph包中獲得。
電話:010-50951355 傳真:010-50951352 郵箱:sales@www.gentlemenlisten.com ;點擊查看區(qū)域負責人電話
手機:13811546370 / 13720091697 / 13720096040 / 13811548270 /
13811981522 / 18600440988 /13810279720 /13581546145