UE5: the new NANITE technology

Hi all,

i open this thread to speak about NANITE, showed in the new unreal engine 5

someone understood how NANITE technology working?

is somethings like proxy? how it’s works?

Idk I left a reply asking if nanite can be use on a playable character as well, yet to get an answer but this is still impressive.

Perhaps some kind of acceleration structure like an Octree or Bounding Volume Hierarchy (BVH) they could repurpose from the Raytracing pipeline.
Maybe for each bounding volume the screen size is estimated and if it is below a threshold a pre-calculated proxy of that bounding volume is rendered, if it is above a threshold the bvh node gets expanded and sub elements get evaluated / rendered.

Still, streaming all this data from permanent storage is challenging and would have to be extremely optimized. Maybe thats why it is introduced now because the new consoles ship with SSDs.

I wonder how it performs with models that have a lot of silhouette like grass and leaves tough. That might still be a limitation but possibly they even fixed that by some kind of transparency masking magic in their virtual texturing setup to accurately LOD those.

How they do pixel accurate shadowing with multiple GI bounces and no noticeable noise is beyond me. One could use cached Irradiance probes only evaluated x amount of frames for the GI but how do you shade all these polygons accurately in realtime? Just impressive.

Best working theory I’ve read is Geometry textures (paper1, paper2). Low poly proxy with geometry surface patches to fill in the detail.

For Lumen I think the GI is accumulated over a few frames (I’m not 100% sure but I saw some latency between gi changes in the video) which in combination of other techniques would lower the cost enough to what we saw.

Super cool development, can’t wait to learn more.

The GI is accumulated over a few frames, cool, but do you have any guess as to what the base method is for bouncing the GI to begin with?

I got this from another forum

I think they are using Nvidia’s Mesh Shaders. Instead of me explaining it like a caveman, I will link the article.

https://developer.nvidia.com/blog/in…-mesh-shaders/

And Nvidia’s demo:
https://developer.nvidia.com/blog/us…steroids-demo/