五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity學(xué)習(xí)筆記 Vol.68 使用 Unity Shader Graph 制作自定義內(nèi)容

2020-08-30 08:29 作者:NXL2  | 我要投稿

摘要

????這節(jié),我們將共同了解如何使用Unity URP Shader Graph功能來(lái)制作自定義內(nèi)容,如船體的噴漆和外觀。詳細(xì)教程請(qǐng)參照官方視頻。


教程

????我們將學(xué)習(xí)使用ShaderGraph和Unity通用渲染管線,來(lái)為玩家船體添加自定義涂裝。

????在《Boat Attack》demo中,我們建立了一個(gè)允許玩家選擇船體風(fēng)格和涂裝顏色的系統(tǒng),系統(tǒng)使用ShaderGraph中的自定義著色器制作,使用了遮罩紋理來(lái)修改船體不同部位的顏色。

????我們來(lái)看看如何自行創(chuàng)建一個(gè)類似的著色器,建立在運(yùn)行時(shí)設(shè)定材質(zhì)數(shù)據(jù)的系統(tǒng)。這個(gè)賽艇模型看起來(lái)有點(diǎn)太“樸素”了,我們來(lái)在ShaderGraph中為它創(chuàng)建個(gè)著色器,并為自定義系統(tǒng)添加遮罩著色器。

????選擇Create>Shader>PBR Graph,命名為Boat Mask。

????右擊選擇Create>Material為著色器創(chuàng)建個(gè)材質(zhì)。

????將它指定到船體網(wǎng)格上。

????我們首先來(lái)設(shè)置好紋理,這里有三張圖片,正好組成了船體所需的紋理,《Boat Attack》demo使用了打包后的紋理,以優(yōu)化對(duì)多平臺(tái)的支持。我們將不同的紋理打包成了一個(gè)圖片文件,需要將通道拆分,分別導(dǎo)入到最終紋理貼圖中。

????在黑板中,創(chuàng)建三個(gè)Texture2D屬性,第一個(gè)用作Albedo和AO,第二個(gè)的紅色通道包含Metallic(金屬)貼圖,綠色通道包含Smoothness(平滑度)貼圖,藍(lán)色和alpha通道包含色彩遮罩貼圖,最后一個(gè)紋理將用作法線貼圖。

????在圖表中創(chuàng)建三個(gè)SampleTexture2D節(jié)點(diǎn),將紋理連接到節(jié)點(diǎn)上,將最后一個(gè)SampleTexture2D節(jié)點(diǎn)的類型設(shè)為Normal。

? ?我們能將通道接入Preview節(jié)點(diǎn),來(lái)查看打包進(jìn)Texture2D圖像的各個(gè)紋理,接著將各主要紋理連接到對(duì)應(yīng)的主節(jié)點(diǎn)端口。

????可以看到,船體紋理添加完成,可以涂上顏色了。接下來(lái)在著色器中添加顏色自定義功能。

????在黑板中添加兩種顏色屬性,稱作Primary Color和Secondary Color,別忘了設(shè)定名稱參照,將參照分別設(shè)為_PrimaryColor和_SecondaryColor,添加兩個(gè)Multiply節(jié)點(diǎn),在此處接入第一個(gè)遮罩和PrimaryColor,然后接入第二個(gè)遮罩,乘上Secondary Color,將兩個(gè)節(jié)點(diǎn)的輸出傳入一個(gè)Add節(jié)點(diǎn)。

????這時(shí)如果更改黑板中屬性的默認(rèn)顏色,會(huì)看見兩者的顏色會(huì)相互結(jié)合,這兩個(gè)遮罩現(xiàn)在成為了船體的色彩紋理。

????最后我們需要為Albedo紋理添加上這些細(xì)節(jié),使用Multiply節(jié)點(diǎn)連接兩者的輸出。

????將結(jié)果接入主節(jié)點(diǎn)的Albedo端口。

????這時(shí)再看到場(chǎng)景中的船,我們就能通過(guò)修改檢視器中飄逝地的顏色,來(lái)自定義船體外觀了,此類著色器可以給場(chǎng)景內(nèi)模型添加各種變體,不必再重新制作紋理或模型。

????我們可以制作一個(gè)UI來(lái)修改材質(zhì)的顏色。

????在檢視器中能看到,每個(gè)圖標(biāo)的GameObject都帶有一個(gè)Button組件,當(dāng)按鍵被按下時(shí),會(huì)調(diào)用UI腳本上的SetPrimaryColor或SetSecondaryColor方法。

????將索引值傳入腳本,來(lái)指代腳本顏色數(shù)組中的特定顏色。經(jīng)由SharedMaterial屬性來(lái)訪問(wèn)網(wǎng)格上的材質(zhì),在材質(zhì)上調(diào)用SetColor方法。

?

???借助此前設(shè)定的參照名稱來(lái)訪問(wèn)著色器上的顏色屬性,將其設(shè)為數(shù)組中索引值對(duì)應(yīng)的顏色,ShaderGraph可輕松借助腳本修改設(shè)定,借助此類可編程行為進(jìn)一步定制材質(zhì),要想進(jìn)一步了解Unity Shader Graph,請(qǐng)下載《Boat Attack》demom嘗試各個(gè)內(nèi)容。

Unity學(xué)習(xí)筆記 Vol.68 使用 Unity Shader Graph 制作自定義內(nèi)容的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
莱州市| 喜德县| 卓资县| 商洛市| 东港市| 赣榆县| 五指山市| 镇雄县| 新疆| 游戏| 务川| 甘谷县| 那曲县| 南木林县| 札达县| 淮阳县| 富锦市| 兴国县| 保山市| 焦作市| 塔河县| 抚松县| 子长县| 晋中市| 晴隆县| 濉溪县| 乐陵市| 通州区| 榆林市| 大厂| 高安市| 辽源市| 道孚县| 酉阳| 宁城县| 秭归县| 慈溪市| 长子县| 青岛市| 额尔古纳市| 宜宾市|