ActorPositionWS
ActorPositionWS outputs Vector3 (RGB) data representing the location of the object with this material on it in world-space.
In this example, ActorPositionWS is passed directly into the Base Color of the Material. As a result, each of the objects with the Material applied to them show a different color as they are moved to different locations in 3D space. Note that the result of the ActorPositionWS node is being divided by 1600 to create a nice blend-in color, rather than an abrupt pop.
CameraPositionWS
The CameraWorldPosition expression outputs a three-channel vector value representing the camera's position in world space.
In the example below, Camera Position is passed into the base color of the Material. Note how the preview sphere changes color as the camera position changes.
LightmapUVs
The LightmapUVs expression outputs the lightmap UV texture coordinates in the form of a two-channel vector value. If lightmap UVs are unavailable, it will output a two-channel vector value of (0,0).
ObjectOrientation
The ObjectOrientation expression outputs the world-space up vector of the object on which the Material is applied. In other words, the object's local positive z-axis is pointing in this direction.
ObjectPositionWS
The ObjectPositionWS expression outputs the world-space center position of the object's bounds. Each sphere in the image below displays a different color as they are moved to a different position in space. The RGB color channels correspond to the X, Y and Z axes in the level. This node is useful when creating spherical lighting for foliage.
ObjectRadius
The Object Radius outputs a value equal to the radius of a given object in Unreal units. Scaling is taken into account and the results can be unique for each individual object.
In this example, both meshes are receiving this material in which the ObjectRadius is fed into Diffuse. The ObjectRadius output is being divided by 512 to provide a more meaningful visual result.
Panner
The Panner expression outputs UV texture coordinates that can be used to create panning, or moving, textures.
Item | Description |
---|---|
Properties | |
SpeedX | Specifies the speed to pan the coordinates in the U direction. |
SpeedY | Specifies the speed to pan the coordinates in the V direction. |
Inputs | |
Coordinate | Takes in base UV texture coordinates the expression can then modify. |
Time | Takes in a value used to determine the current panning position. This is usually a Time expression to provide a constant panning effect, but a Constant or Scalar Parameter can be used as well to set a specific offset or to control the panning through Matinee or Blueprints. |
Panner generates UVs that change according to the Time input. The Coordinate input can be used to manipulate (e.g. offset) the UVs generated by the Panner node.
ParticlePositionWS
The ParticlePositionWS expression outputs Vector3 (RGB) data representing each individual particle's position in world space.
In this image, ParticlePositionWS is being fed into emissive color to visualize the data. The particle system has been scaled up to show how the color is changing based on position.
PixelNormalWS
The PixelNormalWS expression outputs vector data representing the direction that pixels are facing based on the current normal.
In this example, PixelNormalWS is fed into Base Color. Notice how the normal map is used to give the per-pixel result.
Rotator
The Rotator expression outputs UV texture coordinates in the form of a two-channel vector value that can be used to create rotating textures.
Item | Description |
---|---|
Properties | |
CenterX | Specifies the U coordinate to use as the center of the rotation. |
CenterY | Specifies the V coordinate to use as the center of the rotation. |
Speed | Specifies the speed to rotate the coordinates clockwise. |
Inputs | |
Coordinate | Takes in base UV texture coordinates the expression can then modify. |
Time | Takes in a value used to determine the current rotation position. This is usually a Time expression to provide a constant rotation effect, but a Constant or Scalar Parameter can be used as well to set a specific offset or to control the rotation through Matinee or Blueprints. |
SceneTexelSize
The SceneTexelSize expression allows you to offset by texel sizes, as you would when using the SceneColor and SceneDepth expressions. This is useful for edge detection in multi-resolution systems, as without this calculation you would be forced to use a small static value, resulting in inconsistent results at lower resolutions.
ScreenPosition
The ScreenPosition expression outputs the screen-space position of the pixel currently being rendered.
TextureCoordinate
The TextureCoordinate expression outputs UV texture coordinates in the form of a two-channel vector value allowing materials to use different UV channels, specify tiling, and otherwise operate on the UVs of a mesh.
Item | Description |
---|---|
Properties | |
Coordinate Index | Specifies the UV channel to use. |
UTiling | Specifies the amount of tiling in the U direction. |
VTiling | Specifies the amount of tiling in the V direction. |
Un Mirror U | If true, undo any mirroring in the U direction. |
Un Mirror V | If true, undo any mirroring in the V direction. |
Example Usage: To access the second UV channel of a mesh, create a TextureCoordinate node, set its CoordinateIndex to 1 (0 - first channel, 1 - second channel, etc), and connect it to the UVs input of a TextureSample node.
VertexNormalWS
The VertexNormalWS expression outputs the world-space vertex normal. It can only be used in material inputs that are executed in the vertex shader, like WorldPositionOffset. This is useful for making a mesh grow or shrink. Note that offsetting position along the normal will cause the geometry to split apart along UV seams.
In the example above, the preview sphere would seem to scale up and down with sinusoidal motion, as each of the vertices moved in their own normal directions.
VertexTangentWS
The VertexTangentWS expression outputs the world-space vertex tangents. Like VertexNormalWS, this is useful for manipulating the vertex positions of a mesh to produce subtle ambient animation through the World Position Offset input.
In the above example, each vertex on the sphere moves in a sinusoidal motion along the vertex tangent in world space. This gives an impression that the sphere is twisting to the left and right. On the plane, it causes the plane to wobble left and right along the vertex tangents.
ViewSize
The ViewSize expression outputs a 2D vector giving the size of the current view in pixels. This is useful for causing various changes in your materials based on the current resolution of the screen.
In this example, ViewSize is connected to Base Color and the result is divided by 2,400 to make the result more visible. When the size of the preview window increases or decreases, the color of the sphere changes.
WorldPosition
The WorldPosition expression outputs the position of the current pixel in world space. To visualize, simply plug the output into Emissive:
Common uses are to find the radial distance from the camera to a pixel (as opposed to the orthogonal distance from PixelDepth). WorldPosition is also useful to use as a texture coordinate and have unrelated meshes using the texture coord match up when they are near each other. Here is a basic example of using WorldPosition.xy to planar map a texture: