Remove Cesium's use of glTF's optional skeleton property.#8756
Remove Cesium's use of glTF's optional skeleton property.#8756
Conversation
|
Thanks for the pull request @emackey!
Reviewers, don't forget to make sure that:
|
|
All the rigged 1.0 and 2.0 sample models work, SimpleSkin works, but I can't see char.glb from #8175...? |
|
I spent hours investigating char.glb (which is good, I need to learn more about skinning and rigging). I made my own sample models that use multiple skeletons, that use multiple meshes on one skeleton vs multiple skeletons, etc. Finally I've discovered the problem: The root armature in char.glb has a uniform scaling factor of You will still need to test on this branch of course, because the model also lacks the I will say I'm much more confident in this branch after making so many different test models today. |
|
So just to be clear, the original model in #8175 has multiple issues: (a) lack of |
|
I opened issue #8759 to track the scaling issue separately from the crashes reported in prior issues. |
|
Ah that was unexpected. Thanks for looking into it @emackey. |
Cesium was using the optional glTF property
skeletonas a required property, and it looks like it was only using it to discover a list of joint nodes, which are required to be in the glTF. This may be the result of historical changes along the way from early versions of glTF, I'm not sure.In any case, this PR removes a pile of skeleton/forest searching logic and just uses the glTF joint list directly.
I tested CesiumMan of course, and a model of my own exported from Blender. Would be good to test this against a few more complex skinning examples to make sure nothing broke.
Fixes #8175.