從頭學ShaderGraph :溶解材質

遊資網發表於2020-03-11
從頭學ShaderGraph :溶解材質

溶解材質

先說下新發現

上篇文章不是說HDRP的emission物理單位導致需要乘10w倍嗎,我在shadergraph中找到了一個節點叫Emission Node,應該是HDRP獨有的。

從頭學ShaderGraph :溶解材質

現在單位是Nits,熟悉顯示器的朋友應該清楚,常見顯示器的最大亮度不高於400Nits,強勁一點的HDR顯示器也不會超過1000Nits

從頭學ShaderGraph :溶解材質

所以我把滑塊的最大最小值重新修正了一遍,如果是想用在URP(LWRP)中的同學,可以自行修改(換成乘法就好)。

下面開始正文

靈感來源於Brackeys的youtube教程,但內容更加豐富。

溶解材質是遊戲內能經常見到的:怪物死亡,消融模型,淡入淡出,都需要用到。

溶解在材質上分為兩步

1.        模型逐步消失

2.        消失邊緣發光

先來做模型消失

模型消失即為讓模型沿著alpha切割,就是standard的Cutout模式

從頭學ShaderGraph :溶解材質

也就是圖中的AlphaClip

預設AlphaClip為0.5,也就是說alpha中,0到0.5的位置會被切掉

現在需要一張用於切割的黑白Noise圖。你可以自己做,放在Albedo的Alpha中,也可以用Noise節點來實時生成

從頭學ShaderGraph :溶解材質

目前自帶的noise節點為這三個。我選擇最後一個作為例子

從頭學ShaderGraph :溶解材質

可見模型被切割了。

現在我需要一個滑塊,來控制這張Noise圖,有如下變化。

從頭學ShaderGraph :溶解材質

最簡單的做法是,加上一個範圍是-1到1的滑塊。

從頭學ShaderGraph :溶解材質

於是乎切割就做好了。

再加切割邊緣光

邊緣光更好理解,現在圖片0.5是切割的邊界。如果0-0.6為發光,0.5以下被切掉,那麼發光地方不就成了0.5-0.6。這就是邊緣光。

可以用Step這個節點給Alpha做遮罩,把邊緣發光加到自發光貼圖上,最終輸出出去。

從頭學ShaderGraph :溶解材質

從頭學ShaderGraph :溶解材質

上面就是原視訊的所有內容

但!我們還要往前!!

在視訊裡,我看到了一段參考,從上到下的溶解,並且溶解的顏色會變化。

從頭學ShaderGraph :溶解材質

這篇文章的最終目的就是這個。

先分析下如何做

  • 取到上下資訊
  • noise上下消融


如何取上下資訊?

有兩種方法:1.取模型本地的位置資訊(Position節點)。2.UV。

這裡我選擇用UV來做。

因為第一套UV需要給貼圖。所以模型展2U,正面對映。

從頭學ShaderGraph :溶解材質

這樣,UV的V就能拿來做上下漸變圖。

如何上下消融?

從頭學ShaderGraph :溶解材質

Alpha為1,肯定顯示,Alpha為0,肯定隱藏。

Noise是一張不規則的黑白圖片,

  • 最黑的地方為0,0的位置想要顯示,就得加1。
  • 最白的地方是1,1的位置想要隱藏,就得減1。


所以我需要一張圖有1到-1的漸變,顯然右邊那張圖是我們想要的。

原圖是線性增加的,可以看成影像y=x

而右圖,設為y=ax+b,a是黑白漸變的強度。函式滿足x=0.5時,y=0。很容易得出,b=-0.5a,所以y=ax-0.5a

從頭學ShaderGraph :溶解材質

照著函式連一下,即可得到我們想要的矇蔽圖。下面一步,便是讓最後那張圖能上下移動。

*最開始我想的是在最後一個節點上,加上一個滑塊。但真正實驗過後,你會發現行不通。因為最後一張圖有高於1的值,用加上-1沒法得到純黑。而用clamp或saturate限制0-1,會導致漸變有問題。

所以我找了個取巧的辦法。

從頭學ShaderGraph :溶解材質

y=2x-1

把漸變滑塊加在x上。也就是y=a(x+m)-0.5a

當a等於2時候,m在0-1上滑動,正好會讓影像有整個 y在-1到1 的漸變。

而當a大於2時,滿足 y在-1到1 的m,也在0-1之間。

從頭學ShaderGraph :溶解材質

AlphaClip的是一個滑塊,最小值為2

至此,上下溶解的蒙版製作完成。

至於顏色漸變,用UV的V,lerp兩種顏色就好。

從頭學ShaderGraph :溶解材質

至此,本章完結

從頭學ShaderGraph :溶解材質

最後把noise悄悄換成了維諾圖

從頭學ShaderGraph :溶解材質

下面是我的檔案

檔案分享share.weiyun.com

密碼:xjqym9

使用方法:找個HDRP或著URP(LWRP),拖進去。我的資料夾下有預製體。記得調自發光強度。

下面是我的artstation地址:

https://www.artstation.com/luteli

相關閱讀:從頭學ShaderGraph :UV與基礎材質

作者:Lute Li
專欄地址:https://zhuanlan.zhihu.com/p/99435201

相關文章