Having some LOD loading issues at LOD 4, here are the details:
Environment
PlayCanvas Engine: (version from package.json)
Browser: Chrome/Safari
Platform: macOS / iOS
Description
When setting app.scene.gsplat.lodRangeMin = 4 before initial scene load,
certain spatial chunks fail to load, resulting in black voids in the scene.
However, if I start with lodRangeMin = 3 and then change it to 4 at
runtime (via user input), all chunks load correctly and no voids appear.
Steps to Reproduce
Load a large gsplat scene with LOD streaming (hierarchical chunks from splat-transform)
Set app.scene.gsplat.lodRangeMin = 4 and lodRangeMax = 5 before loading
Observe black voids in certain areas of the scene
Press a key to change lodRangeMin = 4 at runtime
Voids disappear, scene renders correctly
Expected Behavior
Setting lodRangeMin=4 at startup should produce the same result as
changing to lodRangeMin=4 at runtime.
Actual Behavior
lodRangeMin=3 at startup: ✓ works
lodRangeMin=5 at startup: ✓ works
lodRangeMin=4 at startup: ✗ black voids
lodRangeMin=4 at runtime: ✓ works
Additional Context
Scene has ~70M Gaussians across 6 LOD levels
Using splat-transform with -O 0,1,2,3,4,5 -C 256 -X 8
lodDistances: [5, 12, 25, 50, 80, 110, 140]
This suggests a possible chunk request bug specific to lodRangeMin=4 during
initial load, possibly an off-by-one error or boundary condition.
Thanks for the response. Here’s the url: https://landscapescan.com/. I have an LOD toggle in top right on desktop. I’ve made default LOD 3 because that doesn’t have the black void issue. If you toggle to LOD 4 right when you get to scene and navigate, you’ll likely encounter some black voids if you poke around for a bit. It would be preferable to use LOD 4 in this scene rather than 3 because fps is better. You’ll notice a time button I’ve added to scene where it can toggle between scans taken two months apart and pretty much keep the same perspective. Thanks for any suggetions you can provide about the LOD4 thing.
Hmm I’ve tried few times, with network cache enabled and disabled, and I do not see the issue. The loading seems pretty slow here, could that be related? Does it load those files as you wait longer?
Have you managed to reproduce it in the lod-streaming example I listed above as well?
I think the issue might have been the hosting. I switched from Dreamhost Shared to Cloudflare R2, and the LOD4 issue seems to have disappeared. Perhaps the CDN and efficiencies of Cloudflare R2 are ideal for LOD streaming.
hmm that is strange, if it would not deliver the files, I’d expect some console errors, and also errors in the network tab. Great this is resolved, but please do ping back if you see it again.