Meshlet for babylonjs?

This will be a fun feature to implement for babylonjs :grin:, basically its nanite from unreal engine, cooler version of dynamic LOD.

Read more: Introduction to Turing Mesh Shaders | NVIDIA Technical Blog

https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf&ved=2ahUKEwjxm8ay5PuGAxWCkIkEHRVFBfAQFnoECBUQAQ&usg=AOvVaw1t9osHg7pHvsZLp79GjKCi

Library:

Demo:

5 Likes

That would be awesome! But we probably need to wait for Mesh shader support in WebGPU :confused:

2 Likes

Hmm it seems metal already has support for mesh shaders (Mesh Shaders and Meshlet Culling in Metal 3 – Metal by Example)

what are they waiting for??
They should add this bad boy now! :rofl::joy:

3 Likes

Hard agree! There is no way we can compete with native engines if they don’t give us the same toys haha

2 Likes

This is something I’d like to experiment.
But I have doubts on its use on the web nonetheless. Nanite/Meshlets make sense when you can stream a big quantity of data every second. On the web, you’ll need to deal with way more latency and a server that can stream specific datas in a potentially large mesh data base. Or many smaller files on the server but in either case, you’ll need tools to manage that.
Anyway, meshlet can help making automatic LOD and that’s a first step to try.

3 Likes

:heart: :heart: :heart:

1 Like

Nanite and nvidia’s gltf vulkan extension both use single assets, so streaming isnt an issue as far as i know. They both pre encode the meshlet topology into the asset offline. Unreal u can do it in the editor and nvidia has a cli tool.

For vertex generation, can do it in a compute shader, but it will be slower than mesh shaders supported by hardware, around 4x slower from my previous research. Although, i thought nanite was using compute shaders for portability, so idk.

2 Likes

https://www.youtube.com/watch?v=eoxYceDfKEM&t=527s this is a quite good one on nanites…

2 Likes