iTowns / itowns

A Three.js-based framework written in Javascript/WebGL for visualizing 3D geospatial data
http://www.itowns-project.org
Other
1.09k stars 293 forks source link

The zoom level of tiles are inconsistent #2118

Open AnthonyGlt opened 1 year ago

AnthonyGlt commented 1 year ago

On the view_3d_map example, when zooming to the max, the tiles aren't not loaded with the same zoom level definition.

https://github.com/iTowns/itowns/assets/126568810/79aed996-2c26-4ac0-a6c5-f0cf87c842ed

jailln commented 1 year ago

Does #2097 fixes this by any chance ?

AnthonyGlt commented 1 year ago

Does #2097 fixes this by any chance ?

Didn't see any effect on this issue

mgermerie commented 11 months ago

This is due to the algorithm we use to subdivide terrain tiles. You can see on the video bellow (captured in the same zone) the tile subdivision. Tiles closer to the camera are more likely to be subdivided than tiles further away. Therefore on a top view, tiles at the border of the screen are less subdivided than tiles at the center. On a tilted view, tiles at the bottom of the screen (closest to the camera) are more subdivided than tiles on top of the screen.

Capture vidéo du 15-09-2023 17:36:57.webm

This phenomenon is particularly visible in view_3d_map example because of the ortho-images from geoservices. The difference in images between zoom levels 18 and 19 is higher than between zoom levels 17 and 18 for instance (in terms of colors mostly). This gives this feeling of inconsistency.

I know there are some improvements to bring to tiles subdivision management (with easing for example to make a smoother transition when subdividing a tile). However on this specific example, I don't know what and if something is to be done. We could change the sse threshold at which we subdivide tiles but I don't know if this change - which includes large performance changes - is relevant only to fix an issue mostly related to data.

AnthonyGlt commented 11 months ago

@LoicUTC @PhilippeMarc-IGN the improvement of the tiles subdivision management should be put in the roadmap. A discussion about how to do it is welcomed. WDYT ?