Unity之ShaderGraph如何实现飘动的红旗

前言

今天我们来实现一个飘动的红旗
如图所示:

关键节点

SimpleNoise:根据输入UV生成简单噪声或Value噪声。生成的噪声的大小由输入Scale控制。
Unity之ShaderGraph如何实现飘动的红旗_第1张图片
Split:将输入向量In拆分为四个Float输出R、G、B和A。这些输出向量由输入In的各个通道定义;分别为红色、绿色、蓝色和阿尔法。如果输入向量In的维度小于 4 ( Vector 4 ),则输入中不存在的输出值将为 0。
如下所示,Split把UV中的红色通道分离出来。
Unity之ShaderGraph如何实现飘动的红旗_第2张图片
Clamp:返回钳制在分别由输入Min和Max定义的最小值和最大值之间的输入In 。
Unity之ShaderGraph如何实现飘动的红旗_第3张图片

原理

首先通过Time和SimpleNoise,我们生成了一个流动的噪波图,再通过UV+Split,我们得到一个左右渐变的图,两张图叠加,得到一个一侧扰动,一侧精致的扰动图,然后我们把扰动图应用于顶点偏移,就得到了一个顶点不断偏移的红旗飘动的效果。

完整节点

Unity之ShaderGraph如何实现飘动的红旗_第4张图片

你可能感兴趣的:(unity,shader,ShaderGraph,URP,ASE,顶点偏移,红旗飘动)