Open kring opened 3 years ago
@joseph-kaile this is the issue we talked about on the call today. There is likely an API somewhere in UE to get the DPI scaling factor, the equivalent of devicePixelRatio on the web. (This site will display your current device pixel ratio). Then, when we construct the ViewState
for tile selection, we should divide the viewport width and height by the ratio. This will result in fewer tiles being selected on small-screen, high-DPI devices like iPhones, drastically improving performance.
It looks like UE's DPI scaling support might be more sophisticated than a single number, but that should be fine: https://forums.unrealengine.com/t/current-dpi-scaling/296699/2 (above is the first thing I found, I don't know if it's the best way)
This should be configurable, though. I'd suggest a project-wide setting on CesiumRuntimeSettings
, and also an option on each Tileset to override it. Maybe in the project settings it's just a checkbox: "Scale Level-of-Detail by Display DPI". On the tileset, it should have three states: Yes, No, and Use Project Default.
We need to figure out what this means. Possibly: