22. Length长度 和 Distance 距离节点

目的
解释长度和距离是什么?
都有什么功能?
节点

Vector Length | 向量长度
Length 节点是输入一个,计算出这个问题的长度。
UE5 是可以输入两个 一个是 3D 位置向量,一个是2D 线

这里使用2D 示例
这个是测量 线的长度
Distance | 距离
两个物体的距离做为输出的。
示例
输入两个点输入

距离 可以多方位的组合。

他们二者结果是一样的。
Length 是测量线的距离 Distance 是两个点之间的距离他们二者计算的结果是一样。
扩展 Vector Length 节点和 Distance 节点他他们的区别是什么?
长度输入的是一个,距离是输入两个

示例1 : 测试场景深度的方法
我们获取到场景摄像机的位置,在获取到当前像素的位置,

这是使用距离的计算,结果就是摄像机越近,材质就越黑,越远材质就越白。


注意: UE5的单位是 厘米,所以我们需要除 1W。
除1W

使用Length 方法,我们需要前减一下,

计算向量的方向获取这个向量的方向长度

示例2 : 顶点动画
我们制作草在风中摇摆的效果。
获取模型的局部空间顶点位置信息,


我们可以看到轴是在中间的位置。
制作一个循环的来回摇摆的效果使用Sine函数,乘一个数控制移动的大小。

输出的结果影响G通道也是Y方向,输出世界位置偏移

效果

我们可以看到效果是来回摇摆,但是是整体移动,这不是我们需要的。
那我们就需要获取到顶部到底部的距离。
使用不包括本地偏移顶点动画的位置,

我们获取Z 模型的高度。模型的中心点在0 ,所以我们需要调整位置到 -100 (如果中心点不够考下,可以在调整),
在乘0.001,映射到 0 - 1的范围

然后用这个制作我们的Mask来影响我们顶点动画,


示例3 :假光照
我们获取模型局部空间顶点位置信息,

我们在创建一个移动的点,使用Time节点

这个点假设是在 -1 到 1的位置移动,那我们乘 500 就变成 -500 到500的移动的一个位置信息。
使用这两个位置减

我们就可以看到效果,中间黑,边缘白色,我们需要反过来。
我们怕有超过0-1的范围,我们需要限制一下。

使用Pow节点控制范围大小

总结
VectorLength 向量长度 就是计算一个向量多长, Distance 距离是两个点的距离,他们二者结果是一样的。

Distance 距离节点 还可以计算出俩个点之间的渐变值,当一个点到另一个点之间的过度。

第三个示例使用俩点之间的距离制作一个效果,越近越显示白色,越远显示越黑,同样的原来可以制作成X方向

在Y轴看到的效果是一个光点出现和消失,X轴是移动效果。
表示效果
