UE4_材质节点_有关距离的_流体模拟

一、材质节点介绍:

特别注意:距离场需要独立显卡支持。

1、什么是距离场?

想象一下空间中只有两个实体, 一个球,一个圆柱.

空间由无数个点组成, 取其中任何一个点, 比如,它跟球面的最近距离 是3, 跟圆柱面的最近距离是2, 那么这个点的值就是2. 空间中所有的点都按照这个方法取值, 就形成了一个标量场, 称为距离场.

距离场计算出来以后, 能够得到场中任何一个点跟所有参考物体 (比如上例中的球和圆柱)之间的最近距离.

如果距离场的值表现为图像的明度, 它的视觉印象是一个个由参考物体分割出来的渐变区域.

2、距离场的开启

点击 主(Main) 菜单上的 编辑(Edit) 并选择 项目设置(Project Settings) 将其打开。

点击 渲染(Rendering)> 软件光线追踪(Software Ray Tracing) ,可找到用于调整网格体距离场的设置。

3、距离场的查看

4、DistanceToNearestSurface( 与最近表面的距离**)蓝图节点**

节点尝试理解:

根据理解与最近表面的距离获取的应该是个标量,我们除以一个值,使渐变区域变大以观察效果。

把这个材质赋予场景中的平面,这样平面上的自发光颜色根据这个距离除以100进行发光。

这样我们就理解了这个节点了,获取到的是物体上每个像素点到最近物体表面的距离。为了验证我们在添加一个物体看看效果:

在此示例中,DistanceToNearestSurface输送到材质上的"不透明"(Opacity)输入,而该材质应用于放在关卡地板正上方的"静态网格"平面。 DistanceToNearestSurface的作用是告诉材质,"静态网格"平面仅从红色区域开始与场景中的其他"静态网格"相交。

5、DistanceFieldGradient(距离场梯度)蓝图节点

距离场梯度(DistanceFieldGradient) 材质表达式节点进行规范化(normalize)后,将输出对象在距离场中的X,Y,Z移动方向。方向是从物体到材质物体的方向。 这使DistanceFieldGradient材质表达式节点非常适合于需要模拟液体流的材质。

材质节点尝试:

半透明材质渲染距离场是有问题的:

换成不透明材质效果如下:

为了看清楚效果,自发光乘以一个数值。

看另一个效果:

再看另一个效果:

看完你会发现还是规范化省事,并且这个节点是既带有方向又带有距离的。

这里是在材质中使用 DistanceFieldGradient 材质表达式的示例。 在此示例中,请务必注意,DistanceFieldGradient首先进行规范化,然后输入到"Mask Channel节点。 这样做的原因是,如果不首先对DistanceFieldGradient进行规范化,您将无法获得方向性数据。 为了方便在材质实例中进行RGB通道切换,添加了"遮罩通道"(Mask Channel)参数。

以下是作用中的DistanceFieldGradient示例。 下图显示启用各种RGB后DistanceFieldGradient将会使用的数据。

6、材质上的参数:世界场景位置偏移

允许通过材质在世界空间中操纵网格体顶点。

尝试1:

发现使用这个材质的物体在Z轴上移动了100单位。

尝试2:

尝试三:

尝试四:

变成一个点了。

尝试5:

变成一个圆了。

相关推荐
苹果园dog2 天前
Geo3D建筑材质切换+屋顶纹理
3d·webgl·材质
proibell5 天前
3dsmax中使用python创建PBR材质并挂接贴图
python·3dsmax·材质
庸俗今天不摸鱼5 天前
Three.js 入门(基础材质、贴图、纹理、环境、遮蔽光、透明度、高光贴图)
javascript·材质·贴图
tkokof17 天前
崩溃(Crash)简记
数据结构·c++·ue5·ue4·crash
Seven_Ting7 天前
七、Three.jsPBR材质与纹理贴图
材质·贴图
ue星空8 天前
UE身体发光设置覆层材质
材质
gis分享者9 天前
学习threejs,使用ShaderMaterial自定义着色器材质
材质·threejs·着色器·shadermaterial
小美元16 天前
UE地编材质世界对齐纹理旋转
材质
JZMSYYQ17 天前
电磁铁的磁芯材质
功能测试·制造·材质·材料工程
zbailing17 天前
three.js之特殊材质效果
开发语言·javascript·材质