矢量表达式

ActorPositionWS(Actor 全局空间位置)

ActorPositionWS(Actor 全局空间位置)输出 Vector3 (RGB) 数据,该数据代表使用此材质的对象在全局空间中的位置。

ActorPositionColors.png ActorPositionNetwork.png

在此示例中,您可以看到 ActorPositionWS(Actor 全局空间位置)直接输送到材质的“底色”(Base Color)。因此,此材质所应用于的每个球体在 3D 空间中移动到不同位置时将显示不同的颜色。请注意,ActorPositionWS(Actor 全局空间位置)节点的结果将除以 1600 以创建美观的混合颜色,而不是让颜色突变。

CameraPositionWS(摄像机全局空间位置)

CameraWorldPosition(摄像机全局空间位置)表达式输出三通道矢量值,该值代表摄像机在全局空间中的位置。

当摄像机旋转时,预览球体的颜色将发生变化。

CameraPositionWSExample.png CameraPositionWSNetwork.png

CameraVectorWS(摄像机全局空间矢量)

CameraVector(摄像机矢量)表达式输出一个三通道矢量值,该值代表摄像机相对于表面的方向,即从像素到摄像机的方向。

用法示例:CameraVector(摄像机矢量)经常用来模拟环境贴图,方法如下:将 CameraVector(摄像机矢量)连接到 ComponentMask(分量蒙版),并使用 CameraVector(摄像机矢量)的 X 和 Y 通道作为纹理坐标。

CameraVectorWSExample.png

Constant2Vector(常量 2 矢量)

Constant2Vector(常量 2 矢量)表达式输出双通道矢量值,即输出两个常量数值。

项目 说明

属性

R 指定表达式所输出的矢量的红色(第一个)通道的浮点值。
G 指定表达式所输出的矢量的绿色(第二个)通道的浮点值。

示例:(0.4, 0.6) 和 (1.05, -0.3)

用法示例:Constant2Vector(常量 2 矢量)对于修改纹理坐标非常有用,因为这些坐标也是双通道值。

Constant2Example.png

通过在材质编辑器的图形区域中按住 2 键并 单击鼠标左键,可快速创建 Constant2Vector(常量 2 矢量)节点。

Constant3Vector(常量 3 矢量)

Constant3Vector(常量 3 矢量)表达式输出三通道矢量值,即输出三个常量数值。您可以将 RGB 颜色看作 Constant3Vector(常量 3 矢量),其中每个通道都被赋予一种颜色(红色、绿色、蓝色)。

项目 说明

属性

R 指定表达式所输出的矢量的红色(第一个)通道的浮点值。
G 指定表达式所输出的矢量的绿色(第二个)通道的浮点值。
B 指定表达式所输出的矢量的蓝色(第三个)通道的浮点值。

示例:(0.4, 0.6, 0.0) 和 (1.05, -0.3, 0.3)

Constant3Example.png

通过在材质编辑器的图形区域中按住 3 键并 单击鼠标左键,可快速创建 Constant3Vector(常量 3 矢量)节点。

Constant4Vector(常量 4 矢量)

Constant4Vector(常量 4 矢量)表达式输出四通道矢量值,即输出四个常量数值。您可以将 RGBA 颜色看作 Constant4Vector(常量 4 矢量),其中每个通道都被赋予一种颜色(红色、绿色、蓝色、阿尔法)。

项目 说明

属性

R 指定表达式所输出的矢量的红色(第一个)通道的浮点值。
G 指定表达式所输出的矢量的绿色(第二个)通道的浮点值。
B 指定表达式所输出的矢量的蓝色(第三个)通道的浮点值。
A 指定表达式所输出的矢量的阿尔法(第四个)通道的浮点值。

示例:(0.4, 0.6, 0.0, 1.0) 和 (1.05, -0.3, 0.3, 0.5)

Constant4Example.png

通过在材质编辑器的图形区域中按住 4 键并 单击鼠标左键,可快速创建 Constant4Vector(常量 4 矢量)节点。

LightVector(光线矢量)

在虚幻引擎 4 中,建议您不要使用此表达式,因为照明计算现在延迟进行。

ObjectBounds(对象界限)

ObjectBounds(对象界限)表达式输出对象在每个轴上的大小。如果用作颜色,那么 X、Y 和 Z 轴分别对应于 R、G 和 B。

ObjectBoundsScene.png ObjectBoundsNetwork.png

在以上示例中,您可以看到对象颜色对应于对象的最长轴。

ObjectOrientation(对象方向)

ObjectOrientation(对象方向)表达式输出对象的全局空间向上矢量。即,对象的局部正向 Z 轴指向此方向。

ObjectOrientationExample.png

ObjectPositionWS(对象全局空间位置)

ObjectPositionWS(对象全局空间位置)表达式输出对象界限的全局空间中心位置。例如,在为植物创建球面照明时,此表达式很有用。

WorldPositionWSScene.png WorldPositionNetwork.png

ParticlePositionWS(粒子全局空间位置)

ParticlePositionWS(粒子全局空间位置)表达式输出 Vector3 (RGB) 数据,该数据代表每个粒子在全局空间中的位置。

ParticlePositionWS.png

在此图中,将 ParticlePositionWS(粒子全局空间位置)输送到自发光颜色,以将数据可视化。粒子系统已按比例放大,以显示颜色根据位置而变化的情况。

PixelNormalWS(像素全局空间法线)

PixelNormalWS(像素全局空间法线)表达式输出矢量数据,该数据代表像素所面对的方向(基于当前法线)。

PixelNormalWSExample.png

在此示例中,PixelNormalWS(像素全局空间法线)输送到“底色”(Base Color)。请注意,使用了法线贴图按像素产生结果。

ReflectionVectorWS(反射全局空间矢量)

ReflectionVectorWS(反射全局空间矢量)表达式类似于 CameraVectorWS(摄像机全局空间矢量) ,但是它输出三通道矢量值,该值代表反射在表面法线上的摄像机方向。

用法示例:ReflectionVector(反射矢量)通常用于环境贴图,其中,反射矢量的 X/Y 分量用作立方体贴图纹理的 UV。

ReflectionVectorWSExample.png

VertexNormalWS(顶点全局空间法线)

VertexNormalWS(顶点全局空间法线)表达式输出全局空间顶点法线。它只能在顶点着色器(例如 WorldPositionOffset(全局位置偏移))中执行的材质输入中使用。此表达式对于使网格伸缩而言非常有用。请注意,使位置沿法线偏移将导致几何体沿 UV 缝合分裂。

VertexNormalWSExample.png

在以上示例中,预览球体随正弦运动而放大和缩小,这是因为每个顶点都在它们自已的法线方向上移动。