Unity Shader Graph 偽體積云制作筆記

教程:Unity Shader Graph - Clouds Tutorial - YouTube

  1. 導(dǎo)入一個(gè)平面
  2. 創(chuàng)建空白graph后在targetsetting中 add active targets:universal


    image.png

    勾選Two sided使兩面均可見


    image.png

    屬性值及其默認(rèn)值設(shè)定
    image.png

    將屬性作為噪聲縮放率的輸入,連接輸出的base color,應(yīng)用看到效果


    image.png
  3. 增加移動的動畫
    移動速度(輸入屬性 Vector2) * Time節(jié)點(diǎn)(float) = uv offset(Vector2)
    動畫.gif

    4.調(diào)整噪聲的密度
    用power節(jié)點(diǎn),輸出A^B, A的值在[0,1]之間,B越大輸出值越小,即整體越黑(數(shù)圖點(diǎn)運(yùn)算之冪次變換s=cr^\gamma
    動畫 (1).gif

    有時(shí)候紋理預(yù)覽不能正確顯示,play一下刷新就好
    5.調(diào)整顏色和intensity
    增加color屬性,模式選為HDR。color節(jié)點(diǎn)與power的輸出相乘
    image.png

    image.png
  4. 增加不透明度
    增加alpha屬性與噪聲相乘,graph settings中將surface設(shè)為Transparent,片元著色器中增加Alpha,乘積輸出至此。


    image.png

操作:相機(jī)或其他物體視角與視圖對齊(或反之)


image.png

目前的節(jié)點(diǎn)和效果:


image.png
  1. 添加擾動
    目前的云完全重復(fù)一致,增加另一套噪聲做擾動,使云的形狀有變化


    image.png

兩套噪聲的scale和speed要有倍數(shù)差距才能看出效果


動畫 (2).gif

目前是一層純平面的云

8.添加厚度
將模型建為很多細(xì)分的微凸起面,構(gòu)造足夠多的頂點(diǎn)


image.png

在vertex shader中增加關(guān)于起伏的節(jié)點(diǎn),Normal Vector和Position的空間都選為Object
new vertex position = 物體空間法向*主噪聲輸出*offset比例+原來的vertex position
相當(dāng)于把凸面的頂點(diǎn)沿法向往外移 而且隨噪聲的動畫移動


image.png

vertexoffset設(shè)到千分之一就有明顯厚度起伏
image.png

做出偽體積感
動畫 (3).gif

9.制作空洞
勾選AlphaClip并設(shè)置其參數(shù),制造云的空洞,小于該alpha閾值的位置都變?yōu)榭斩?/p>

image.png

完成效果


動畫 (4).gif

完整shader graph
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容