Scale is negated in inverse bind matrices.
Vertex weights are normalized (glTF importer is limited to 4 weights per vert).
Fixed interpolation for animations where the first frame is not at 0.0.
Allows cached.dts version of assimp imported shapes to be loaded.
Vertex weights are now correctly assigned for skinned meshes. Portions of the vertex weight fix were taken from: https://github.com/ConfettiFX/The-Forge/blob/master/Common_3/ThirdParty/OpenSource/assimp/4.1.0/code/glTF2Importer.cpp#L823-L860.
Inverse bind matrices have been adjusted to be consistent with the other importers.
All nodes, joints and meshes are now named so T3D can cross reference when loading animations.
All T3D specific changes have been bracketed in //T3D_CHANGE_BEGIN and //T3D_CHANGE_END tags to make them easier to find when the assimp library is updated.
This commit deals with the problem that the keyframe timestamps are not standardized. Seconds, milliseconds and ticks are used depending on the import format. There is no metadata or property that specifies the format used, so the option is exposed to the user as part of the import options gui.
Fixes material initialization for texture and transparency assignments.
Lists all available material properties to console in debug builds.
Adds TORQUE_PBR_MATERIALS define for testing with PBR branches.
Caches textures to disk for shape formats that support embedded textures.
Only the compressed texture codepath has been tested. There are a large number of binary gltf files with embedded (and pbr) textures for testing here: https://github.com/KhronosGroup/glTF-Sample-Models
The lodType, singleDetailSize, adjustCenter and adjustFloor options been added to the importer.
Implementation of $Assimp::FlipNormals has been fixed.
$Assimp::FlipWindingOrder has been added to expose aiProcess_FlipWindingOrder.
Logging is now enabled and directed to assimp.log.
This checks both gcc and clang on linux, but only clang on mac
Becuse there are so many debug warnings they are supressed in a very hacky way:
Make is run first with error output ignored.
Then an incremental build is run which has the error output, but will only build the files that errored the first time (and will error again).
If anyone knows a better way to ignore the warnings that would be great.
Input::getAscii goes Torque keyCode -> SDL Scancode -> SDL Keycode -> SDL ascii key name
Input::getKeycode used to be SDL ascii key name -> SDL Scancode -> Torque keyCode
This mismatch made software keyboard layouts behave incorrectly in different places. For example, you would bind a key to an ActionMap and it would activate with a different button than specified.