# WorldPositionOffset

## Functions for handling vertex manipulation using world position offset.

Related Courses

The WorldPositionOffset category contains special functions for applying manipulating vertices of a mesh via world position offset. These functions can be chained together for additive effects.

## WorldPositionOffset Functions

The following is a list of all the functions underneath the WorldPositionOffset category.

### SimpleGrassWind

The SimpleGrassWind function applies a basic wind operator to foliage, giving the ability to specify a weight map and wind strength. This is a non-directional wind that just gives a very general movement to foliage. This should be the last WPO node you add.

Item

Description

Inputs

WindIntensity (Scalar)

Controls how much the wind affects the mesh.

WindWeight (Scalar)

This is a grayscale map that controls how much the mesh's vertices will respond to the wind.

WindSpeed (Scalar)

This controls the speed of the wind.

AdditionalWPO (Vector3)

Takes in any additional world position offset networks or functions.

### SplineThicken

The SplineThicken function serves as a way to make very thin polygons look thicker at render time. This is perfect for cables, hair, grass, and other such objects.

Objects using this function should be extremely thin and should be imported with "Remove Degenerate Triangles" disabled.

Item

Description

Inputs

WidthBase (Scalar)

This sets the width of a single polygon object at its base.

WidthTip (Scalar)

Sets the width of a polygon object at its tip.

WorldPosition (Vector3)

World Position takes in any existing world position offset functions and adds this function to them.

UVs for Projection (Vector2)

This is the texture coordinate to use in the expansion of the spline.

UVs for Thickness (Vector2)

This is the texture coordinate to use for the Thickness mapper if projecting from U, it will the Y component of the specified UV index for the thickness blending.

UVs for texturing (Vector2)

This is the UV channel for texturing. This must be the same UV channel you want to have the 3D-parallax correction.

Expand U or V UV Channel (StaticBool)

Sets whether to expand the mesh in U or V. Defaults to true, which is U.

DriveNormalZ (Boolean)

This will use DeriveNormalZ to make a perfectly round normal map.

AngleCorrectedNormal (Boolean)

Uses DerivedNormalZ to make perfectly round normal map. Requires a center tesselation vertex otherwise the value of Z will be 0 for the entire face, causing harsh lighting.

AdditionalNormal (Vector3)

This will add a texture normal to the normalmap transform.

FlattenPixelNormal (Boolean)

UVs For NormalShading (Vector2)

Outputs

Normal

The outgoing normal of the adjusted geometry.

WorldPositionOffset

This is the output that you can add to other world position offset calculations.

UVs with Parallax

### CameraOffset

The CameraOffset function is great to assist with depth sorting, as it allows you to move an object in camera space, either toward or away from the camera.

Item

Description

Inputs

OffsetAmount (Scalar)

Enter a negative or positive number to offset your model in the direction of the camera. Note that positive values will bring the model closer to the camera and cause rendering errors if the mesh greatly exceeds the models bounding box.

Clamp Padding (Scalar)

The amount of padding to prevent the clamped version of the offset value from clipping into the camera.

WorldPosition (Vector3)

Enter the model's vertex world position. The Default Value = World Position.

Outputs

Clamped Camera Offset

The Camera offset is clamped to avoid early camera intersections. Adjust the padding to change the amount of space reserved to avoid camera intersection.

Camera Offset

Either add this value to other World Position offset code or enter it directly into the world position offset master material to offset your mesh.

### ObjectPivotPoint

The ObjectPivotPoint function returns the object's pivot point in world space. This is not compatible with the pixel shader.

Item

Description

Outputs

Object Pivot Location

Returns the object's pivot point in world space. This only works with the vertex shader and is incompatible with the pixel shader.

### ObjectScale

The ObjectScale function returns the object's XYZ scale together and seperately. This is not compatible with the pixel shader.

Item

Description

Outputs

Scale XYZ

Returns a float3 value that is equal to the objects XYZ scale. This is not compatible with the pixel shader.

Scale X

Returns a scalar value that is equal to the object's X-scale. This is not compatible with the pixel shader.

Scale Y

Returns a scalar value that is equal to the object's Y-scale. This is not compatible with the pixel shader.

Scale Z

Returns a scalar value that is equal to the object's Z-scale. This is not compatible with the pixel shader.

### PivotAxis

The PivotAxis function creates a common pivot location on arbitrary axes. This is helpful for creating flag motion. Instead of using a single pivot point near the top of the flag, use a shared Z point and unique X and Y location data to create a more realistic connection along the object's width.

This shader node only supports uniform scaling. Also, the rotate about axis axis and the pivot axis/pos should not coincide.

Item

Description

Inputs

Pivot Axis/Pos (Vector3)

Enter a number to use as both your local axis line axis and position. If you would like to lock off your model, enter on its local z axis near its pivot enter (0,0,1). If you would like to lock of the top of the model, enter your model's height in as (0,0,model height).

Outputs

Pivot

This can be used as the pivot point in the rotate about axis node.

### RotateAboutWorldAxis_cheap

The RotateAboutWorldAxis_cheap function cheaply rotates objects around world axes. Input the angle you would like to use and attach the output to world position offset.

Item

Description

Inputs

Rotation Amount (Scalar)

A value of one is equal to one full rotation.

PivotPoint (Vector3)

World space location of pivot point to rotate around. The default value is the model's pivot point.

WorldPosition (Vector3)

World space location of individual vertices. The WorldPosition node is typically used.

Outputs

X-Axis

Cheaply rotates the object around the world X-axis.

Y-Axis

Cheaply rotates the object around the world Y-axis.

Z-Axis

Cheaply rotates the object around the world Z-axis.

### StaticMeshMorphTargets

The StaticMeshMorphTargets function unpacks morph target data that was added into a via 3ds Max's Morph Packer MAXScript.

Item

Description

Outputs

Morph Target 1 Normals

The surface normals that are associated with Morph Target 1.

Morph Target 1 WPO

World position offset for Morph Target 1.

Morph Target 2 WPO

World position offset for Morph Target 2.

### Wind

The Wind function provides separate outputs for wind strength, speed multiplied by time and a normalized wind vector.

Item

Description

Inputs

WindActor (Vector4)

This will take in a Wind actor (in development). At this time you may use a Vector4 to designate direction and strength of the wind.

Outputs

Normalized Wind Vector

The wind vector, normalized to 0-1 space.

WindStrength

Returns wind strength. The magnitude of the wind vector found by calculating distance from the wind vector to 0.

WindSpeed

Wind speed multiplied by time.

WindActor

Standard WindActor node.

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

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.