Nanite displacement issue (Part 2)

Hi, Unreals!

I’m not a Technical Artist and a 100% there is a better solution.

This post is a continuation of the previous topic

I’ve decided to move back to the question of displacing modular assets and found some simple solution based on RecourseDesign method. But this time the shader is based on object sides.


Mesh is slightly beveled on each side and have one smoothing group.

Maybe someone will find this helpfull in some cases.

If you’ll find or alreaby know better solution, please help and share it :heart:

A better solution is to never have any engine do things that should be done to an asset in a DCC.

What reason is there ever for a wall not to always be whatever the mesh says it should be?
None.

Take your displacement and idea into a DCC, produce a mesh with the proper insane amount of tris.
Fix and adjust the problems at the sides or wherever else (can’t assume you only have issues on one side).
Make sure your UVs and Lightmaps make sense.
Reduce the mesh geometry to make it decently perfomant.

I guarantee that between Nanite simplifing it for you (obviously causing holes by itself), and the fact its a mesh with tris instead of some shader computation - the load on the GFX is going to be much less.
On top of ovviously not suffering from any geometry issues at all.

how much detail should you add?
Now that would be the better question here.

Individually placed bricks as a part of an HISM would majorly outperform and out-do anything in terms of final look.
Afterall, they are real bricks.

If your game is you climbing a wall, then this is probably ideal.

If the wall is only seen for 5seconds and 30ft off camera in the background - then why waste time?

For the complex wall, here is a baseline idea:

Make a BP with HISM.
Add 100x100 stacked blocks with a spacing of .1 uu between them.
Then put a plane through the bricks to simulate the mortar.
Get an idea of load cost using simple cube/or 6 sided flat blocks (tris is 6*2 =12).
Based on that (its not going to be great, probably) decide if you have enough budget to add more geometry to each brick.

Try a shader on the bricks with a normal map to see what happens visually (normals probably offer a near 0 cost 100% visual improvement here).
If the cost is acceptable when staring at the wall, remeber to also test it in a complex scene.
It will need to be LOD/instance replaced at a distance, I’m sure…

You don’t need to be a VFX artist to make the single brick version. You can probably even merge acotrs in engine to get the impostor going. The visual result will always be better than displacement, tessellation, and whatever other stuff you may thing of that essentially does the same thing, only badly.
And it would acrually work fine with lightmaps/baked lights. Probably way better than any alternative given you have physical geometry to cast shadows from.

Regarding doing things you shouldnt and displacement:
If you inset your mesh, and only apply displacement to the inset (non edge) vertex of the UV, you can achieve gap-less extrudes that support however much detail you want to provide the base mesh with.
Arguably, something like the wall above should probably offer a minimum of 3k tris inside each flat plane to render decently…