Unity2018 Shader Graph 實驗室

Unity2018 Shader Graph 實驗室

Tips:
-- 在shader forge和amplyfy Shader節點圖形化shader編程的誘惑下,unity官方終於在2018版本也推出了而本身shader節點可視化編程工具Shaderr Graph。本篇文章是對Shader Graph一些效果的嘗試,建議學習shader的朋友也嘗試下這些工具,對shader的理解會更加直觀
-- 效果中自發光光暈是使用的PostProcess中bloom,須自行添加
-- 圖看不清,右擊在標籤頁中打開
-- 想要自發光更炫,Color屬性節點開啓HDR模式html

目錄

  1. bilibili小電視
  2. 光劍
  3. 火焰卡牌

1.Bilibili小電視([]~( ̄▽ ̄)~*

效果

 

enter description here

BILIBILI

 

節點圖

 

節點圖

節點圖

 

效果說明

該效果主要分爲三個部分:編程

  1. 紅色部分,經過一個紋理與一個顏色相乘來做爲其基礎效果。
  2. 紫色部分,邊緣高光,經過一個菲涅爾節點和顏色相乘賦給自發光。
  3. 黃色部分,隨時間的扭曲和剔除,經過Step階梯點和Twirl扭曲節點實現,Noise節點輔助產生扭曲條紋狀效果。

節點說明

名稱 說明
Fresnel 菲涅爾反射,簡單來講就是表面與視角越是平行,則高光效果越明顯 (Unity就不能出個中文文檔嗎,哭enter description herehttp://api.unrealengine.com/CHN/Engine/Rendering/Materials/HowTo/Fresnel/index.html
Step 若是輸入In大於等於輸入Edge,返回1,不然返回0
Twirl 將相似於黑洞的旋轉扭曲效果應用於輸入的UV。扭曲效果的中心參考點由輸入參數Center決定,效果的總體強度由輸入參數Strength決定。輸入Offset可用於偏移結果的各個通道。
Position 獲取mesh的頂點或片斷的位置。可選的空間有Object, View, World, Tangent。(咱們使用該位置爲世界座標下的位置,做爲Twirl的中心點位置)
Time 能夠獲取Unity中的時間值。

2.光劍(願原力與你同在QAQ)

效果

 

enter description here

sword

 

節點圖

 

enter description here

enter description here

 

效果說明

該效果主要分爲三個部分:api

  1. 紅色部分,經過Positon的object即模型座標下的Y方向Step來得到溶解效果。
  2. 紫色部分,經過Noise,時間節點做用於UV與模型Position相加,給與模型沿着Y軸抖動的效果。
  3. 黃色部分,一個簡單的自發光。

節點說明

名稱 說明
Position 區別於上次,此次咱們使用的Object座標下,即模型空間下獲取模型自身的頂點位置屬性
Split 分割,將一個多維向量分割成多個1維的數值。若是輸入的向量小於4維,不夠的維度會使用默認值分別是 (0, 0, 0, 1)。
Gradient Noise 漸變噪點,基於輸入的UV生成一個漸變噪點圖(Perlin噪點)。Scale能夠控制噪點圖的大小。
Tiling And Offset 平鋪和偏移,這個功能咱們會常常用到,通常只要有貼圖的材質上都會有Tiling And Offset。將輸入參數UV的值,經過Tiling和Offset改變平鋪和偏移。

3.地獄之門(願火焰進化一切)

效果

 

enter description here

Fire

 

節點圖

 

火焰

火焰

 

效果說明

UV偏移與發光不在贅述,該效果的要點是邊緣部分的與原來顏色疊加,這樣火焰enter description here的邊緣亮度更高,下過更好。這裏咱們主要經過不一樣Step後的圖做差值來獲取邊緣。
黃色:紋理取樣
藍色:遮罩
紅色:UV偏移ide

節點說明

名稱 說明
One Minus 1減去,由於紋理像素對應 0~1,因此可使用該節點作取反操做
Add 相加,這裏咱們經過相加來混合邊緣顏色和原有顏色,也在cutoff剔除的時候加了些,防止將邊緣部分剔除
Subtract 相減,咱們經過兩個不一樣Step截取後的圖相減,從而得到他們的插值部分,即人爲獲取必定邊緣部分

4.火焰卡牌(快進來坐吧,酒館裏可熱鬧了)

效果

 

enter description here

MaskCard

 

節點圖

 

節點圖

節點圖

 

效果說明

像卡牌中流動的效果和前面用到的同樣,都是經過控制UV和噪聲圖來達到的。諸如流水,岩漿,魂魄,霧靄均可以經過這樣的方式實現。這個效果比較簡單,若是經過多層通道控制遮罩效果,每一個遮罩下有不一樣的特效,咱們就能夠作出看起來炫酷的效果了。工具

節點說明

這個效果實現比較簡單,須要說明的如若須要多個遮罩效果,能夠放在一張圖的不一樣通道下作遮罩。R,G,B,A四層能夠作四個遮罩圖,這樣更能節省資源。而後經過Mask節點來提取不一樣的遮罩,在控制不一樣遮罩的效果,咱們就能作出更加炫酷的特效。學習

5.序列幀動畫(一切盡在卡牌中)

效果

 

序列圖

AniNum

 

 

效果

AniFram

 

節點圖

 

節點圖

aniframe

 

效果說明

該效果主要實現了序列幀動畫,想經過animatior的方式將分割好的序列幀圖片播放同樣。能夠實現讀數,火焰,翻頁一些效果。動畫

節點說明

名稱 說明
Ceilling 返回大於或等於輸入值的最小整數。(floor:返回小於或等於輸入值的最小整數;round:返回最接近輸入值的整數)
Flipbook 將UV分割成若干份width列,height行,經過Tile做爲索引來控制UV偏移,實現相似翻頁等效果

6.血瓶(🤫喝完這杯,還有三杯(。・∀・)ノ゙嗨)

效果

 

enter description here

bloodpot

 

節點圖

 

enter description here

bloodpot

 

 

enter description here

b01

 

 

enter description here

b02

 

效果說明

該效果模擬血瓶的樣式,主要分爲玻璃瓶和瓶內液體兩個部分。瓶內液體分別使用泰森多邊形Voronoi節點和simplenoise節點製做出上方的波浪和下方粘稠液體的效果。玻璃瓶則是使用Elipse節點和distance節點繪製出環形的效果實現,其中的高亮⚪點也是經過Elipse縮放偏移後達到的。spa

節點說明

程序化圖像節點可參考: 程序化節點3d

名稱 說明
Voronoi 維諾圖,分型細胞細胞同樣的效果,能夠模擬波浪,晶體塊等效果。(參考
Elipse 圓形,可設置UV方向徑向寬度作出橢圓等
Distance 距離,熱度圖等效果中能夠用到
Remap 將輸入值映射到另外一範圍(該效果中經過從新映射distance模擬出了瓶體漸變效果)
SimpleNoise 簡單噪聲圖
Spherize 球面UV(儘管使用該材質的網格是片,經過球面UV仍是模擬出了液體在球體玻璃中扭曲的效果)
相關文章
相關標籤/搜索