WPO impact performance

Hello,

I’m wondering about the impact of the performance of materials in “World Position Offset”.

Concretely, if I have a very large building to do with very large walls, is it a good practice to have one cube per wall that has a WPO material? Or is it better to place several wall meshes end to end with non-WPO materials?

Thank you for your clarifications

What do you mean by using a WPO material on a cube to make a wall? Are you planning to scale the cubes in the material? How would that even work? Why not just scale the cube actor itself?

1 Like

In fact it is precisely the actor cube that I scale. The associated material is in WPO which allows to stretch the texture by modifying the scale of the cube

WPO is a very expensive material calculation, as it is asking the engine to dynamically distort geometry according to a material parameter. If you need to use it for a scene, then I would merge and minimize the number of instances using it, only have it enabled on the parts you absolutely need, and keep the parts in question as geometrically simple as possible. These rules are slightly different for Nanite, but given that Nanite with WPO is largely experimental, I’d stay away from using them if you’re shipping anytime soon.

1 Like

Thank you very much for this clarification. This is exactly what I was wondering about. I really have a lot of instances that use WPO materials in my scene. So I will replace these instances with several Nanite meshes that will not use WPO materials.

Thank you very much for the clarification.

2 Likes

Wpo doesnt have to be expensive.
Just place it in a UV and you are usually ok.

If you atart messing with mesh verticis, that’s a different story.

Howver, vonsider that between animating 100 hismc instances of cubes moving up and down, and animating the material of 1 cube that goes up and down via material - then instancing that cube - the difference is night and day.

It all depends on what you are trying to achieve.

If you are limiting things to adjusting the UV of a wall so it looks good and contigous between different meshes, then WPO is the way to go.

Ofc, if you find that to be to expensive (based on testing on a specific device, maybe mobile) and the result you want is to use the scale exactly as you describe, you can always divide the UV’s X and Y by the scale of the object’s X and Y and achieve the same/or similar end result…

1 Like

Thank you very much for the clarification.
I don’t want to animate my cube. I just want to avoid having to place several wall meshes for each wall. With one cube per wall scaled to which I associate a WPO material, I don’t have to place many mesh instances. If I have for example 4 walls. I have 4 scaled cubes. Much more practical.

But thanks to you I know that I don’t need to replace each cube by several meshes without WPO since the WPO is placed in the UV.

However I don’t know what hismc is.

Thank you.