This topic lists the new features, changes, and fixes in the 2019 releases of the FBX SDK.
Constant FBXSDK_TC_MILLISECOND has been changed from 46186158 to 141120 to accurately support frame rates like ~23.976, ~29.97, 72 and 96 fps.
The enum value eFrames119dot88 has been added to the FbxTime::EMode enum. Similarly, the FbxTCSetMNTSC_4Xnd and FbxTCGetMNTSC_4Xnd helper functions have been added to deal with this new ~119.88 frame rate.
The class FbxAxysSystem has been extended and provides the new function "DeepConvertScene" that modifies transforms, vertex positions, animation curves and so on throughout the hierarchy. Consequently, it now accurately supports handedness changes.
The improvement of the FBXSDK_TC_MILLISECOND is big enough to break the compatibility with version 7.5. To minimize adoption issues, the change in this version of the FBX SDK can be triggered by calling FbxTCSetDefinition(FBXSDK_TC_STANDARD_DEFINITION). By default, we keep using the old value (FBXSDK_TC_LEGACY_DEFINITION) and you 'opt in' for the new one. Over time, the 'opt in' will become the default and the file version will be bumped to 8.0 (so previous versions of the FBX SDK can detect that the new file is incompatible).
In the meantime, it is expected that 7.7 files saved with the new precision, will still be readable by previous FBX SDKs (2016, 2017, and 2018) BUT with bad timings.
Custom-defined ALEMBIC_VERSION_NS to avoid possible conflict with third partly Alembic library.
Removed the forced pack to 8 (the statements #pragma pack(push, 8) / pop() were enclosing all the FBX SDK includes in fbxsdk.h)
This release re-enables the Alembic caches support for Ogawa archives. HDF5 is not supported anymore inside the FBX SDK.
All the WindowStore and iOS architectures do not provide Alembic support.
Animation is considered corrupted if keys times are not ordered by increase value. (T(i) must be less or equal to T(i+1).)
Added the FBX standardized renaming strategy to the Collada file read/write.
This renaming strategy will replace every character in the object name/id that does not comply with the XML NCName scheme. The replacement will be a string in the form FBXASC###, where ### is the decimal value of the ASCII character.
Added an extra parameter to GenerateTangentsData() family functions to skip testing for the tangent flip.
Moved the static function FbxRenamingStrategy::NoPrefixName to FbxRenamingStrategyUtils::NoPrefixName.
It now returns an FbxString instead of a char*.
Wgettimeofday and Wgetlogin already define linker error.