Loading video...

Video Failed to Load

Go Home

Meshlet rendering and deferred texturing using a visibility buffer in Godot. For the sake of simplicity I only use dx12 for now.

13,821 views • 11 months ago •via X (Twitter)

20 Comments

Starkium's profile picture
Starkium11 months ago

I had a friend try writing a meshlet based renderer on mobile Vulkan for quest 2. He said he could push 10 million triangles at full frames.

Toni Macaroni's profile picture
Toni Macaroni11 months ago

Would be interesting to know the ratio between input and final culled triangles. But depending on the scene you can definitely end up with a huge efficiency boost. In the Alan Wake 2 talk they mentioned going from 200 mil to 50 mil triangles being rendered.

Magicien Bleu's profile picture
Magicien Bleu11 months ago

Your render on the forest scene or this villa are insane. I'm just totally astonished by what you do. Keep going I want to see where you can go and bring your project on godot. Look like you want to do kcd but in Italia 👌I love it . Prove that godot in 3D is a good engine bro !

Toni Macaroni's profile picture
Toni Macaroni11 months ago

Thanks! The scene shown here is just a common example scene like Sponza called "San Miguel". For the forest I have to redo how I cull certain objects that's why I didn't showcase it here. I will do so in the next posts as well as give some more info.

🐶Saul🐶🐢's profile picture
🐶Saul🐶🐢11 months ago

Also i am still in self doubt if meshlet is technically also included in this proposal along with streaming or not . Also this is listed in the priorities page btw ( i delusionaly pray we see news on this in 2026 )

Toni Macaroni's profile picture
Toni Macaroni11 months ago

They are talking about splitting the mesh into clusters and streaming/culling those, so yeah pretty much meshlets. However since they focus on backwards compatibility I doubt they would use mesh shaders for that and do it entirely via compute shaders.

🐶Saul🐶🐢's profile picture
🐶Saul🐶🐢11 months ago

That's fine i guess , though they could always do it as a fallback and meshlet for hardware the support it, althout i read someone in rocket that mimicking meshlets with compite seems to have minimal perf differences.

Toni Macaroni's profile picture
Toni Macaroni11 months ago

mimicking mesh shading in compute comes with a little overhead because you have to use the graphics pipeline at some point for drawing the meshlets. With mesh shaders you bypass the input assembler, vertex shader, etc.

🐶Saul🐶🐢's profile picture
🐶Saul🐶🐢11 months ago

At least it wont be as big as nanite overhead on meshes that are not 500k polys( HOPEFULLY )

🐶Saul🐶🐢's profile picture
🐶Saul🐶🐢11 months ago

Wow you are doing a really good job modifying the engine for your needs. It look's so sick!! Also ik you understandably won't do it but it would be great if you even opened a pr with this stuff in godot,even if it 's just a proof of concept.

Marcel's profile picture
Marcel11 months ago

I wonder about the stats. 0 drawcalls: how that? fps average 60: Are the fps somehow limited, or is this just the performance in this scene?

Toni Macaroni's profile picture
Toni Macaroni11 months ago

FPS is capped to 60, otherwise I experience some instability in the engine as well as my gpu running wild. As for the stats, since with gpu driven rendering and meshlets you can do fine-grained culling the drawn primitives shown by the engine aren't correct anymore.

Marcel's profile picture
Marcel11 months ago

Impressive work! Is this for self study or a project you ate working on?

Toni Macaroni's profile picture
Toni Macaroni11 months ago

It's for a game I'm working on. As I showed before I expect to have large amounts of alpha tested objects like foliage as well as dense rock formations. I invested in the techniques mentioned in order to achieve those requirements with reasonable performance.

Marcel's profile picture
Marcel11 months ago

Very impressive. Can't wait to see the progress 🫡

Hope 's profile picture
Hope 11 months ago

It would be cool to see this officially, you ever have plans to contribute to the repo?

Juan Manuel Costello 🇦🇷's profile picture
Juan Manuel Costello 🇦🇷11 months ago

Is this just an experiment?

Teenathayaala Vaiyanan's profile picture
Teenathayaala Vaiyanan4 months ago

@ToniMacaroniy Is there any source code for this by any chance? Would be interested in using it as learning material for me and my students

solitary's profile picture
solitary11 months ago

Why DX12 and not Vulkan?

Stanley's profile picture
Stanley8 months ago

Is this your fork of godot and do you plan on pushing this to Godot main?

Related Videos