久久精品人妻一区国产传媒国产精品|51黑料吃瓜网在线观看色噜噜色偷偷30根|久久久久久久久国产在亚洲中文字幕人妻|91av福利china人妻91九色|国语精品视频自产自拍|色婷婷av一区二区三区久久|国产91丝袜在线|亚洲二区中文字幕|91久久精品中文内射|中文 欧美 日韩,3d色噜噜狠狠一区二区三区,国产精品福利99,国产精品传媒网站

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

文章來(lái)源: 作者:frank 發(fā)布時(shí)間:2021年11月16日 點(diǎn)擊數(shù): 次

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

在本篇文章中,,將使用之前由Unity發(fā)布的維京村項(xiàng)目來(lái)向大家逐一介紹這些全新添加的功能,,并指導(dǎo)大家利用這些新的著色器圖形功能重新創(chuàng)建項(xiàng)目中使用的一些著色器。廢話不多說(shuō)讓我們開(kāi)始吧,!

維京村資產(chǎn)包

維京村演示項(xiàng)目時(shí)候使用Unity的2021.2 beta 7版本和URP模板創(chuàng)建的一個(gè)新的URP項(xiàng)目,。當(dāng)你有新的相似項(xiàng)目時(shí),就可以直接下載并導(dǎo)入維京村URP包,。下面讓我門來(lái)看看在維京村演示中究竟使用了什么新功能,。

URP表面選項(xiàng)

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

維京村URP資產(chǎn)包包含許多不同的材料,。在多種情況下,,材質(zhì)具有不同的表面選項(xiàng)設(shè)置。但是,,在材質(zhì)中使用的著色器沒(méi)有很大的區(qū)別,。圖形檢查器上的新選項(xiàng)“允許材質(zhì)覆蓋”可以讓我們覆蓋每個(gè)材質(zhì)著色器圖形中的“表面選項(xiàng)”,因此,,我們可以基于單個(gè)著色器圖形資源創(chuàng)建具有不同設(shè)置的材質(zhì),。

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

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

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

自定義插值器

現(xiàn)在我們已經(jīng)熟悉了項(xiàng)目和一些著色器資源,接下來(lái)將向大家展示著色器圖形的一個(gè)全新功能自定義插值器,。

通過(guò)使用自定義插值器,,我們能夠?qū)⑿畔捻旤c(diǎn)階段傳遞到碎片階段,以獲得更好的著色器性能,。

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

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

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

為了看到使用自定義插值器帶來(lái)的性能提升,,我們構(gòu)建了兩個(gè)版本,兩個(gè)版本只交換了水著色器,。一個(gè)水著色器使用自定義插值器,,另一個(gè)沒(méi)有。我們通過(guò)使用PIX從每個(gè)構(gòu)建中捕獲每一幀,,來(lái)分析GPU上的渲染成本,。通過(guò)下圖我們可以明顯的看到在使用自定義插值器的著色器中,水著色器的繪制調(diào)用持續(xù)時(shí)間顯著減少了33%,。

使用自定義插值器時(shí),,需要注意的一點(diǎn)是,在片段階段執(zhí)行的操作要比在頂點(diǎn)階段執(zhí)行的更加頻繁,。在某些情況下,,將計(jì)算移動(dòng)到頂點(diǎn)階段可能會(huì)導(dǎo)致視覺(jué)效果中微小細(xì)節(jié)的丟失。自定義插值器功能最多支持32個(gè)通道。且不同平臺(tái)和GPU有不同的插值器變量限制,。

Blackboard分類

隨著著色器變得越來(lái)越復(fù)雜,,許多屬性可能很難在Blackboard上進(jìn)行導(dǎo)航。現(xiàn)在,,我們能夠使用新的Blackboard分類創(chuàng)建自定義屬性組,,并在材質(zhì)檢查器中將它們顯示為可擴(kuò)展的部分。

我將繼續(xù)使用水著色器作為示例,。在著色器圖形的Blackboard中,,我們將所有法線貼圖屬性分組到一個(gè)名為“波法線”的類別中。然后,,當(dāng)我門在場(chǎng)景中工作并想要在材質(zhì)檢查器中調(diào)整屬性值時(shí),,我可以輕松導(dǎo)航到該組。我也可以折疊它來(lái)節(jié)省檢查器中的空間,。

我們?cè)谶@篇文章中談到的所有功能現(xiàn)在都可以在Unity 2021.2的全新Shader Graph包中獲得,。