Materials - DistanceField Nodes

以前的相关笔记,归档发布;

距离场相关节点

DistanceToNearestSurface节点

求出传入的Position位置到最近的面的距离并输出,在没有Position输入的时候,默认值会直接使用World Position:

Position的默认值即为World Position;其为输出Pixel Position到最近的Surface的距离值;

加上一个偏移值参数:

能达成最简单的功能:

注意只有地面面片Mesh给予了距离场相关材质;

下面是简单的示例:

使用节点时注意在项目设置中打开距离场相关参数

DistanceToNearestSurface节点在制作如物件和地面接触相关的一些效果时非常有用;一般可以利用节点制作一个Mask作为Alpha输入:

这个Mask可以用在Normal上,比如让物件的World Normal与地面融合:

主要方式是让mask出来的地方法线朝上:

A输入的是正常的Tangent Normal Map,B如上输入的是World Space中朝上的法线,需要转换为Tangent;

也可以配合World Position Offset让接触地面的部分变形:

节点如下:

DistanceFieldGradient节点

这个节点不像DistanceToNearestSurface输出的只是一个距离值,而是向量值;同样用最简单的例子表示:

只有地面材质Mesh给予了相关材质,其不同的向量值输入到BaseColor映射成了不同颜色;

由于是向量值,所以有时需要归一化:

DistanceFieldGradient配合DistanceToNearestSurface可以做一些如草地交互的效果,DistanceFieldGradient控制交互向量,然后用DistanceToNearestSurface控制交互范围;


猜你喜欢

转载自blog.csdn.net/DoomGT/article/details/129239458