Dot Product(点积)节点是虚幻引擎5中一个非常基础但强大的数学工具,常被用于实现光照、边缘光(菲涅尔效应)、方向遮罩等核心效果。它的核心价值在于量化两个向量之间的方向关系,生成一个范围在 -1 到 1 之间的标量值。
📝 节点基础:Dot Product 在计算什么?
我们可以把点积的结果看作两个向量“方向一致程度”的度量。其数学本质是 A·B = |A||B|cosθ,当两个向量都经过归一化(Normalize)处理后,结果就简化为 cosθ,即夹角的余弦值。
-
结果为 1:两个向量完全相同,夹角 0°。
-
结果为 0:两个向量互相垂直,夹角 90°。
-
结果为 -1:两个向量完全相反,夹角 180°。
这个简洁的特性,使其可以应用到材质、蓝图、控制绑定(Control Rig)等多种系统中。
🛠️ 关键操作步骤与配合节点
Dot Product 通常需要与其他节点组合,才能发挥出最大作用。下面是一套经典且通用的设置流程:
-
添加与连接:在节点面板搜索
Dot或Dot Product节点并添加到图表。然后将需要进行计算的两个向量(如法线、视线、光源方向)分别连接到A和B输入端。 -
归一化处理:在任何 Dot Product 计算之前,请务必使用
Normalize(归一化)节点处理输入的向量。 这能确保向量长度为 1,使其输出严格在 -1 到 1 之间,保证判断逻辑的准确性。 -
结果调整:点积的输出是带有负值的,这通常不符合我们对颜色或蒙版
0 (黑) 到 1 (白)的定义,需要进行转换。-
绝对值(
Abs):将结果范围变为0 到 1。适用于只需关注“是否垂直”的场景,比如制作前后对称的发光效果。 -
饱和/钳制(
Clamp):将结果钳制在0 到 1之间。例如,可以将菲涅尔节点中默认开启的“Clamp Fresnel Dot Product”选项设为False,以便获得负值区域的自发光效果。 -
反转(
One Minus):用1 减去点积结果,实现逻辑翻转。菲涅尔边缘光效果的形成,就源于此操作。
-
-
逻辑控制:
Step和SmoothStep节点常用来创建硬边缘遮罩或实现柔和过渡,这是实现卡通渲染风格的关键。
🧩 三个核心应用案例
案例一:打造菲涅尔边缘光 / 自发光材质
菲涅尔效应是指视线与表面夹角越大(越接近边缘),反射/发光越强的现象。这是一个Dot Product最经典的应用案例,能为科幻道具或角色增添科技感。
-
核心逻辑:视角方向 与 表面法线。
-
节点步骤:
-
右键获取
Camera Vector(相机向量)。 -
再获取
Vertex Normal(顶点法线,或Pixel Normal)。 -
用
Normalize节点归一化这两个向量。 -
将它们连接到
Dot节点上,计算点积。 -
点积结果连接
One Minus节点,实现“从边缘到中心”的翻转。 -
将
One Minus的输出连接到材质的自发光(Emissive Color) 接口。 -
想要更强的控制,可以将最终输出与一个
Multiply(乘法)节点相乘来调节强度。
-
案例二:制作方向遮罩
使用方向遮罩可以在模型上精确地混合材质,例如模拟积雪只在顶层出现的效果。
-
核心逻辑:表面法线 与 “世界向上” 向量。
-
节点步骤:
-
获取
World Position并连接到Constant中(0, 0, 1)作为世界向上向量。 -
获取
Pixel Normal(像素法线)并用Normalize归一化。 -
将二者连接到
Dot节点。 -
将点积结果连接
Smooth Step节点,制作平滑的过渡遮罩。 -
最后用
Smooth Step的输出,作为Lerp(线性插值)节点的Alpha(蒙版)输入,来混合两种基础材质。
-
案例三:在蓝图中检测角色视野
在游戏玩法中,Dot Product可以用来判断一个目标是否在角色的视野范围内。
-
核心逻辑:角色正朝向 与 目标方向。
-
节点步骤:
-
在角色蓝图的事件图表中,获取角色的
Get Actor Forward Vector(获取前向向量)。 -
获取目标的
Get Actor Location(获取位置),然后减去自身位置,再用Normalize归一化,计算出指向目标的方向。 -
将这两个向量连接到
Dot节点。 -
当点积结果大于某个阈值,就意味着敌人进入了你的视野范围。
-
计算精确角度:如需精确角度,可将点积结果连接到
ACos(反余弦)节点(单位:弧度),再通过Radians to Degrees转换成度数。
-
-
🚀 进阶技巧:直接使用材质函数
在需要更高级控制时,建议使用虚幻内置的材质函数:
-
菲涅尔(Fresnel)函数:引擎已封装的节点,效果与手动连接法线和视线向量一致,但提供了更多内置控制选项。
-
向量运算(Vector Ops)函数:提供“限制菲涅尔点积”等高级功能,可用于实现更精确的材质效果控制。
💎 总结
Dot Product是一个通过简单数值就能精确描述向量关系的节点。掌握后你会发现,许多看似复杂的高级效果,都是由它的巧妙使用构建而成。
感谢您的来访,获取更多精彩文章请收藏本站。







暂无评论内容