Unity Shader Graph 伪体积云制作笔记

教程:Unity Shader Graph - Clouds Tutorial - YouTube

  1. 导入一个平面
  2. 创建空白graph后在targetsetting中 add active targets:universal


    image.png

    勾选Two sided使两面均可见


    image.png

    属性值及其默认值设定
    image.png

    将属性作为噪声缩放率的输入,连接输出的base color,应用看到效果


    image.png
  3. 增加移动的动画
    移动速度(输入属性 Vector2) * Time节点(float) = uv offset(Vector2)
    动画.gif

    4.调整噪声的密度
    用power节点,输出A^B, A的值在[0,1]之间,B越大输出值越小,即整体越黑(数图点运算之幂次变换s=cr^\gamma
    动画 (1).gif

    有时候纹理预览不能正确显示,play一下刷新就好
    5.调整颜色和intensity
    增加color属性,模式选为HDR。color节点与power的输出相乘
    image.png

    image.png
  4. 增加不透明度
    增加alpha属性与噪声相乘,graph settings中将surface设为Transparent,片元着色器中增加Alpha,乘积输出至此。


    image.png

操作:相机或其他物体视角与视图对齐(或反之)


image.png

目前的节点和效果:


image.png
  1. 添加扰动
    目前的云完全重复一致,增加另一套噪声做扰动,使云的形状有变化


    image.png

两套噪声的scale和speed要有倍数差距才能看出效果


动画 (2).gif

目前是一层纯平面的云

8.添加厚度
将模型建为很多细分的微凸起面,构造足够多的顶点


image.png

在vertex shader中增加关于起伏的节点,Normal Vector和Position的空间都选为Object
new vertex position = 物体空间法向*主噪声输出*offset比例+原来的vertex position
相当于把凸面的顶点沿法向往外移 而且随噪声的动画移动


image.png

vertexoffset设到千分之一就有明显厚度起伏
image.png

做出伪体积感
动画 (3).gif

9.制作空洞
勾选AlphaClip并设置其参数,制造云的空洞,小于该alpha阈值的位置都变为空洞


image.png

完成效果


动画 (4).gif

完整shader graph
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。