数学运算大厅内容示例
概述
内容实例 项目中的 Math_Hall (数学运算大厅)地图旨在让您更加了解如何在虚幻引擎4的 蓝图 和 材质 中使用数学运算。
第一个部分的标题为 函数 ,它涵盖了数学运算和材质函数(墙体左侧),以及示例使用的实例(墙体右侧)。 这个部分对于更多地了解混合材质以及如何应用逻辑到材质以创建更多类似于涟漪的水面或完全位于 材质编辑器 内的反弹球的事件是非常有效的。
第二个部分涵盖了 矢量学 并描述了矢量的不同类型以及如何将它们在材质中使用及其与蓝图相关的重要性(例如,创建面向玩家的物体,检查玩家是否正在向某物观看,或者了解玩家与物体间的距离)。
函数
下方为在 函数 部分提供的示例,示例所使用的实例可以沿着墙体的右侧查找。
示例 |
展示的内容 |
---|---|
1.1 介绍 |
描述如何阅读此部分中的每个表格,在其中每个表格对不同的数学运算函数规划了X的值。 |
1.2 ABS |
获取X的 Absolute (ABS) (绝对值),在此处负值被作为正值来读取(例如,通过采用时间的正弦值并获取绝对值,我们对球体创建了弹起的运动)。 |
1.3 Frac |
使用 Frac 函数来移除任意数字的整数部分,这对于伪随机数字的生成很有用(例如,原始时间的值从1开始向上计算,Frac函数被用来表达从0到1的时间,从而增加原始时间的值)。 |
1.4 Floor |
Floor 函数从任意数字中移除小数部分,只保留整数(例如,0.9经过函数处理后变为0,或者1.9变为1,等等。)。 |
1.5 Ceil |
Ceil 函数和floor函数类似,但向上取整而不是向下取整。 ceil函数的运算结果总是比floor函数的运算结果要大1(例如,0.1变为1,1.1变为2,等等。还提供了创建马赛克的示例)。 |
1.6 FMod |
FMod 表示浮点模块并且同时具有A和B输入。 这个函数会把A除以B并返回余数值(举例来说,我们提供了生成材质上的条纹模板示例)。 |
1.7 Power |
Power (幂)函数采用基础输入并应用指数。 运算后,如同 ABS (绝对值)函数,负值会成为正值,并且1的幂会得出和绝对值运算相同的结果(例如,我们给出了一个可用于调整贴图的对比度的示例)。 |
1.8 Lerp |
线性插值或 Lerp 函数会返回一个基于alpha输入的A与B输入间的混合值。 在给定的示例中,当alpha值为0时,将返回A的100%的值。 当alpha值为1时,将返回B的100%的值(例如,给出在两种贴图间使用Lerp来进行混合的示例)。 |
1.9 HeightLerp |
HeightLerp 是使用高度贴图来控制混合的 Lerp (线性插值)函数(例如,给出使用贴图的高度图在两种贴图间进行混合,同时在该位置处将草的贴图混合到鹅卵石贴图的示例)。 |
1.10 Clamp |
Clamp (限定)函数被用于将输入值限定于指定的最小值和最大值范围内(例如,使用限定函数来指定监控相机的最小/最大视角)。 |
1.11 Sine |
Sine (正弦)函数是角度函数,并且代表了直角三角形中直角边与斜边的比例(例如,正弦函数具有多种用途且可以创建蓝图或材质内的摇摆运动;它还可以用于创建水中的"波浪")。 |
1.12 Cosine |
Cosine (余弦)函数是类似于 Sine (正弦)函数的另一种三角函数。 它代表了直角三角形中直角边与斜边长度的比例。 余弦函数是角侧的边和直角三角形斜边的比值(例如,当我们创建所提供示例中的波浪时,正弦和余弦函数是非常类似的)。 |
1.13 OneMinus |
OneMinus 可以用于获得贴图或图像的相反值(例如,一个示例是黑白商标反转为白黑商标)。 |
1.14 Exponential Density |
Exponential Density (指数密度)创建了在两端具有平滑曲线的梯度(举例来说,最常用于创建雾中的密度,但可以有其他方面的应用)。 |
1.15 Sphere Mask |
Sphere Mask (球体蒙板)具有A和B输入,以及半径和硬度输入并获取在A与B间的距离(例如,在执行贴图间混合的硬度处显示的示例)。 |
1.16 Sphere Gradient - 2D |
Sphere Gradient - 2D (球体梯度 - 二维)是材质函数,它会返回球体形状的衰减并采用V2输入坐标,中心位置以及标量半径值(例如,显示具有斜面形状的材质是如何构建的示例)。 |
基础向量运算
下方列出的为 Basic Vector Math (基础向量运算)部分中提供的示例。
示例 |
展示的内容 |
---|---|
2.1 Introduction to Vector Math (向量运算介绍) |
|
2.2 What is a vector (什么是向量) |
解释了 向量 是什么,以及向量的类型。 |
2.3 1D Vectors (一维向量) |
使用路线图模拟的基础 一维向量 。 |
2.4 2D Vectors (二维向量) |
使用二维图表的 二维向量 解释。 |
2.5 Distance (距离) |
如何使用勾股定理来计算 距离 (请注意: 距离是自动在材质和蓝图中计算的)。 |
2.6 Distance in practice (实际的距离) |
|
2.7 3D Vectors (三维向量) |
使用三维网格的 三维向量 的可视化演示。 |
2.8 Normalized Vectors (标准化处理的向量) |
|
2.9 Vector as rotation (将向量作为旋转值) |
转换向量为旋转值(例如,向显示的玩家位置旋转的角色)。 |
2.10 WorldPosition (世界位置) |
世界位置 以及如何使用数据(例如,随着对象在编辑器中的拖曳,其在世界中的位置也在更新)。 |
2.11 World Aligned Texture (世界对齐贴图) |
使用 世界对齐贴图 在球体周围混合贴图(举例来说,这对于创建看起来更为自然的岩石材质很有用)。 |
2.12 CameraVector (相机向量) |
CameraVector (相机向量)和展示向量路径的图表一起显示。 |
2.13 Camera Forward Vector (相机的前向向量) |
CameraForwardVector (相机的前向向量)和展示向前的向量路径的图表一起显示。 |
2.14 Dot Product (点积) |
给出 点积 的解释,它可用于检查玩家是否正在向特定点查看。 |
2.15 Deriving Dot Product Algebraically (用代数方法来继承点积) |
如何对点积进行继承(请注意: 在虚幻引擎4中,点积几乎总是使用节点来解析)。 |
2.16 Dot Product Example (点积示例) |
CameraVector (相机向量)和 Dot Product (点积),在该处材质在基于玩家与物体间距离的颜色间进行混合并追溯玩家的移动(请注意: 这个操作完全在材质中进行,无需蓝图)。 |
2.17 Dot Product Example 2 (点积示例2) |
使用 CameraForwardVector (相机的前向向量)和 Dot Product (点积)来确定玩家是否正在查看物体(请注意:这个操作完全在材质中进行,无需蓝图)。 |
2.18 Cross Product (叉积) |
使用具有图表的 叉积 来展示如何通过读取向量值来继承叉积。 |
2.19 CreateThirdOrthogonalVector (创建第三正交向量) |
CreateThirdOrthogonalVector (创建第三正交向量)材质函数以及对于创建显示的完整正交(垂直)向量是如何有效的。 |
2.20 Camera Facing math (相机朝向运算) |
显示 CameraPosition - ObjectPosition (相机位置-物体位置)来创建物体旋转以面向玩家的效果(例如,在此示例中,当我们站在多个物体前,直接位于玩家面前的物体不会旋转,而在玩家左侧或右侧的物体会向内旋转)。 |
2.21 Camera Facing math 2 (相机朝向运算2) |
我们使用 Camera Left Vector (相机的向左向量)以及 Camera Up Vector (相机的向上向量)来创建旋转以面向玩家的物体效果(例如,在此例中,与2.20不同,外侧的物体在其共同旋转时不会向内旋转)。 |
2.22 Trig tips (三角函数提示) |
正弦,余弦以及正切与解析直角三角形有关,在知道任意两侧的位置后能算出X的角度(例如,Our House是A House Of Animals的助记符,把每个大写字母作为三角形的一个侧边来解释)(O=Opposite(对边),H=Hypotenuse(斜边),A=Adjacent(邻边)。) |