Open oli-obk opened 1 year ago
- Ask Bevy glb loader to build in a "slow mode": postpone further node loading to the next frame if the FPS is below parameter.
The glb loader could also be changed to do the splitting of scenes. I'll investigate if this can be done without having to edit the bevy crate. If not, we'll fork it and work on a fork for now so we can iterate and test quicker
Small scenes: less lag but more draw calls = less FPS
An escape could be LoD: Near tiles are small and detailed, far giles are 4/16 times in arrea with less details. Very far only 2D bitmaps. (also having terrain in mind)
The Linux application sometimes is so busy loading tiles, not only the control is disabled, also the application menu including closing the app. And other task on the notebook (Mac Air) get ugly slow.
each of our ca 800m x 800m tiles takes longer than a frame to load.
We need to debug what the bottleneck here is. Likely it's the upload from RAM to the GPU
[ ] figure out a way to pre-load all textures with a loading bar or sth at the start
[ ] try out smaller tiles?
[ ] figure out how to split tiles in the glb loader, so that every frame only uploads a smaller part to the GPU. This would probably look really cool with random parts of the tile showing up quickly after each other.
[ ] use https://crates.io/crates/meshopt to preprocess all tiles and thus shrink the meshes
[ ] osm2world already generates a bunch of glts nodes per scene. It could instead generate a scene per node, so we could load them individually instead of all at once.
[ ] The Linux application sometimes is so busy loading tiles, not only the control is disabled, also the application menu including closing the app.
[ ] And other task on the notebook (Mac Air) get ugly slow.