Skip to content
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

Much more powerful existing inner frame animation capabilities in 3D model formats #74

Open
jerstlouis opened this issue Jan 21, 2023 · 1 comment

Comments

@jerstlouis
Copy link
Member

GeoPose supports describing the inner poses of objects.

Am I correct in understanding that this information is a small subset (limited to translation and orientation) of what can also be described in animated 3D models formats such as glTF and COLLADA?

These specifications allow defining complex animations for complex node object hierarchies, with keyed frames for positions, orientations and scales, and support for interpolation control (e.g., Tension, Continuity, Bias), as well as support for bones and skins system allowing the smooth deformation of objects by animating skeletons, with vertices of a mesh specifying a weights associated with one or more bones, as well as morphs allowing to fully deform geometry.
As a reference, the Asset Import Library supports importing such animations from a large variety of 3D model formats:

aiNodeAnim: https://github.com/assimp/assimp/blob/master/include/assimp/anim.h#L267
aiMeshMorphAnim: https://github.com/assimp/assimp/blob/master/include/assimp/anim.h#L372
aiAnimation: https://github.com/assimp/assimp/blob/master/include/assimp/anim.h#L401

The glTF capabilities for animations and morph targets are described in these sections:

https://github.com/KhronosGroup/glTF/blob/main/specification/2.0/Specification.adoc#311-animations
https://github.com/KhronosGroup/glTF/blob/main/specification/2.0/Specification.adoc#morph-targets

In COLLADA ( https://www.khronos.org/files/collada_spec_1_5.pdf ), Chapter 5 animation, morph, skin, etc. describe these capabilities.

The solution I would consider to efficiently stream the inner poses of articulated / deformed 3D objects is to stream the binary representation as defined in glTF or other formats by itself i.e., without the meshes / geometry, but referencing the nodes that are available in the geometry of the models whose inner poses are being streamed, while integrating this data within this temporal geometry of the outer frame and associating the animation timelines with the trajectory time instants.

At first glance (I might misunderstand), the limitations of the GeoPose inner frames sharply contrast with their apparent complexity.
Could inner frame descriptions perhaps be deferred to a future version / extension more in-line with the comprehensive conceptual model used in 3D models animations?

@MikelSalazar
Copy link
Contributor

MikelSalazar commented Jan 21, 2023

Am I correct in understanding that this information is a small subset (limited to translation and orientation) of what can also be described in animated 3D models formats such as glTF and COLLADA?

Yes, you are correct and we are working on a way to integrate GeoPose into GLTF. The issue is that we are not only collaborating with engineers specialized in 3D graphics, but also with those in geospatial and aerospatial fields.... and they have slightly different ways to think about frame transformations. It is infuriating for me (as the main GeoPose Sanbox implementer) that we have not taken advantage of these specifications in our own standard, but I hope that, with feedback like yours, I can convince other members to, at least, acknowledge that current 3D technologies offer solutions to some of the problems that we face (e.g., SceneGraphs already providing a simple way to perform successive frame transformations).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants