Spent pretty much all day trying to optimise the rendering and get rid of the hitches when moving around the world. 😂
Ended up changing how vegetation is streamed, reusing GPU resources, reducing shader compilation and even patching parts of Three.js to cut down unnecessary allocations.
Also changed how the world is generated, with proper watersheds, rivers and more natural forests.
Still getting some frame spikes, so not quite there yet haha.
All running in the browser using WebGPU.
https://t.co/eg08CN9Jp6
The voxelization is done at runtime in a Web Worker. It uses spatial indexes to grab just the trees, grass and objects overlapping the area being processed, rather than going through the entire world.
The voxel data is used for lighting, so it's a bit different from Minecraft-style chunk meshing.
The GPU uploads are split into smaller pages with frame budgets, and stale jobs get cancelled when they're no longer needed.
I've also got separate workers handling grass generation, geometry merging and other preparation work.
Been working on this. 16km² in the browser: Three.js/WebGPU, voxel baking, cached HLOD, paged GPU uploads + stale-job cancellation.
Live day/night walk. Still sorting streaming hitches.
Try it: https://t.co/tQG6Y8D24C
Code: https://t.co/Z3qd1z2W3l
@Ilhan@grok what is ICE and what are the dangers on "Abolish ICE" Not Reform but Abolish. When was this agency established and what motives does "Rep. Ilhan Omar" have to ask to Abolish.
KCD1 -> KCD2
Decided to take a ride around Rattay at night. 😄
Actually, quite nice just riding through the empty streets with the torches lighting everything up haha.