David Walter (Shiny Gen)'s banner
David Walter (Shiny Gen)'s profile picture

David Walter (Shiny Gen)

@davidpwalter • 1,449 subscribers

Building https://t.co/CGEhfW8R1J make GBC, GBA, N64, DS, Gamecube, Godot games with AI. On iOS, Android, Web. prev @MITEECS, Lightmatter, Amazon, Autodesk.

Shorts

Now on Godot WebGPU we have unreal-nanite-style (GPU Driven) rendering like the ThreeJS demo. 🚀 This isn't a shader. This is an actual deep modification to the Godot engine. And the Godot engine native is now ~2x faster for 3D as well (depends on your game). I can push this to almost 300x300 (from 100x100 in the video) and 55fps before it starts having more instances than 16bit integers and the buffer overflows. I can increase it to higher bits but who's gonna have >65k instances? Threejs demo crashed the webpage when I pushed it to above 175x175. This is literally Godot 5. I'm not sure if they'll ever accept these changes any time soon or if I'll keep it as a fork, but over the next few weeks/ months I'll get it production ready either way. Still need to round out the rest of the features, but honestly I could stop here as opaque draw batching on the GPU is the 80/20 of GPU driven rendering. The rest is smaller gains and only matters for ginormous worlds or super high fidelity. Unfortunately the WebGPU spec doesn't support multi-draw-indirect calls which is somewhat the bread and butter of GPU Driven Rendering but this demo only has 2 unique instances so MDI doesn't matter. With 1000s of actual unique instance MDI matters, and that's 100% supported on this Godot fork for native (I'll post a demo later) but not on WebGPU until the WebGPU people implement it. I might have to contribute to WebGPU then too.. I've spent way too much time on this. I want to get transparency and meshlets working too but I need to get back to Shiny Gen development so I can eat. Then I'll get back to Godot development in a couple weeks. (chart is the optimizations over time on a separate rotating cube scene, showing native increasing 2x and webgpu by 1.14x)

Now on Godot WebGPU we have unreal-nanite-style (GPU Driven) rendering like the ThreeJS demo. 🚀 This isn't a shader. This is an actual deep modification to the Godot engine. And the Godot engine native is now ~2x faster for 3D as well (depends on your game). I can push this to almost 300x300 (from 100x100 in the video) and 55fps before it starts having more instances than 16bit integers and the buffer overflows. I can increase it to higher bits but who's gonna have >65k instances? Threejs demo crashed the webpage when I pushed it to above 175x175. This is literally Godot 5. I'm not sure if they'll ever accept these changes any time soon or if I'll keep it as a fork, but over the next few weeks/ months I'll get it production ready either way. Still need to round out the rest of the features, but honestly I could stop here as opaque draw batching on the GPU is the 80/20 of GPU driven rendering. The rest is smaller gains and only matters for ginormous worlds or super high fidelity. Unfortunately the WebGPU spec doesn't support multi-draw-indirect calls which is somewhat the bread and butter of GPU Driven Rendering but this demo only has 2 unique instances so MDI doesn't matter. With 1000s of actual unique instance MDI matters, and that's 100% supported on this Godot fork for native (I'll post a demo later) but not on WebGPU until the WebGPU people implement it. I might have to contribute to WebGPU then too.. I've spent way too much time on this. I want to get transparency and meshlets working too but I need to get back to Shiny Gen development so I can eat. Then I'll get back to Godot development in a couple weeks. (chart is the optimizations over time on a separate rotating cube scene, showing native increasing 2x and webgpu by 1.14x)

27,981 次观看

Videos

没有更多内容可加载