-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I3dm to glb upgrade - tree not visible #153
Comments
ah yes well spotted, I've updated the tree samples (result tree glb has now 1 tree, but it doesn't show up in Cesium) |
Found'em 😑 Note that the trees (at the cursor) are floating somewhere below the ground, and it's difficult to navigate to make them visible (the bounding box has to remain visible as well, otherwise, they'll be clipped away...) Logging did first not bring toooo many insights: The main difference between the trees is a slight difference in the rotation. Their world positions, as they are coming from the I3DM, are basically equal:
What may be relevant here: These positions do include the
And for the reasons laid out in Precisions, Precisions: Using such large values for rendering is difficult. Specifically: Writing such values into the (This is the reason why the What the I3DM-to-GLB upgrade is doing in an attempt to handle that: Is tries to generically "relativize" the positions/translations. Specifically, referring to this part of the code:
(This is actually similar to what CesiumJS is doing for I3DM internally) Now there are basically two options:
So.... right now, I have no idea why the position of the model may be so wrong... 😕 |
(Some sort of rubber-duck-debugging here - but also the keep track of some thoughs:) The TRS properties for the
This inevietably will introduce small errors. I wondered whether even small rounding errors could be emphasized by the node translation that corresponds to the |
one thing that's special about this tree model: it has a rotation (1/4 pi) in the root node. But I don't see it handled in applyRtcCenter (there a new node is created, the new node gets the translation and the old node is added as a child to the new node). |
Yeah, on the one hand, that tree model is haunting me, due to all the issues (this one, disappearing I3DM parts...), and I think that it "originated" from me casually throwing that into https://github.com/CesiumGS/3d-tiles-samples/tree/main/1.1/MetadataGranularities so I somehow "regret" that. But ... I think that it is good to have a model that "breaks" things, to point out flaws, and increase the robustness. The issues (both the disappearing I3DM parts, as well as this one) are likely, somehow rooted in the specific node transforms that the model is using. For the disappearing I3DM parts, this is undoubtedly the case (we already figured that out, and drafted solutions). But for the case of the
|
Hi,
I'm trying to upgrade a 3D Tileset with 1 I3dm (1 instance on Dam square Amsterdam) to 3D Tiles 1.1 GLB.
Upgrade command used:
Version 3d-tiles-tools (npx 3d-tiles-tools --version): unknown (but installed with npm install 3d-tiles-tools)
With a simple box it works ok:
I3dm: https://bertt.github.io/cesium_issues/instance_upgrade/box/i3dm
glb: https://bertt.github.io/cesium_issues/instance_upgrade/box/glb
But with a tree model (https://bertt.github.io/cesium_issues/instance_upgrade/tree/tree.glb) the tree doesn't show up:
I3dm: https://bertt.github.io/cesium_issues/instance_upgrade/tree/i3dm
glb: https://bertt.github.io/cesium_issues/instance_upgrade/tree/glb
Only difference is in the used model. Any ideas how to show the tree in glb format after upgrade?
The text was updated successfully, but these errors were encountered: