Fixes #2074 (that also caused tiles to be removed and never loaded again when removed from the cache): the issue came from accessing threejs buffer attributes array directly instead of using the recommended getX() method (which is not the same in the case of InterleavedBufferAttribute.
Greatly improves 3D tiles perfs (see screenshots below) by reducing loading time overhead due to internal structures pre-filling (mainly for 3D tiles picking and style) -> part of these structures are now filled on first demand.
Screenshots
Performance profiling on 3dtiles_ion.html example before the second commit:
Performance profiling on 3dtiles_ion.html example after the second commit:
Description
This PR introduces two changes:
Fixes #2074 (that also caused tiles to be removed and never loaded again when removed from the cache): the issue came from accessing threejs buffer attributes array directly instead of using the recommended
getX()
method (which is not the same in the case of InterleavedBufferAttribute.Greatly improves 3D tiles perfs (see screenshots below) by reducing loading time overhead due to internal structures pre-filling (mainly for 3D tiles picking and style) -> part of these structures are now filled on first demand.
Screenshots
Performance profiling on
3dtiles_ion.html
example before the second commit:Performance profiling on
3dtiles_ion.html
example after the second commit: