Why does Unreal Material System not provide 'absolute vertex world position' ?

The existed absolute world position is about pixel , but not the original vertex info .

The Material System operates on a per-pixel basis, not a per-vertex basis. The Material System calculates the color and properties of each pixel based on the inputs to the material and the location of that pixel in the world.

If you need to work with the original vertex positions in a material, you can use the “Vertex Color” node to pass vertex colors to the material, and use those colors as a way to encode the original vertex positions. You can then decode the vertex positions in the material using math nodes. However, this approach can be less efficient than working directly with pixel positions in the Material System.

Also, you can expose these things, but you will need to modify the graphics pipeline to do so. It’s probably something you don’t want to do unless you have a background in graphics programming.

1 Like

You do not need to do this.

The Absolute World Position node returns either the pixel or vertex position depending on where it is plugged into. It will return the vertex position when it is part of a network that is plugged into the World Position Offset output, or Displacement in UE4.

If you need to pass the vertex position to the pixel shader you can to do that via the vertex interpolator:

In volumetric materials, Absolute World Position returns the position of the current raymarch step.

3 Likes