xeokit / xeokit-sdk

Open source JavaScript SDK for viewing high-detail, full-precision 3D BIM and AEC models in the Web browser.
https://xeokit.io
Other
715 stars 286 forks source link

GLTFLoaderPlugin is missing some objects for "performance" mode #23

Closed xeolabs closed 5 years ago

xeolabs commented 5 years ago

Some objects that have reused geometries are missing after the model has been imported.

If we disable geometry instancing, to force geometry batching, by inserting the false in GLTFPerformanceLoader:

screenshot from 2019-03-05 14-26-56

then those geometries are visible again. So this looks like a breakage in the geometry instancing mechanism of PerformanceModel.

xeolabs commented 5 years ago

Found cause of this bug: GLTFPerformanceLoader failing to generate unique geometry IDs in some cases. Verified by randomly generating those IDs. Causes some geometries to never be instanced, with other geometries being instanced in their place, due to ID clashes.

xeolabs commented 5 years ago

Fixed in https://github.com/xeokit/xeokit-sdk/releases/tag/v0.1.5