You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am using impasse/assimp to import a gLTF into Maya by converting the gLTF to an FBX and then importing the FBX into Maya.
However, it looks like the FBX conversion process does not take into account both the bindpose set by the .bin file associated with the gLTF before building the skeleton according to the joint transforms defined in the nodes hierarchy of the gLTF file. That is, to achieve correct skinning, the skeleton should first be built according to the bindpose matrices; the raw mesh data can then be skinned to this bindposed skeleton, and then the skeleton transforms would be adjusted to those set in the nodes hierarchy.
Instead, it seems that the FBX conversion is picking the raw mesh data, but using the nodes hierarchy as the bindpose matrices instead of the ones stored in the binary buffer. As you can see, the mesh is not correctly aligned with the skeleton, and appears deformed:
This is compared to when I import the original gLTF into Blender, where the correct skinning is achieved:
TLDR: The correct reference frame data should be found in the binary buffer - this is what should be used for the LBS deformation calculation, and not the 'live' data transforms in the scene graph nodes.
I've added the gLTF file I used in the conversion process below. Let me know if you need any more info! Avatar.zip
The text was updated successfully, but these errors were encountered:
I am using impasse/assimp to import a gLTF into Maya by converting the gLTF to an FBX and then importing the FBX into Maya.
However, it looks like the FBX conversion process does not take into account both the bindpose set by the .bin file associated with the gLTF before building the skeleton according to the joint transforms defined in the nodes hierarchy of the gLTF file. That is, to achieve correct skinning, the skeleton should first be built according to the bindpose matrices; the raw mesh data can then be skinned to this bindposed skeleton, and then the skeleton transforms would be adjusted to those set in the nodes hierarchy.
Instead, it seems that the FBX conversion is picking the raw mesh data, but using the nodes hierarchy as the bindpose matrices instead of the ones stored in the binary buffer. As you can see, the mesh is not correctly aligned with the skeleton, and appears deformed:
This is compared to when I import the original gLTF into Blender, where the correct skinning is achieved:
TLDR: The correct reference frame data should be found in the binary buffer - this is what should be used for the LBS deformation calculation, and not the 'live' data transforms in the scene graph nodes.
I've added the gLTF file I used in the conversion process below. Let me know if you need any more info!
Avatar.zip
The text was updated successfully, but these errors were encountered: