教程:Unity Shader Graph - Clouds Tutorial - YouTube
- 导入一个平面
-
创建空白graph后在targetsetting中 add active targets:universal
image.png
勾选Two sided使两面均可见
image.png
属性值及其默认值设定
image.png
将属性作为噪声缩放率的输入,连接输出的base color,应用看到效果
image.png - 增加移动的动画
移动速度(输入属性 Vector2) * Time节点(float) = uv offset(Vector2)
动画.gif
4.调整噪声的密度
用power节点,输出A^B, A的值在[0,1]之间,B越大输出值越小,即整体越黑(数图点运算之幂次变换)
动画 (1).gif
有时候纹理预览不能正确显示,play一下刷新就好
5.调整颜色和intensity
增加color属性,模式选为HDR。color节点与power的输出相乘
image.png
image.png -
增加不透明度
增加alpha属性与噪声相乘,graph settings中将surface设为Transparent,片元着色器中增加Alpha,乘积输出至此。
image.png
操作:相机或其他物体视角与视图对齐(或反之)
image.png
目前的节点和效果:
image.png
-
添加扰动
目前的云完全重复一致,增加另一套噪声做扰动,使云的形状有变化
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