最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

MMD聯(lián)動Unity學(xué)習(xí)筆記 Vol.18 ShaderGraph制作飄動的巨龍

2019-05-26 16:07 作者:NXL2  | 我要投稿

前言?

????這期我們的主題繼續(xù)學(xué)習(xí)ShaderGraph。這期是Unity官方達哥制作的視頻《Unity如何制作飄動的巨龍》。Up記錄下來方便復(fù)習(xí)。下面是視頻鏈接。

具體操作

???首先在PackageManager安裝LightweightRP和ShaderGraph這兩個套件,如果把LWRP改為HDRP也可以,在資源文件夾中然后切到Edit->Project Settings,里面的Graphic找到這個Scriptable Render Pipeline,并指定剛剛生成的文件。

????設(shè)置準(zhǔn)備完成之后,我們開一個新場景來說明。準(zhǔn)備一條龍的模型(沒有的話我們可以在Blender新建長條形狀來替代),一般來說就是美術(shù)從3D Max或Maya畫好,連同紋理一起轉(zhuǎn)過來的,它身上帶有一個最基本的材質(zhì)球,目前指定的是Lightweght?Render Pipeline/Lit這個著色器,然后什么紋理都沒有。

新建PBR著色器

????首先我們先幫它把著色器換成新的,在Project點右鍵選Create ->Shader ->PBR Shader Graph,選擇PBR Shader Graph,它會產(chǎn)生一個新的Shader,先改個名字,然后我們點一下模型,把材質(zhì)指定的著色器換成這個在Shader Graph里的新的著色器,指定好之后可以選擇旁邊的齒輪,并點選Edit Shader...就會打開著色器的圖形編輯畫面。

調(diào)整版型

????調(diào)整了一下版型,編輯畫面放在正中央,然后右下角放一個畫面可以馬上看到修改結(jié)果,預(yù)覽畫面的上面是著色器現(xiàn)在的資料,從這里可以看到一個全新的Shader。除了默認(rèn)資料之外什么都沒有,編輯畫面里的PBR Master是這個著色器的主節(jié)點,最后輸出會從這里呈現(xiàn)。

????上面的設(shè)置基本上就是Unity標(biāo)準(zhǔn)著色器上那些設(shè)置,Albedo負(fù)責(zé)表面紋理與顏色,比如我們把顏色改成紅色,并按一下Save Asset存檔,就會看到模型立馬變成紅色。

????現(xiàn)在我想新增一個用來放紋理的節(jié)點,在空的地方按一下右鍵,選Create Node ->搜索Sample,找到Sample Texture 2D,這個節(jié)點專門用來取樣一張紋理,左邊的Texture可以指定一張紋理,能常是美術(shù)畫好的表面紋理,右面則有不同的輸出設(shè)置,你可以針對紋理的RGBA全部輸出,或者是只輸出某一個通道,現(xiàn)在我從RGBA拉出一條線連到Albedo。

????因為默認(rèn)種顏色已被取代,因此存檔后物件會變回白色,然后我指定一張紋理給它,原本空空的材質(zhì)設(shè)置會多出一個紋理圖,但是Texture 2D顯示是灰色的,無法更改這張紋理。

????如果想設(shè)計成讓別人也能修改這張圖,就必須要把這里設(shè)置為全域(局)的變量,我們可以在左邊的變量檢視窗口(黑板),新增一個Texture 2D,我把它命名為Skin_a,并確保Exposed有打勾的狀態(tài)拉到編輯畫面里,系統(tǒng)會自動產(chǎn)生一個節(jié)點,這個變量就會負(fù)責(zé)承接著色器以外的資訊(信息),現(xiàn)在就可以從這里修改設(shè)置了,美術(shù)準(zhǔn)備的法線紋理也可以通過這個方法來指定,這次我用復(fù)制節(jié)點的方式來復(fù)制一個節(jié)點和設(shè)置,添加另外一個Texture 2D,命名為Skin_n,一樣拖到編輯畫面上并連到法線紋理節(jié)點的Texture欄位,并從RGBA連到Normal,這里的Type要記得改為Normal,Space則要看哪種類型的法線紋理,這里通常是Tangent,存檔。

????并指定美術(shù)提供的法線紋理,你就會看到凹凸的感覺出現(xiàn)了,數(shù)值類型的變量從里面調(diào)整必須要存檔才能看到改變,如果你想要從外調(diào)整立馬看到改變的話,就可以添加一個Vector1變量來連接,默認(rèn)是輸入值的方式,你可以把Mode改為Slider并定義最大值和最小值,就可以這樣用拉的。

????接下來我們來介紹本次的重點部分,先把版面整理一下,要讓龍動起來最重要的節(jié)點之一是Position Node,座標(biāo)節(jié)點,他有四種空間可以選擇分別是,物件座標(biāo),鏡頭座標(biāo),世界座標(biāo)和切線座標(biāo)。

四種空間選擇

????座標(biāo)輸出當(dāng)然就是XYZ的值,輸出的這條線不同顏色代表不同的輸出量,分別是1個藍色,2個的時候是綠色,3個的時候是黃色,4個的時候是粉紅色,數(shù)量大的連到數(shù)量小的代表會有數(shù)值被忽略。

數(shù)量大的連到數(shù)量小的代表會有數(shù)值被忽略

????如果像這樣直接用世界座標(biāo)取代物件座標(biāo),大概就是像這樣看起來偏移了一定的量,如果改為物件座標(biāo),當(dāng)然就是是把相同的值覆蓋上去看不出改變,Position的輸出有3個,即XYZ,我可以用Split節(jié)點來拆成三個值,這個節(jié)點支持分離4個值,但因為輸入只有三個值,因此只會拆出三個出來,既然有分開節(jié)點當(dāng)然就會有組合節(jié)點,即Combine節(jié)點。Combine節(jié)點可以把輸入的4個值組合成一組,如果我原封不動的把所有的座標(biāo)都組合回來,連回Master節(jié)點上的Position,結(jié)果當(dāng)然不會有任何改變。

????有了這層概念,我希望可以通過不斷的修正某一個座標(biāo)的值,來達到扭動的效果,這里我會添加一個Add節(jié)點,他是負(fù)責(zé)把兩個值加起來的加法節(jié)點,我把X的值改連到這里后在接回組合節(jié)點,我就多一個輸入可以來影響這個值。如果想要不斷的改變值,Time時間的節(jié)點是很好的選擇,它有很多種時間格式可以選擇,我們可以用Sine Time來影響座標(biāo)試試看,現(xiàn)在你可以看到物件從頭到尾并沒有改變它的座標(biāo),但可以看到龍(物件)在左右的平移。

平移

????接下來我們想要針對不同的節(jié)點給不同的值,因此我可以添加另一組Position的節(jié)點,一樣用Split節(jié)點來拆開它的值,我想把這里的座標(biāo)剛剛的時間加在一起,所以我添加一個Add節(jié)點,并且只取物件的Z軸數(shù)值和時間節(jié)點的Tme做加法運算,我在兩個Add中間添加一個三角函數(shù)Sine的節(jié)點,用來把前面不同時間送過來的頂點座標(biāo)做角度偏移的計算。

????現(xiàn)在你可以看到龍已經(jīng)開始扭動了,這張圖的Time,Position和Sine所帶來影響,白話的說法就是擺放的速度,擺動的頻率和擺動的距離。

????接下來我來將這三個變量設(shè)計為可以改變的,新增三個Vector1,分別命名為Speed,F(xiàn)requency,Distance,分別拉到編輯畫面和Time下面的Split和Sine配對。

添加三個參數(shù)暴露給檢查器

????前面介紹結(jié)合兩個值可以用Add節(jié)點,那么要放大一個值可以用Multiply,乘法節(jié)點,因為我們做成可以讓別人調(diào)整的值,如果數(shù)值到達100才會有感覺的話,那就很適合用乘法來讓它變成從0-1就有感覺,所有輸入的類型其實都還蠻適用這個原理,所以我們來新增三個乘法節(jié)點,并插入到剛剛添加的三個數(shù)值后面串起來,存檔。

最終圖表

????從外面可以看到三個數(shù)值已經(jīng)被新增上去,稍為調(diào)整看看?,F(xiàn)在龍開始爬行了。

????如果你是用骨架動畫來做的話,這里肯定要重新制作動畫了。原本影響的X軸座標(biāo)我改為影響Y軸座標(biāo)就可以了。

????由于整條龍共用一個著色器,所以頭部當(dāng)然會變形,想解決這個問題可以把頭部改用其他著色器?;蚴前堰@個著色器應(yīng)用在像這種大量且離攝像頭遠的物件也蠻適合的。

????看到這里也許你想問,這種圖形化的著色器能夠修改代碼嗎?答案是可以的。在PBR Master上按右鍵,點選Copy Shader,就可以把最終不含編輯器的Shader代碼復(fù)制出來。

復(fù)制著色器代碼

????這樣子你就可以繼續(xù)依照不同的平臺適配性來修改或優(yōu)化,如果你想要查詢這些節(jié)點的用法信息,可以在任何節(jié)點上點右鍵選Documentation,系統(tǒng)會轉(zhuǎn)到Shader Graph的Github。

連接外部文檔

????這里可以連到文件的頁面,你可以從這里搜索所有節(jié)點資料和用法,未來會直接連到每一個節(jié)點的說明,你可以看到除了節(jié)點資料之外,還能看到代碼的范例。

????從此美術(shù)小伙伴再也不用擔(dān)心要寫代碼了。


MMD聯(lián)動Unity學(xué)習(xí)筆記 Vol.18 ShaderGraph制作飄動的巨龍的評論 (共 條)

分享到微博請遵守國家法律
大新县| 梁河县| 鄂托克旗| 翼城县| 阿鲁科尔沁旗| 旺苍县| 铜梁县| 琼海市| 牙克石市| 绥宁县| 宁阳县| 东阿县| 扶余县| 高阳县| 汉中市| 衡阳市| 巴林左旗| 那曲县| 鱼台县| 北票市| 庆城县| 安顺市| 金华市| 宜君县| 漳平市| 永善县| 盱眙县| 罗江县| 满洲里市| 兴国县| 鹤庆县| 桦甸市| 永平县| 格尔木市| 九江市| 红河县| 古丈县| 安西县| 大方县| 孟村| 榆树市|