坐标表达式

对纹理坐标、可用作纹理坐标的输出值或者用来修改纹理坐标的输出值执行操作的表达式。

Windows
MacOS
Linux

ActorPositionWS

ActorPositionWS 输出矢量3(RGB)数据,该数据表示对象在世界场景空间中的位置以及其上的材质。

ActorPositionColors.png ActorPositionNetwork.png

在此示例中,您可以看到ActorPositionWS被直接输入到材质的底色(Base Color)中。因此,当每个球体被移至三维空间中的不同位置时,每个球体以及应用于它们的材质将显示不同的颜色。请注意,ActorPositionWS节点的结果将除以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

粒子位置WS

粒子位置WS(ParticlePositionWS) 表达式输出代表世界场景空间中每个单独粒子位置的Vector3(RGB)数据。

ParticlePositionWS.png

在这幅图像中,粒子位置WS(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

标签

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见