Hello, i just noticed that my level with only cesium was consuming all of my VRAM and decided to debug, i realized that whenever i turn around my camera and keep it still looking at a horizon line, cesium starts loading new tiles and it keeps loading tiles until my vram is exhausted, this happened equally using 10 GB of cache down to 1000 Bytes (i tested removing one 0 between each test).
I tested this by using renderer resource viewer and keept refreshing it, when i turn the camera, it goes down to 1.5GB and then gradually goes up until i get out of memory, i’ve tested some settings of occlusion but it did not help.
If possible i would like cesium to use no VRAM at all or at maximum 500MB of VRAM because my project that is using it is currently already uses around 8GB with optmized assets.
Edit: It seems that if i look at the horizon it will try to load max lod for every tile in that direction, possibly ignoring occlusion culling, i currently need around 10KM² of tiles, can i limit distance somehow to load based on camera radius distance?
I noticed that you’ve set the Maximum Screen Space Error to 2.0. That’s a very low value to use with Google Photorealistic 3D Tiles, and will use at least 64 times more memory than the default setting, 16.0.
Google Photorealistic 3D Tiles uses a ton of textures, so it requires plenty of GPU memory for them. 500MB is probably unrealistic, but you can certainly reduce the memory usage by reducing the detail, which you can do by increasing the Maximum SSE value.
It seems that if i look at the horizon it will try to load max lod for every tile in that direction, possibly ignoring occlusion culling, i currently need around 10KM² of tiles, can i limit distance somehow to load based on camera radius distance?
It’s loading “max LOD” (not actually - the full dataset is measured in petabytes! but certainly more than it needs) because you told it to by setting a low SSE value. We frequently get requests to limit view distance, but it’s not nearly as helpful an idea as people think. First, you’ll get artifacts in the distance, such as missing mountains. And second, it won’t even help that much, because the detail drops off very rapidly in the distance. Almost all the memory usage and rendering load is in that first 10 square kilometers anyway.
1 Like
Thank you for your quick response, setting Max SSE to default value was exactly what i needed, i misinterpreted this value, when i started using this plugin i thought the value of 16 would give me a bit inaccurate location so i set it to 2 and never touched it.
I understand that cesium uses a huge amount of textures, but is it possible to give us any option as to where we want to store those textures (between VRAM and RAM)? Would it be possible to set values of VRAM and RAM and adjust storage to work around this values? Or is this beyond controlling?
I’m saying this because i currently have limited VRAM to work with, but plenty GBs of free RAM and i imagine that others might be in the opposite position. I also understand that this is probably absurd to ask but i’m curious xD.
No, sorry, I don’t think that’s possible. Textures used for rendering must be in VRAM.