Refactors the glTF2 internal classes to more closely reflect the structure
of the actual GLTF2 file format. Adds implementations for reading skins
and animations from GLTF2 files into those structures.
Also provides implementations for converting skins and animations from GLTF
into assimp data structures. Special handling is required for bone weights
since assimp stores vertex-weights-per-bone whereas GLTF2 stores
bone-weights-per-vertex. Only supports keyframed LINEAR animation data;
STEP and CUBICSPLINE is not currently supported.
Refactors the glTF2 internal classes to more closely reflect the structure
of the actual GLTF2 file format. Adds implementations for reading skins
and animations from GLTF2 files into those structures.
Also provides implementations for converting skins and animations from GLTF
into assimp data structures. Special handling is required for bone weights
since assimp stores vertex-weights-per-bone whereas GLTF2 stores
bone-weights-per-vertex. Only supports keyframed LINEAR animation data;
STEP and CUBICSPLINE is not currently supported.
In glTF2Exporter, roughnessFactor = 1 - normalizedShininess = 1 - someFunc(sqrt(shininess / 1000)). But in gltf2Importer, roughnessAsShininess = (1 - roughnessFactor) * 1000. No sqr there. So if save a shininess to a gltf2 and load it back, the value changed. This fix add a square to importer to make sure the consistency.
Amended the key "flags" -> "flag". The field key("flags") was not matching the key("flag") in the BlendDNA. It was annoying during debug mode since the exception prompt for the mismatching and.