我们在一些特殊场景,比如冰雪天,经常会对周围物体添加一些积雪效果,如果我们直接把积雪做到模型上,就无法更加灵活的表现其他天气的环境了,比如春夏秋冬切换。所以一般这种需求我们都是使用Shader来表现。
入下图所示:
NormalVector:提供对网格顶点或片段的法线向量的访问。可以使用Space下拉参数选择输出值的坐标空间。
GradientNoise:根据输入UV生成梯度或Perlin噪声。生成的噪声的大小由输入Scale控制。就性能成本而言,梯度噪声节点的计算强度可能比采样纹理贴图稍高。由于UV值用作噪声生成的种子,因此您可以偏移、缩放或扭曲UV值以生成不同的噪声模式。
积雪效果的原理就是:获取物体表面法线向量,计算朝上的位置,给他叠加一层白色,甚至还可以修改它的顶点,让积雪表现出厚度来。
我这里又利用Noise噪波图给积雪做了一个随机性处理,这样积雪的形状会更随机一些,不会太规则,显得很假。