转载作品

Shader Forge 入门学习(二) 实现发光、火焰燃烧、溶解、扭曲效果

哈利路亚 发表于   2021-12-15 14:30:25
4502
2
21

引言:本篇博客主要记录ShaderForge的常用案例,包括外发光、火焰燃烧、溶解、扭曲等效果。由于内容较多会分成几篇博客记录。如果您对Shader Forge的常用操作还不熟悉,请先看 Unity3D Shader Forge 入门学习(一)。刚开始学习时,可以先不用固执的探究为什么节点要这么连接,可以先以效果为目的,然后再慢慢地优化连接方式,熟悉节点作用。


开发版本:Unity 2017.1.1f1


适合人群:了解ShaderForge常用操作


目录:

外发光及光晕效果

火焰燃烧效果

溶解效果

扭曲效果


节点作用查看方式:

右键点击“What does Texture 2D do?”

常用节点.png


随即打开官方的Shader Forge节点介绍网址


外发光及光晕效果


简介:使用Fresnel节点实现外发光效果,通过Post processing Stack后处理插件,实现光晕效果


注意:Fresnel外发光效果适合较为圆润的对象,而Cube这种棱角分明的对象不适合


Post processing Stack是官方免费插件,可以在Assets Store上下载,适合PC端,不适合移动端,需要适配移动端可以使用 Moblie Post processing插件。


效果如下:


Shader Forge 入门学习二 实现发光、火焰燃烧、溶解、扭曲效果_胖胖的橘猫君-CSDN博客_shader 火焰 (2).png


Inspector面板显示如下:


面板显示.png


节点连接情况如下图所示:


节点连接.png



在资源商店上下载Post processing Stack,并导入Unity中

创建Post-Processing Profile:


创建Post-Processing Profile.png


勾选Bloom选项,可以使得场景中对象的HDR值超过Threshold值


勾选Bloom选项.png


在主摄像机上挂载Post Processing Behaviour脚本,将刚才创建的Post-Processing Profile,挂载在Profile上。


挂载Post Processing Behaviour脚本.png



**P.S.**如果Scene场景中没有显示出光晕效果,需要勾选Image Effects。


这里写图片描述.png




火焰效果


使用 UV Coordinates节点实现纹理的运动效果,结合Distance节点实现遮罩效果,在使用Step和Subtract节点实现火焰边缘的效果。最后还是通过post processing stack插件实现光晕效果,如下所示:


火焰效果.gif


Inspector面板显示如下:


面板显示 (2).png


使用纹理如下,建议使用纹理稍微连贯一点的,不会有明显的分界边缘


纹理.png


节点连接情况如下所示:


节点连接 (2).png


溶解效果


效果演示:

效果演示.gif


Inspector面板显示:


面板显示 (3).png


使用的渐变贴图如下:


渐变贴图.png


节点连接情况:


节点连接 (3).png


可以通过脚本动态控制对象溶解效果


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偏移实现扭曲画面,然后通过粒子系统实现类似发射波的效果,如下所示:


效果演示 (2).gif


Inspector面板显示:


面板显示 (4).png


节点连接情况如下所示:


节点连接 (4).png


粒子系统主要实现让粒子间断发射效果即可,可以参照如下设置:


粒子设置.png


因为使用了Vertex Color节点的Alpha通道,通过修改Color over Lifetime的透明度,可以实现发射波渐隐渐现的效果,如下所示:


透明度.png


Size over Lifetime的动画曲线如下所示,随着时间逐渐变大。需要注意Renderer一栏中的Render Mode需要修改为Horizontal Billboard,才可以让粒子贴着水平表面发射。


大小设置.png



版权声明:本文为CSDN博主「虚拟喵」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_35361471/article/details/81739345



没有标签
确定
评论(2)
猴子
现在学SF,会不会用种49年入国军的感觉。。。
回复
854天前
宇智波
回复
猴子
hhhh,这形容的,雀食到胃
回复
799天前
小白
图也太糊了吧,节点都看不清楚
回复
863天前
没有更多啦~
  • 咨询
    客服
  • 扫码加入QQ群 或搜索QQ群号: 797421367
  • 扫码关注公众号 或微信搜索: cokey游戏特效