從頭學ShaderGraph :溶解材質
溶解材質
先說下新發現
上篇文章不是說HDRP的emission物理單位導致需要乘10w倍嗎,我在shadergraph中找到了一個節點叫Emission Node,應該是HDRP獨有的。
現在單位是Nits,熟悉顯示器的朋友應該清楚,常見顯示器的最大亮度不高於400Nits,強勁一點的HDR顯示器也不會超過1000Nits
所以我把滑塊的最大最小值重新修正了一遍,如果是想用在URP(LWRP)中的同學,可以自行修改(換成乘法就好)。
下面開始正文
靈感來源於Brackeys的youtube教程,但內容更加豐富。
溶解材質是遊戲內能經常見到的:怪物死亡,消融模型,淡入淡出,都需要用到。
溶解在材質上分為兩步
1. 模型逐步消失
2. 消失邊緣發光
先來做模型消失
模型消失即為讓模型沿著alpha切割,就是standard的Cutout模式
也就是圖中的AlphaClip
預設AlphaClip為0.5,也就是說alpha中,0到0.5的位置會被切掉
現在需要一張用於切割的黑白Noise圖。你可以自己做,放在Albedo的Alpha中,也可以用Noise節點來實時生成
目前自帶的noise節點為這三個。我選擇最後一個作為例子
可見模型被切割了。
現在我需要一個滑塊,來控制這張Noise圖,有如下變化。
最簡單的做法是,加上一個範圍是-1到1的滑塊。
於是乎切割就做好了。
再加切割邊緣光
邊緣光更好理解,現在圖片0.5是切割的邊界。如果0-0.6為發光,0.5以下被切掉,那麼發光地方不就成了0.5-0.6。這就是邊緣光。
可以用Step這個節點給Alpha做遮罩,把邊緣發光加到自發光貼圖上,最終輸出出去。
上面就是原視訊的所有內容
但!我們還要往前!!
在視訊裡,我看到了一段參考,從上到下的溶解,並且溶解的顏色會變化。
這篇文章的最終目的就是這個。
先分析下如何做
- 取到上下資訊
- noise上下消融
如何取上下資訊?
有兩種方法:1.取模型本地的位置資訊(Position節點)。2.UV。
這裡我選擇用UV來做。
因為第一套UV需要給貼圖。所以模型展2U,正面對映。
這樣,UV的V就能拿來做上下漸變圖。
如何上下消融?
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
照著函式連一下,即可得到我們想要的矇蔽圖。下面一步,便是讓最後那張圖能上下移動。
*最開始我想的是在最後一個節點上,加上一個滑塊。但真正實驗過後,你會發現行不通。因為最後一張圖有高於1的值,用加上-1沒法得到純黑。而用clamp或saturate限制0-1,會導致漸變有問題。
所以我找了個取巧的辦法。
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之間。
AlphaClip的是一個滑塊,最小值為2
至此,上下溶解的蒙版製作完成。
至於顏色漸變,用UV的V,lerp兩種顏色就好。
至此,本章完結
最後把noise悄悄換成了維諾圖
下面是我的檔案
檔案分享share.weiyun.com
密碼:xjqym9
使用方法:找個HDRP或著URP(LWRP),拖進去。我的資料夾下有預製體。記得調自發光強度。
下面是我的artstation地址:
https://www.artstation.com/luteli
相關閱讀:從頭學ShaderGraph :UV與基礎材質
作者:Lute Li
專欄地址:https://zhuanlan.zhihu.com/p/99435201
相關文章
- 從頭學ShaderGraph:雪材質
- 從頭學ShaderGraph :護盾材質
- 從頭學ShaderGraph 6:深度冰材質
- 從頭學ShaderGraph :UV與基礎材質
- 材質
- 修改材質
- blender材質屬性:
- 材質最佳化:如何正確處理紋理和材質的關係
- OpenGL高階版本學習日誌2:光照模型&材質模型
- ThreeJs-03材質進階JS
- JMonkeyEngine——材質檔案備註
- katana材質的製作2
- 從頭開始學習VuexVue
- 韶關鋼材檢測 Q355B鑑定材質檢測
- three.js獲取物件的材質JS物件
- 閃耀暖暖手遊布料材質解析
- Linux從頭學07:中斷那麼重要,它的本質到底是什麼?Linux
- unity shader 溶解,上下左右,cutoffUnity
- Premiere溶解過渡效果怎麼做怎麼做? PR影片新增溶解效果的技巧REM
- ThreeJs-05紋理材質高階操作JS
- ThreeJs-04詳解材質與紋理JS
- 一組材質面料展示模組參考
- Premiere溶解過渡效果怎麼做怎麼做? PR視訊新增溶解效果的技巧REM
- 從頭開始學習vue-routerVue
- Unity Shader之雙面材質和多Pass渲染Unity
- CesiumJS PrimitiveAPI 高階著色入門 - 從引數化幾何與 Fabric 材質到著色器 - 下篇JSMITAPI
- CesiumJS PrimitiveAPI 高階著色入門 - 從引數化幾何與 Fabric 材質到著色器 - 上篇JSMITAPI
- 記錄從頭學習 JAVA+selenium+testNGJava
- 【MMD x EEVEE教程】材質篇 • 替換物體反射反射
- 工字電感磁芯材質型別深度詳解型別
- Inconel600是什麼材質的鎳基合金
- 前端3D引擎-Cesium自定義動態材質前端3D
- visualstudio著色器設計器shadergraph使用
- 【caffe2從頭學】:2.學習caffe2
- 從頭開始的Java學習Day05Java
- 【MMD x EEVEE教程】材質篇 • 移除天空球環境反射反射
- 【MMD x EEVEE教程】材質篇 • 修復模型異常光斑模型
- 位移感測器根據材質的不同的分類