坐标表达式

ActorPositionWS(Actor 全局空间位置)

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

ActorPositionColors.png ActorPositionNetwork.png

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

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

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

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

CameraPositionWSExample.png CameraPositionWSNetwork.png

LightmapUVs(光照贴图 UV)

LightmapUVs(光照贴图 UV)表达式以双通道矢量值形式输出光照贴图 UV 纹理坐标。如果无法获得光照贴图 UV,那么将输出双通道矢量值 (0,0)。

ObjectOrientation(对象方向)

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

ObjectOrientationExample.png

ObjectPositionWS(对象全局空间位置)

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

WorldPositionWSScene.png WorldPositionNetwork.png

ObjectRadius(对象半径)

ObjectRadius(对象半径)输出给定对象以 Unreal 单位计的半径值。系统会对比例缩放加以考虑,并且对于每个对象,结果可能是唯一的。

ObjectRadiusExample.png

在此示例中,两个网格都接收此材质,而在此材质中,ObjectRadius(对象半径)将输送到“漫射”(Diffuse)中。ObjectRadius(对象半径)输出将除以 512,以提供更有意义的视觉效果。

Panner(平移)

Panner(平移)表达式输出可用于创建平移(或移动)纹理的 UV 纹理坐标。

项目 说明

属性

速度 X(SpeedX) 指定在 U 方向上平移坐标的速度。
速度 Y(SpeedY) 指定在 V 方向上平移坐标的速度。

输入

坐标(Coordinate) 接收可以通过表达式来修改的基本 UV 纹理坐标。
时间(Time) 接收用来确定当前平移位置的值。这通常是用来提供常量平移效果的 Time(时间) 表达式,但是,也可以使用 Constant(常量)ScalarParameter(标量参数) 来设置特定偏移,或者通过 Matinee 或蓝图来控制平移。

Panner(平移)会生成根据“时间”(Time)输入而变化的 UV。“坐标”(Coordinate)输入可用于处理 Panner(平移)节点所生成的 UV(例如,使其偏移)。

PannerExample.png

ParticlePositionWS(粒子全局空间位置)

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

ParticlePositionWS.png

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

PixelNormalWS(像素全局空间法线)

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

PixelNormalWSExample.png

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

Rotator(旋转)

Rotator(旋转)表达式以双通道矢量值形式输出 UV 纹理坐标,该矢量值可用来创建旋转纹理。

项目 说明

属性

中心 X(CenterX) 指定旋转中心的 U 坐标。
中心 Y(CenterY) 指定旋转中心的 V 坐标。
速度(Speed) 指定以顺时针方向旋转坐标的速度。

输入

坐标(Coordinate) 接收可以通过表达式来修改的基本 UV 纹理坐标。
时间(Time) 接收用来确定当前旋转位置的值。这通常是用来提供常量旋转效果的 Time(时间) 表达式,但是,也可以使用 Constant(常量)ScalarParameter(标量参数) 来设置特定偏移,或者通过 Matinee 或蓝图来控制旋转。

RotatorExample.png

SceneTexelSize(场景纹素大小)

SceneTexelSize(场景纹素大小)表达式允许按纹素大小进行偏移,正如您使用 SceneColor(场景颜色)和 SceneDepth(场景深度)表达式时执行的偏移操作。这对于在多分辨率系统中检测边缘十分有用,因为不进行此计算时,您就必须使用较小的静态值,从而导致分辨率较低时结果不一致。

ScreenPosition(屏幕位置)

ScreenPosition(屏幕位置)表达式输出当前所渲染像素的屏幕空间位置。

ScreenPositionExample.png

TextureCoordinate(纹理坐标)

TextureCoordinate(纹理坐标)表达式以双通道矢量值形式输出 UV 纹理坐标,从而允许材质使用不同的 UV 通道、指定平铺以及以其他方式对网格的 UV 执行操作。

项目 说明

属性

坐标索引(Coordinate Index) 指定要使用的 UV 通道。
U 平铺(UTiling) 指定 U 方向上的平铺量。
V 平铺(VTiling) 指定 V 方向上的平铺量。
撤销镜像 U(Un Mirror U) 如果为 true,那么撤销 U 方向上的所有镜像。
撤销镜像 V(Un Mirror V) 如果为 true,那么撤销 V 方向上的所有镜像。

用法示例:要访问网格的第二个 UV 通道,请创建一个 TextureCoordinate(纹理坐标)节点,将其“坐标索引”(CoordinateIndex)设置为 1(0 表示第一个通道,1 表示第二个通道,等等),并将其连接到 TextureSample(纹理取样)节点的 UV 输入。

TextureCoordinateExample.png

VertexNormalWS(顶点全局空间法线)

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

VertexNormalWSExample.png

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

ViewSize(视图大小)

ViewSize(视图大小)表达式输出一个 2D 矢量,以给出当前视图的大小(以像素为单位)。这对于使材质根据当前屏幕分辨率产生各种变化来说非常有用。

ViewSizeNetwork.png

ViewSize1.png ViewSize2.png
预览窗口大小:740x700 预览窗口大小:740x280

在此示例中,ViewSize(视图大小)输送到“底色”(Base Color)。结果将除以 2,400,以提供更有意义的结果。

WorldPosition(全局位置)

WorldPosition(全局位置)表达式输出当前像素在全局空间中的位置。要实现可视化,只需将输出连接到“自发光”(Emissive):

WorldPositionExample.png

常见用法是确定从摄像机到像素的径向距离,而不是像 PixelDepth(像素深度)那样确定正交距离。WorldPosition(全局位置)也可用作纹理坐标,并让不相关的网格在它们彼此邻近时进行纹理坐标匹配。以下是使用 WorldPosition.xy 对纹理进行二维贴图的基本示例:

WorldPosPlanarMap.png