Shader Graph13-长度函数、距离函数下

一、风吹动树的效果

 最下面不动,上面左右摆动。

二、解析

来回移动是使用Sine+Time来实现的,加一个Time节点让数值在-1到1的不断变化。结果是我们会发现立方体会沿着x、y、z的方向扩张。World Positon Offset表示物体偏离原位置的距离。

那么我们需要它沿着y轴变化。AppendMany官方解释是将4个单独的值组合成多通道的向量。G是绿色在这个Material中也就是对象坐标系下表示的就是y轴,将数值转为向量也就有个方向。

现在的情况是整体在y轴上来回移动,但我们的目标是最下面不动。所以我们的思路是按照从下到上的,由小到大控制移动的距离。所以这里我们加上Mask节点,属性勾选B,只保留z轴的方向,然后与Sine的结果相乘。

我们会发现中间红线的部分是不动的,上面和下面相对运动。那么我们只需要将红线的部分,也就是原点位置移动到最下面就行了。

下面说说为什么是128,为什么原点是在红线的位置。这里我们用到了DebugFloat3Values节点,将数值输出到物体表面,测试起来非常的好用,大家用起来吧。

结论就是原点是立方体中心的位置,整个立方体的边长为256,所以我们观察y轴正向的数值为128,-y的方向数值为-128。 同理z轴也是这样的。所以我们-128就是将原点移动了最下面。

三、Unity的版本

 与Unreal的区别是需要将Position的R、G、B的值传递到Combine节点中。要在Scene中看到顶点移动还要在Scene打开设置

猜你喜欢

转载自blog.csdn.net/zhuziying99/article/details/130399612