archilogic-com / 3dio-js

JavaScript toolkit for interior apps
https://3d.io
MIT License
276 stars 74 forks source link

updateOnBake creates duplicated elements which overlap each other and flicker #132

Open hristian7 opened 6 years ago

hristian7 commented 6 years ago

How to Reproduce We’re trying to import a scene for a project, even though it works with the app creator (https://app.3d.io/yoN02T), doing it in code via io3d.scene.getAframeElements causes 2 models to appear on top of each other with no apparent cause, so the polygons just flicker annoyingly. It seems like the second model comes from https://github.com/archilogic-com/3dio-js/blob/master/src/scene/structure/to-aframe-elements.js#L315-L327, and is being updated asynchronously as the light baking status is resolved. However, that code does not hide the original element, therefor making both the baked and unbaked version appear simultaneously. For other scenes, with bake status “done”, this isn’t the case and only the baked version is correctly displayed.

Actual Result Elements are duplicated and overlap each other resulting in a flickering visuals

Expected Result Only the baked versions of the elements should be visible and looking good.

bnjm commented 6 years ago

I looked into using the following jsfiddle to reproduce the problem https://jsfiddle.net/nnc083nL/3/.

Currently there's an issue with baking models where the bakeStatus can get out of sync. If you save the model before the baking completed then the status does not correctly get updated as done.

For now you can fix this by reopening your model in the editor and saving it again. Let me know if this doesn't resolve the problem.