# Texturing

## A wide variety of functions designed to aid in working with textures, such as reprojecting UVs, cropping, and many more.

Related Courses

Texturing functions provide for specialized handling of texture-based actions, such as adjusting UVs of a texture, cropping textures, and many others. The following is the list of Texturing Functions :

## CylindricalUVs

This function tiles a texture around an object using cylindrically projected UVs centered around the object's center.

Item

Description

Inputs

TextureObject (Texture Object)

The texture to be projected via Cylindrical UVs.

In (Scalar)

This takes in the height of the projection cylinder in world space units.

Normal (Vector3)

Input a vector to rotate the projection cylinder.

Outputs

Cylinder Projection

Outputs the resulting texture as if it was projected from a cylinder. There are no caps, however, so the texture will tend to pinch at the top and bottom.

Cylinder Projection w Top

Outputs the resulting texture as if it was projected from a cylinder, complete with caps.

## DetailTexturing

The DetailTexturing function simplifies the process of creating detail textures for your material. Detail texturing allows you to give the illusion of more detail in a texture by bringing in a more highly repeated diffuse and normal map combination which layers over the original diffuse and normal for an object. This gives the illusion of greater detail at close range.

Item

Description

Inputs

Scale (Scalar)

Controls the tiling of the detail normal and diffuse.

Diffuse (Vector3)

The original diffuse texture that requires more detail.

DetailDiffuse (Texture Object)

The diffuse texture for the added detail.

DiffuseIntensity (Scalar)

How much you want the detail diffuse to blend into the original diffuse.

Normal (Vector3)

The original normal which requires more detail.

DetailNormal (Texture Object)

The detail normal which will be used to add more detail to the original normal map.

NormalIntensity (Scalar)

How much the detail normal will show through over the original.

Outputs

Diffuse

The result of the original diffuse texture blended with the detail diffuse texture.

Normal

The result of the original normal texture blended with the detail normal texture.

## LocalAlignedTexture

The LocalAlignedTexture function tiles a texture on an object in local space.

Although this function has an input for a normal, at this time the input is nonfunctional.

Item

Description

Inputs

Normal (Vector3)

This takes in a normal to use as the object's surface reference. At this time, this input is nonfunctional.

TextureObject (Texture Object)

Takes in a texture to be tiled in world space.

Outputs

XY Texture

The result of the texture as tiled across the world X and Y coordinates.

XYZ Texture

The result of the texture as tiled across the world X, Y, and Z coordinates.

Z Texture

The result of the texture as tiled across the world Z coordinate.

## ZWorldSpaceFlow

The ZWorldSpaceFlow function pushes a texture along the tangent space of an object, causing that texture to look like it is "flowing" along that surface. It works by making two variations of the texture panning in the same direction, but each with a slight offset from the other. It then blends each one over the other in a repeating fashion.

Item

Description

Inputs

FlowTexture (Texture Object)

This is the texture that you want to have flowing across the surface of your object.

FlowStrength (Scalar)

Controls the amount of blend that takes place as the two panning versions of the texture blend into one another. Fine tune this to control the surface area over which blending takes place.

FlowDirection (Vector2)

The 2D vector that controls the direction the texture will flow.

UVs (Vector2)

Any existing UVs for the texture to control tiling.

FlowSpeed (Scalar)

How fast the texture will flow across the surface.

## TextureCropping

The TextureCropping function allows you to crop down a given texture to a smaller and offset location on the texture coordinate plane. This is perfect for placing a block of color on top of an emissive texture region.

This function does not actually perform a true cropping operation such as one might be used to in image editing packages such as Photoshop. Rather, it remaps the existing texture to new coordinates in UV texture space, which is a lot more like scaling than cropping. However, the function is still highly useful for generating masks and adding color to texture regions.

Item

Description

Inputs

UVs (Vector2)

The texture coordinates used on the newly cropped texture.

TextureIn (Texture Object)

The texture that is to be cropped.

UpperLeftCorner (Vector2)

The location for the new upper-left corner of the texture in 0-1 texture space.

LowerRightCorner (Vector2)

The location for the new lower-right corner of the texture in 0-1 texture space.

Outputs

Cropped

The result of the crop function. This will look a lot like a tiling operation.

This gives the result of the crop function, but while blacking out (masking) the areas outside the region defined by UpperLeftCorner and LowerRightCorner .

Crop UVs

The UV coordinates of the newly cropped region.

A white area on a black background (mask) representing the area being cropped.

## WorldAlignedNormal

WorldAlignedNormal takes in a normal map and aligns its texture to the world, rather than locally to the object. It also allows for scaling in world units, rather than as a percentage of the texture size.

Because this function tiles the texture in world space, it is important to note that any animated objects textured in this manner will experience texture "swimming," in which the texture remains in place while the object slides underneath it.

Item

Description

Inputs

TextureObject (Texture Object)

This takes in the texture that will be tiled in world space.

TextureSize (Vector3)

The size of the texture in world units, along the X, Y, and Z axes.

Normal (Vector3)

This allows you to specify a normal direction for the world's up axis, thereby rotating the coordinates that this function uses. Defaults to 0,0,1, or Z-up.

WorldPosition (Vector3)

Provides an offset for the start point of the texture in 3D world space.

Outputs

XY Texture

The result of the texture projected in world X and Y.

XYZ Texture

The result of the texture projected in world X, Y, and Z.

XYZFlatTop

The result of the texture projected in world X, Y, and Z, with an added contrast boost.

Z Texture

The result of the texture projected in world Z.

Notice the texture is still aligned to world coordinates, even though the floor is rotated.

## WorldAlignedTexture

The WorldAlignedTexture function serves as a way to tile a texture across the surface of an object in world space, independently of that object's size or rotation. This function allows you to specify the direction in which the texture will be projected, and offers scaling in world units rather than as a percentage of the texture size.

Because this function tiles the texture in world space, it is important to note that any animated objects textured in this manner will experience texture "swimming," in which the texture remains in place while the object slides underneath it.

Item

Description

Inputs

TextureObject (Texture Object)

This takes in the texture that will be tiled in world space.

TextureSize (Vector3)

The size of the texture in world units, along the X, Y, and Z axes.

WorldPosition (Vector3)

Provides an offset for the start point of the texture in 3D world space.

ExportFloat 4 (StaticBool)

Whether or not to utilize the alpha channel of the incoming texture. Defaults to false .

World Space Normal (Vector3)

This allows you to specify a normal direction for the world's up axis, thereby rotating the coordinates that this function uses. Defaults to 0,0,1, or Z-up.

ProjectionTansitionContrast (Vector3)

When projecting in X, Y, and Z, this controls the contrast of the blend where two projection planes meet one another.

Outputs

XY Texture

The result of the texture projected in world X and Y.

Z Texture

The result of the texture projected in world Z.

XYZ Texture

The result of the texture projected in world X, Y, and Z.

Notice the texture is still aligned to world coordinates, even though the floor is rotated.

## 3DSandMayaUVCoordinates

This function flips the green channel of incoming UVs to place the 0,0 coordinate in the lower-left corner (as it is in 3ds Max and Maya) instead of the upper-left. This is important for models coming in from these applications, as it prevents you from having to flip textures.

Item

Description

Inputs

• UVChannel0 - V-flipped UVs from UV channel 0.

• UVChannel0 - V-flipped UVs from UV channel 1.

• UVChannel0 - V-flipped UVs from UV channel 2.

• UVChannel0 - V-flipped UVs from UV channel 3.

## CustomRotator

The CustomRotator function allows you to rotate a texture. However, it stands apart from the basic Rotator expression node in that it exposes a center point around which the image rotates. It also changes the rotation system to be 0-1 based, so that a value of 1 is considered a complete rotation, or 360 degrees. On a standard Rotator, a complete rotation requires a Time input of approximately 25.1.

Item

Description

Inputs

UVs (Vector2)

Takes in the existing coordinates for the texture.

Rotation Center (Vector2)

Location in texture space 0-1 that serves as the center of rotation.

Rotation Angle (0-1) (Scalar)

Rotation of the image in 0-1 format, with 1 being a full rotation.

## HeightLerp

The HeightLerp function allows you perform a linear interpolation between 2 textures based on a heightmap and a transition phase value. This allows you to adjust the value along the hightmap that the lerp takes place.

Item

Description

Inputs

A (Vector3)

First texture of the lerp calculation.

B (Vector3)

Second texture of the lerp calculation.

Transition Phase (Scalar)

The value which defines the region of the heightmap where transition takes place. Leaving this at 0.5 performs a standard lerp, while adjusting the values toward 0 and 1 gives a bias toward the bottom or top of the heightmap, respectively.

Height Texture (Scalar)

The heightmap used for the lerp operation.

Contrast (Scalar)

Applies a contrast boost to the heightmap using the CheapContrast function.

Outputs

Results

The blended result of the HeightLerp function.

Alpha

The alpha value used in the lerp, with contrast boosting applied.

Lerp Alpha No Contrast

The alpha value used in the lerp, without any contrast boosting applied.

## CameraWorldBlend

Outputs falloff results for the 3 primary world vectors based on the camera angle. Can be used to blend between textures based on direction the camera is looking.

This function appears to still be in development and may not give expected results.

Item

Description

Inputs

Blend Power (Scalar)

The rate at which the textures blend from one to the other.

Use Reflection Vector (StaticBool)

If true , uses ReflectionVector instead of CameraVector (Material's Normal input will affect results). This defaults to false . However, at this time, as there is no false input data for the switch, leaving this set to false will yield no result.

Use Smoothable Normals (StaticBool)

If true , uses ReflectionVector instead of CameraVector (Material's Normal input will affect results). This defaults to false . However, at this time, as there is no false input data for the switch, leaving this set to false will yield no result.

Smooth Reflection Percentage (Scalar)

How much to smooth the normals being applied to the surface prior to blend.

Outputs

XY True

The falloff results which blend toward white as the surface aligns to the XY plane.

XZ True

The falloff results which blend toward white as the surface aligns to the XZ plane.

YZ True

The falloff results which blend toward white as the surface aligns to the YZ plane.

Notice that the green texture blends in wherever the surface aligns to the XY plane, with red everywhere else.

## LocalSpaceSurfaceMirroring

The LocalSpaceSurfaceMirroring function applies mirroring to all faces of a surface that are oriented toward a given local axis. Other areas on the surface area masked out. These masks can be offset via a scalar input, and the entire calculation can be perturbed by a normal map. This is useful when you need to produce mirroring based on a surface's topology.

Item

Description

Inputs

Use NormalMap (StaticBool)

Sets whether to calculate the direction of the surface after applying a normal map.

Normal Map (Vector 3)

Takes in a normal map that is used to perturb the object's surface prior to the local topology calculation.

In (Scalar)

This is an offset value that moves the resulting mask around.

Outputs

Local X

Outputs a masked mirror effect that only affects those surfaces facing the local X axis.

Local Y

Outputs a masked mirror effect that only affects those surfaces facing the local Y axis.

Local Z

Outputs a masked mirror effect that only affects those surfaces facing the local Z axis.

## SubUV_Function

SubUV_Function is perfect for handling animation across a sprite sheet or texture with multiple frames. The function takes in a texture object, and based on the outputs can show a blended-frame animation of the frames on that texture.

Item

Description

Inputs

Texture (Texture Object)

The incoming sprite sheet texture.

UVs (Vector2)

The UV coordinates for the texture, in case any tiling is needed.

SubImages (Vector2)

The number of frames on the texture, horizontally and vertically.

Frame (Scalar)

The current frame of the animation. This is zero-based and will blend on decimal values. For instance, a value of 2.35 would produce a 35% blend between the third and fourth frame.

## TwoSidedTexturing

The TwoSidedTexturing function provides individual texture inputs for both sides of a two-sided material. This function does nothing if the material's Two Sided property is not active.

Item

Description

Inputs

Texture Side A (Vector3)

The texture used on the positive side (outside) of the polygons.

Texture Side B (Vector3)

The texture used on the negative side (inside) of the polygons.

Use Surface Normals (StaticBool)

Tells the shader whether it should be using an incoming normal map to aid in calculating positive and negative sides of the mesh.

## WorldCoordinate3Way

The WorldCoordinate3Way function projects a texture onto the surface of an object in world coordinates. The user has control over how multiple textures blend together at the edges, and a normal map can be added to perturb the surface prior to the calculation.

Because these textures are projected along world coordinates, any motion or rotation of the given object will cause the textures to "swim" along the surface.

Item

Description

Inputs

XY Texture (Texture Object)

The texture that will be projected onto the XY plane.

YZ Texture (Texture Object)

The texture that will be projected onto the YZ plane.

XZ Texture (Texture Object)

The texture that will be projected onto the XZ plane.

XY Scale (Scalar)

Scaling applied to the texture that is being projected onto the XY plane.

YZ Scale (Scalar)

Scaling applied to the texture that is being projected onto the YZ plane.

XZ Scale (Scalar)

Scaling applied to the texture that is being projected onto the XZ plane.

Blend Exponent Y Z (Scalar)

Controls the rate of transition between the textures being projected along Y and Z.

Blend Mult Y Z (Scalar)

Multiplies the blend between the sides.

Blend Exponent X (Scalar)

Controls the rate of transition between the textures being projected along X.

Blend Mult X (Scalar)

Multiplies the blend between the sides.

Single Texture (StaticBool)

When set to true , this uses only the texture applied to the XY Texture input and projects it on all 3 sides.

Normal (Vector3)

This brings a normal map into the blend calculation, using it to determine what direction the surface is facing.

WorldPosition (Vector3)

This optional output allows you to offset the location of the projection center.

Outputs

XYZ Output

Outputs all 3 textures, projected from each plane, blending them at the edges.

XY

Outputs only the texture being projected along the XY plane.

XZ

Outputs only the texture being projected along the XZ plane.

YZ

Outputs only the texture being projected along the YZ plane.

Tags
Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.