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

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

MMD聯(lián)動(dòng)Unity學(xué)習(xí)筆記 Vol.19 Shader Graph制作能量護(hù)盾

2019-05-26 18:53 作者:NXL2  | 我要投稿

前言

????這期我們的主題繼續(xù)學(xué)習(xí)ShaderGraph。這期是Unity官方達(dá)哥制作的視頻《Unity Shader Graph第二期:制作能量護(hù)盾》。Up記錄下來方便復(fù)習(xí)。下面是視頻鏈接。

具體操作

????我們這期利用拉節(jié)點(diǎn)的方式來制作一個(gè)能量護(hù)盾的著色器。之前有介紹過使用Shader Graph要準(zhǔn)備哪些插件和設(shè)置,所以這期不再贅述,沒有看過的小伙伴先去看一下之前的筆記(視頻)。因?yàn)榻酉聛頃?huì)省略很多之前有介紹過的操作說明。

????

機(jī)械蜘蛛的材質(zhì)

????達(dá)哥準(zhǔn)備的是一只機(jī)械蜘蛛(我們隨變找個(gè)模型),它身上原本就帶有一個(gè)材質(zhì),上面的著色器是Lit著色器,就是LWRP管線的標(biāo)準(zhǔn)著色器,上面該有的紋理都有了。

換成新的著色器

????接下來新增一個(gè)PBR Shader Graph ,然后把材質(zhì)上的Shader換成這個(gè)著色器,新的著色器默認(rèn)什么效果都沒有,接下來我們要在編輯器內(nèi)把那些欄位加回來。物件本身帶的紋理上一期有介紹過了。如何用Sample Texture 2D來指定回這些紋理,這里也不是本期的重點(diǎn)。所以這里我快速的把這些節(jié)點(diǎn)添加進(jìn)來。

現(xiàn)在著色器的圖表

? ? 我們邊播放邊調(diào)整會(huì)看的比較清楚。要制作能量護(hù)盾之前,我想先介紹一個(gè)節(jié)點(diǎn)叫做,F(xiàn)renel Effect(菲涅爾效果),它有點(diǎn)像是Outline的連線效果,但又沒有那么銳利,它的原理是基于View視角面向網(wǎng)格,如果 反射角度越大,回傳的值就越大,這樣的特性我就可以從攝像頭去推算出模型的邊緣在哪。我把它直接連到主節(jié)點(diǎn)的Emission,就是發(fā)光通道。

連到主節(jié)點(diǎn)的Emission

????它就會(huì)作為自發(fā)光信息反映在模型上,你可以看到現(xiàn)在模型開始發(fā)出白光,而且越接近邊緣的話越白,菲涅爾是可以調(diào)整強(qiáng)度的,所以Power的值越大效果就會(huì)越銳利,雖然這個(gè)節(jié)點(diǎn)沒有顏色信息,但Emission是可以接收顏色信息的,所以我們可以新增顏色節(jié)點(diǎn),但要記得一個(gè)輸入不能夠接受兩個(gè)輸出,所以這邊我們得用乘法節(jié)點(diǎn),把兩組信息合并起來才送到Emission去。

和顏色相乘

????如果想要從外面可以調(diào)適數(shù)值,你可以把這兩個(gè)變量改為全域(局)變量,讓他們可以從外面去修改,新增一個(gè)Vector1,改為Slider大小值改1-10好了,把他拉到圖面上,連到Power欄位,Color在這里本身就是個(gè)變量了。所以你可以在它上面直接按右鍵,選Convert to Property直接轉(zhuǎn)成全域(局)變量,現(xiàn)在可以從外面的代碼直接調(diào)整這兩個(gè)值了。

增加兩個(gè)變量

????了解了菲涅爾效果的做法之后,我們可以試著在這個(gè)人物身上用相同原理來制作護(hù)盾。首先添加一個(gè)Capsule膠囊模型在人物上,然后調(diào)整大小讓它可以包住這個(gè)人物。

????為了避免碰撞可以先把Capsule Collider碰撞體先關(guān)掉,跟剛剛一樣生成一個(gè)材質(zhì)給這個(gè)膠囊,然后也生成一個(gè)著色器,這里由于不需要表面紋理我們可以試試用Unlit Graph。

下面使用Unlit著色器

????把膠囊體的著色器改為這個(gè)新的著色器,打開著色器編輯,Unlit的節(jié)點(diǎn)比PBR少很多,能畫的層比較少當(dāng)然性能也比較好。很適合護(hù)盾這種不需要太多效果的著色器,這次我們只會(huì)用到Color和Alpha這兩個(gè)通道,然后跟前面一樣,把菲涅爾特效實(shí)現(xiàn)在這里,并指定給Color通道。如果要有顏色就要加上顏色節(jié)點(diǎn),并用乘法節(jié)點(diǎn)連起來。

????然后把要做為外部的變量值設(shè)置一下,我們現(xiàn)在有個(gè)便宜版的護(hù)盾效果,如果你要這樣就出了也可以,沒氪金大概就長這樣。233

沒氪金的樣子

????如果有氪金的話呢再給他透明度就好啦。那你要制作透明度要傳值給Alpha透明通道。

輸入無法同時(shí)接收兩個(gè)輸出來源(by達(dá)哥)

????雖然我們剛剛有講輸入無法同時(shí)接收兩個(gè)輸出來源,但是輸出卻可以同時(shí)輸出給多個(gè)不同的輸入節(jié)點(diǎn)。

輸出可以同時(shí)輸出給多個(gè)不同的輸入節(jié)點(diǎn)(by達(dá)哥)

????如果目的節(jié)點(diǎn)還沒生成的情況下,你也可以直接從輸出節(jié)點(diǎn)拉出一條線到空白的地方,系統(tǒng)會(huì)直接詢問你要產(chǎn)生的新節(jié)點(diǎn)是什么,并且自動(dòng)連上,這里我產(chǎn)生一個(gè)乘法節(jié)點(diǎn),終點(diǎn)接到Alpha通道,然后Master節(jié)點(diǎn)按一下(齒輪),把第一個(gè)Surface的值改為Transparent,讓它變成接受透明度。

Surface的值改為Transparent

????存檔就可以看到你的護(hù)盾變成透明了。

氪金了

????接下來我想讓護(hù)盾除了發(fā)光之外也可以有點(diǎn)紋理,所以我剛剛預(yù)留一個(gè)乘法節(jié)點(diǎn),就是為了要添加一層紋理。你可以添加一個(gè)Sample Texture 2D連到乘法節(jié)點(diǎn),并且指定一個(gè)紋理,你就可以看到護(hù)盾有效果,但是我還希望再多做一點(diǎn)設(shè)置,所以我另外添加一個(gè)Position節(jié)點(diǎn)來影響UV通道。上次我們已經(jīng)介紹過世界座標(biāo)和物件座標(biāo),這次我們用View這個(gè)座標(biāo)系從攝像頭的方向來繪制這個(gè)紋理。你可以看到紋理效果有中斷的感覺,沒有像瓷磚一樣無限循環(huán),所以我可以加一個(gè)Tilling and Offset這個(gè)節(jié)點(diǎn)來處理循環(huán)還有平移的效果,你把它接到UV通道,并且生成一個(gè)Vector1來作為調(diào)適強(qiáng)度的值,然后連到Tilling。

????現(xiàn)在從外面可以調(diào)整紋理的循環(huán)數(shù)量,我把紋理也改成外面可以調(diào)試的,然后換一張紋理來比較看看,雖然替換新紋理了,但是膠囊本身的陰影影響了視覺,我把顏色Mode模式改為HDR,就可以透過強(qiáng)化顏色來解決黑黑臟臟的問題。

????陰影的部分你可以從Mesh Renderer把Cast Shadows改為Off把它關(guān)掉。

????這種做法不管你的攝像頭怎么動(dòng),畫面都會(huì)保持畫出一個(gè)封閉的護(hù)盾,紋理也會(huì)依照你的方向來繪制,不同的護(hù)盾形狀,只要用這個(gè)著色器放到不同的物件就可以解決。

????你可以指定到不同的材質(zhì),然后換不同的紋理就感覺換不同的護(hù)盾。

View設(shè)置

????比對World和View設(shè)置差異,可以感覺一下哪一種比較適合你的游戲類型。

World設(shè)置

????如果你直接應(yīng)用這個(gè)著色器到任何沒有紋理的模型,它就會(huì)變成是有點(diǎn)像隱形怪的作法,是不是很方便。

????最后要分享的是,關(guān)于Shader Graph是否能用在Unity傳統(tǒng)的Built-in的渲染管線,雖然官方的答案是不行的。如果你從新的Shader Graph做完之后,想要拿回舊的Built-in Pipeline去運(yùn)行的話,基本上你要自已去修改代碼,把那些不兼容的部分通通移除掉,所以這代表是必須有一定的程序基礎(chǔ)的,這樣子的話你就可以從Shader Graph里面去把整個(gè)Shader的代碼拷貝出來,然后自己把它排除掉。

????最后感謝達(dá)哥帶來的視頻分享,非常受益。

MMD聯(lián)動(dòng)Unity學(xué)習(xí)筆記 Vol.19 Shader Graph制作能量護(hù)盾的評論 (共 條)

分享到微博請遵守國家法律
兰西县| 巴彦淖尔市| 宜都市| 吴旗县| 渝中区| 马尔康县| 城步| 丰原市| 安图县| 乐清市| 龙游县| 新余市| 英山县| 郧西县| 虞城县| 陆川县| 衡山县| 淮阳县| 平原县| 昌乐县| 长丰县| 来安县| 汾西县| 综艺| 广河县| 中超| 南溪县| 民县| 衡水市| 舟曲县| 咸阳市| 凤庆县| 四平市| 桑日县| 普格县| 兴业县| 吴堡县| 中超| 瑞丽市| 会昌县| 哈尔滨市|