Question about Nanite Tessellation being core to asset creation workflow

Hello,

We’re a project looking to start production soon from Unreal 5.6, currently in pre-production using 5.5.

We would like to know if it’s feasible to use Nanite Tessellation as a core part of our asset creation workflow (official documentation still mentions it as experimental in 5.6). Specifically, to let it model detail from tile-able textures (ie. bricks, stones, tiles of all sorts) at runtime. It would also allow for quick iteration and flexibility, creating variation from basic kits through textures or Mesh Painting.

The official documentation mentions the Magnitude of displacement as a key parameter affecting performance, with larger values to be avoided. It seems reasonable that detail like described above can be done with fairly low values (as well as proper Start and End Fade Size(s)), but is there an approximate upper bound that we should not go past? Are there other things we need to consider with the above workflow, beyond what the documentation already mentions?

We are using Magnitude displacement values of 4.0 (the default) in general with Quixel scan textures, which gives us great results on castle stonework for example. But for certain assets, we may need to go above (ie. Magnitude = 10.0). Short of GPU profiling, do you recommend an interval we should stick to?

Also, what is the intended use of Nanite Tessellation? Is it meant for displacement that adds micro-detail (ie. brick lines), or can it handle displacing larger detail as well?

Looking forward to your insight.

Thanks,

Razvan

Steps to Reproduce

Hey there! As with all experimental features, we can’t guarantee everything will be perfectly stable all the time. That said, I’m aware of some studios who are already using it in production for very similar purposes.

You’re precisely right about the value of Nanite tessellation. As far as magnitudes, my recommendation with magnitude is that it should never be so high as to affect anything on the game thread. For example, I wouldn’t recommend using displacement to form a crater in the landscape because you’d also want the landscape’s collision to update accordingly. Similarly, if it’s big enough that you’d need a character’s foot IK to deform around it then the magnitude is likely too high.

(One note to watch out for with landscapes is that the default Z scale of a landscape is 100, which means a displacement magnitude of 4 is now 400 units!)

What we’ve learned is that proper fade distances are critical to achieving your performance goals with displacement. I would consider them mandatory, and their values should be set rather aggressively.

There’s still a lot of unexplored territory here, so profiling is still going to be important.

Just remember that your cluster bounds are being inflated by magnitude, which leads to less efficient cluster culling and more overdraw.

Hope that helps, let me know if you’ve got any more questions!

Hi! That gives us a pretty clear picture for the moment, I’d think. Thanks so much for the thorough answer ^^