我的訂單|我的收藏|我的商城|幫助中心|返回首頁
搜維爾[www.gentlemenlisten.com]>服務>案例分享 應用研究>案例分享>游戲動畫

Unity2021.2版本著色器圖形新功能概覽

文章來源: 作者:frank 發布時間:2021年11月16日 點擊數: 字號:

隨著Unity 2021.2的發布,Unity在Shader Graph中引入了一些令人興奮的新功能,例如通用渲染管道(URP))中的表面選項支持、自定義插值器和Blackboard分類等,這些功能大大提高了藝術家工作流和著色器性能。

在本篇文章中,將使用之前由Unity發布的維京村項目來向大家逐一介紹這些全新添加的功能,并指導大家利用這些新的著色器圖形功能重新創建項目中使用的一些著色器。廢話不多說讓我們開始吧!

維京村資產包

維京村演示項目時候使用Unity的2021.2 beta 7版本和URP模板創建的一個新的URP項目。當你有新的相似項目時,就可以直接下載并導入維京村URP包。下面讓我門來看看在維京村演示中究竟使用了什么新功能。

URP表面選項

我們使用的第一個功能是對URP表面選項的支持功能。該功能允許我們將“光照”或“未光照著色器圖形”著色器的“表面選項”屬性傳遞給材質檢查器。通過啟用“允許材質覆蓋”選項,我們可以在材質檢查器級別中選擇常用屬性,如“表面類型”、“Alpha剪輯”或“陰影”。下面讓我們仔細看看在示例項目中的這個選項的作用。

維京村URP資產包包含許多不同的材料。在多種情況下,材質具有不同的表面選項設置。但是,在材質中使用的著色器沒有很大的區別。圖形檢查器上的新選項“允許材質覆蓋”可以讓我們覆蓋每個材質著色器圖形中的“表面選項”,因此,我們可以基于單個著色器圖形資源創建具有不同設置的材質。

我們來看一些例子。在項目中啟用Mat_fence_02.mat、standard.shadergraph和Mat_strawroof_01.mat,standard.shadergraph是Alpha剪輯啟用的版本。在圖形檢查器中啟用“允許材質覆蓋”選項后,通過相同的著色器,我可以使用Alpha剪輯控制材質級別以此獲得不同的材質變體。

啟用“允許材質覆蓋”選項后,我們還可以在材質檢查器的“金屬粗糙度”工作流和“鏡面光澤度”工作流之間輕松切換。

以此項目中的Lit_SSS_Cutout.shadergraph為例。該著色器用于項目中的不同植被材質,默認情況下設置為“金屬”工作流。如果我們只想使用著色器將一個特定的材質轉換為鏡面工作流,啟用“允許材質覆蓋”選項后,我們可以覆蓋材質檢查器上的設置,同時不接觸正在使用著色器的其他材質。

自定義插值器

現在我們已經熟悉了項目和一些著色器資源,接下來將向大家展示著色器圖形的一個全新功能自定義插值器。

通過使用自定義插值器,我們能夠將信息從頂點階段傳遞到碎片階段,以獲得更好的著色器性能。

我們可以用一個簡單的噪聲節點平鋪和偏移UVs來舉例,以獲得一些泡沫紋理的扭曲效果。泡沫紋理本身利用RGB通道存儲不同密度的泡沫紋理。為了獲得更真實的結果,不同的通道會向相反的方向扭曲。為了使泡沫不那么僵硬,我們使用波浪的法線貼圖作為遮罩,這樣泡沫就可以自然地融入波浪。泡沫的計算在頂點階段進行并將信息傳遞到碎片階段,能夠大幅提升著色器性能。

下面再讓我們看看著色器中法線貼圖平鋪的功能。

為了獲得更好的波浪效果,原始著色器將兩個法線貼圖平鋪在不同的方向上,并且計算都是以每像素為單位的方式進行的。在這里,有了自定義插值器的支持,我們現在可以將UVs平鋪部分移動到頂點階段。

為了看到使用自定義插值器帶來的性能提升,我們構建了兩個版本,兩個版本只交換了水著色器。一個水著色器使用自定義插值器,另一個沒有。我們通過使用PIX從每個構建中捕獲每一幀,來分析GPU上的渲染成本。通過下圖我們可以明顯的看到在使用自定義插值器的著色器中,水著色器的繪制調用持續時間顯著減少了33%。

使用自定義插值器時,需要注意的一點是,在片段階段執行的操作要比在頂點階段執行的更加頻繁。在某些情況下,將計算移動到頂點階段可能會導致視覺效果中微小細節的丟失。自定義插值器功能最多支持32個通道。且不同平臺和GPU有不同的插值器變量限制。

Blackboard分類

隨著著色器變得越來越復雜,許多屬性可能很難在Blackboard上進行導航?,F在,我們能夠使用新的Blackboard分類創建自定義屬性組,并在材質檢查器中將它們顯示為可擴展的部分。

我將繼續使用水著色器作為示例。在著色器圖形的Blackboard中,我們將所有法線貼圖屬性分組到一個名為“波法線”的類別中。然后,當我門在場景中工作并想要在材質檢查器中調整屬性值時,我可以輕松導航到該組。我也可以折疊它來節省檢查器中的空間。

我們在這篇文章中談到的所有功能現在都可以在Unity 2021.2的全新Shader Graph包中獲得。

電話:010-50951355 傳真:010-50951352  郵箱:sales@www.gentlemenlisten.com ;點擊查看區域負責人電話
手機:13811546370 / 13720091697 / 13720096040 / 13811548270 / 13811981522 / 18600440988 /13810279720 /13581546145

  • 暫無資料
  • 暫無資料
  • 暫無資料
  • 暫無資料
  • 暫無資料
www.av精品