3D LOD bug where everything nearby is low quality, fixable only by reboot of device
Both of these screenshots were taken with maximumScreenSpaceError set to 36, the app is running on Android (Meta Quest 3) and most of the time LODs are calculated properly..
However, sometimes when loading in LODs are suddenly awfully low quality everywhere with the same exact maximumScreenSpaceError value.
(Even setting it to as low as 20 results in awful nearby quality compared to before)
This bug persists and can only be solved by rebooting the device.
Hi @electrum-bowie, thanks for the report. Could you provide some additional information for us?
- What versions of the Unity Editor / Cesium for Unity did this occur on?
- What other Cesium apps are you referring to? For instance, do you mean the Cesium for Unity Samples or something else?
- Are there any conditions leading up to the bug? For example, does it happen after a certain period of time? Or after you move to a certain location in the world?
- Are there any error logs printed when this happens?
I feel like this bug is getting more and more frequent, especially knowing it never occurred for me before, is it some kind of Google rollout that breaks screen space error calculations?
Who knows.
Did that help @electrum-bowie? If so, it sounds like Unity could be reducing the viewport resolution automatically, probably based on performance.
This reminds me of how the Magic Leap 2 originally used custom camera size parameters to render to the device. But this left the Unity camera's viewport as 1x1, which prevented tiles from refining to higher detail on the device. I'm not familiar with the Quest 3, but perhaps there is something similar going on where the device looks at additional parameters unknown to Cesium for Unity?
does Cesium use the horizontal viewport resolution or horizontal field of view for calculating the LODs, or just all vertical?
Vertical I believe. But as long as your FOVs and width/height aspect ratio are consistent, it shouldn't matter, right?
We’re also seeing this issue, and I have 100% repro on Quest @j9liu
- Launch app; assets look correct
- Exit app
- Quest OS -> Settings -> Time, manually adjust time forward by 5 mins
- Launch app; assets now low res
- Note, license text also appears at bottom of screen
- Same issue every subsequent launch until device restart (adb reboot)
It also occurs naturally without time modification, but I’m not sure on 100% repro steps, eg, Quest left on > 24 hours
I don't see any error logs related to Cesium
Setup
- Unity: 2022.3.46f1
- Cesium: v1.16.1
- Meta Quest Pro OS: v78 (50849480086000340)
- Project: Cesium-Unity-Samples, 07_CesiumGoogleMapsTiles scene (with modifications to run VR mode on Quest)
Before:
Edit time:
After:
Hi @paulmriordan, thanks for the detailed steps. The "low res" effect isn't obvious in your before/after screenshots, though. They look similar to me. Did you attach the wrong "after" screenshot perhaps?
Project: Cesium-Unity-Samples, 07_CesiumGoogleMapsTiles scene (with modifications to run VR mode on Quest)
Could you please provide the modified scene, or instructions for modifying it?
Hi @paulmriordan, thanks for the detailed steps. The "low res" effect isn't obvious in your before/after screenshots, though. They look similar to me. Did you attach the wrong "after" screenshot perhaps?
Project: Cesium-Unity-Samples, 07_CesiumGoogleMapsTiles scene (with modifications to run VR mode on Quest)
Could you please provide the modified scene, or instructions for modifying it?
The quality difference is noticeable to me from their screenshots.