Shader Forge 入門學習(二) 實現發光、火焰燃燒、溶解、扭曲效果

引言:本篇博客主要記錄ShaderForge的常用案例,包括外發光、火焰燃燒、溶解、扭曲等效果。由於內容較多會分成幾篇博客記錄。如果您對Shader Forge的常用操作還不熟悉,請先看 Unity3D Shader Forge 入門學習(一)。剛開始學習時,可以先不用固執的探究爲什麼節點要這麼連接,可以先以效果爲目的,然後再慢慢地優化連接方式,熟悉節點作用。

開發版本:Unity 2017.1.1f1

適合人羣:瞭解ShaderForge常用操作

目錄:

節點作用查看方式:
右鍵點擊“What does Texture 2D do?”
常用節點
隨即打開官方的Shader Forge節點介紹網址

外發光及光暈效果

簡介:使用Fresnel節點實現外發光效果,通過Post processing Stack後處理插件,實現光暈效果
注意:Fresnel外發光效果適合較爲圓潤的對象,而Cube這種棱角分明的對象不適合
Post processing Stack是官方免費插件,可以在Assets Store上下載,適合PC端,不適合移動端,需要適配移動端可以使用 Moblie Post processing插件。
效果如下:

Inspector面板顯示如下:
面板顯示
節點連接情況如下圖所示:
節點連接

在資源商店上下載Post processing Stack,並導入Unity中
創建Post-Processing Profile:
創建Post-Processing Profile

勾選Bloom選項,可以使得場景中對象的HDR值超過Threshold值
勾選Bloom選項

在主攝像機上掛載Post Processing Behaviour腳本,將剛纔創建的Post-Processing Profile,掛載在Profile上。
掛載Post Processing Behaviour腳本

**P.S.**如果Scene場景中沒有顯示出光暈效果,需要勾選Image Effects。
這裏寫圖片描述

火焰效果

使用 UV Coordinates節點實現紋理的運動效果,結合Distance節點實現遮罩效果,在使用Step和Subtract節點實現火焰邊緣的效果。最後還是通過post processing stack插件實現光暈效果,如下所示:
火焰效果
Inspector面板顯示如下:
面板顯示
使用紋理如下,建議使用紋理稍微連貫一點的,不會有明顯的分界邊緣
紋理
節點連接情況如下所示:
節點連接

溶解效果

效果演示:
效果演示
Inspector面板顯示:
面板顯示
使用的漸變貼圖如下:
漸變貼圖
節點連接情況:
節點連接
可以通過腳本動態控制對象溶解效果

public class DissolutionCtr : MonoBehaviour
{
    public float smooth = 0.2f;

    private MeshRenderer meshRenderer;
    private float intensity;
    private bool forward = true;

    private void Start()
    {
        meshRenderer = gameObject.GetComponent<MeshRenderer>();
    }

    private void Update()
    {
        if (forward)
        {
            intensity += Time.deltaTime * smooth;
            if (intensity > 1.0f)
                forward = false;
        }
        else
        {
            intensity -= Time.deltaTime * smooth;
            if (intensity < 0)
                forward = true;
        }
        //SetFloat用於設置溶解的程度
        meshRenderer.material.SetFloat("_Intensity", intensity);
    }
}

扭曲效果

主要通過折射背景像素的屏幕空間UV偏移實現扭曲畫面,然後通過粒子系統實現類似發射波的效果,如下所示:
效果演示
Inspector面板顯示:
面板顯示
節點連接情況如下所示:
節點連接
粒子系統主要實現讓粒子間斷髮射效果即可,可以參照如下設置:
粒子設置
因爲使用了Vertex Color節點的Alpha通道,通過修改Color over Lifetime的透明度,可以實現發射波漸隱漸現的效果,如下所示:
透明度
Size over Lifetime的動畫曲線如下所示,隨着時間逐漸變大。需要注意Renderer一欄中的Render Mode需要修改爲Horizontal Billboard,纔可以讓粒子貼着水平表面發射。
大小設置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章