FBX SDK 2015
This topic lists the new features and improvements, changes and deprecations, fixes,
and known issues in the 2015.x releases.
2015.1
New features and improvements
- Added support for Visual Studio 2013 compiler.
- The minimum iOS version is now 7.0. These architectures are supported: ARMv7, ARMv7s,
and ARM64).
- The minimum version of Mac OS is now 10.8. The GCC build support is dropped. It is
built with the Xcode 5.0 default Clang compiler.
- Added the native Alembic support. Now, the .abs files are opened directly. It creates
the appropriate nodes and mesh in an FBX scene. You can access FbxCache to read the cache data. Support for Alembic is currently available in desktop operating
systems only (disabled on iOS/WinStore).
- A new FbxCache::Read() function works regardless of the cache type.
- Added support for reading .zip files. Now, FBX SDK can read files and their dependencies
such as, textures that are packaged in a .zip file without unpacking. This is useful
for file formats that do not support embedding textures. Only one scene per .zip file
is supported.
- Added a new FbxObject::Compact() virtual function. You can overloaded this function to implement object compacting.
Calling Compact() on FbxScene or FbxDocument compacts each object connected as a source.
- Added these new functions: FbxArray::AddCompact() and FbxArray::Compact() for reducing the memory usage by arrays.
- Added operator equality and inequality to FbxPair.
- Added the new FbxSharedPtr class.
- Improved the FbxCameraManipulator class behavior:
- Upon Frame-All, camera rotation is preserved.
- Upon Frame-All, deformations on meshes are taken into account.
- The minimum distance to LookAt is more robust.
- Improved the minimum speed when camera is at the minimum distance to LookAt.
- Added a new FBX_TRACE macro for debugging.
- Added a new parameter to FbxCamera::ComputeProjectionMatrix() for specifying whether the FOV must be preserved even when the viewport height is
larger than the viewport width.
Fixes
- Fixed an issue with the matrix converter filter that was not resetting all members
properly.
- Made path utility functions more robust. Files are no longer mistaken for folders,
and trying to write in read-only folders does not crash anymore.
- The Triangulate and SplitMeshesPerMaterial geometry converters now handle the blend shapes properly.
- Fixed an issue with the left over shape data upon reading FBX files.
- Fixed a major corruption issue that occurs when trying to save files in iOS builds.
- FBXSDK_ENV_IOS must no longer be defined on Mac OS builds.
- FbxThumbnail is now properly shared between the document and importer's scene information.
- Converting a scene's axis system using the FbxAxisSystem now ignores the pre/post rotation and rotation order values on a node if the RotationActive property is set to false.
- Cleaned many warnings that occur when compiling using Xcode 5.0.
- Fixed a crash with layer element material cloning that was pointing to a non-cloned
FbxSurfaceMaterial object.
- Fixed an issue with the local time span not always being written to the FBX file.
- Now, when using FbxGeometryConverter::SplitMeshesPerMaterial(), all layer elements are copied to new meshes instead of only the first one.
- Fixed a rare crash that occurs upon loading corrupted FBX files.
- Fixed multiple crashes that occur upon loading Collada and OBJ files.
Known issues
- FbxAMatrix only works with the XYZ rotation order.
- Skew and Stretch matrices are not supported.
- The FBX SDK is not thread safe.
- Deformers do not support instancing, so point cache deforming is not re-usable.
- While assigned material can change on the node, material layers on the mesh cannot
be instanced.
- When exporting various file formats, sometimes the scene might get modified permanently
resulting in data loss.
2015.0
New features and improvements
- Added four new functions in FbxMatrix to generate LookTo and LookAt matrices.
- The FbxVertexCacheDeformer class now has a type property to define the type of data it uses in the cache file
channel.
- Added a new generic read function to FbxCache. It returns an array of float that is managed internally. This function now works
regardless of the cache file type.
- FbxArray now uses reference to elements rather than copies for better memory performance.
- Added a new FbxMatrix::GetElements function overload that returns a rotation vector instead of a quaternion.
- Matrix converter curve filter now supports TRS limits.
- Cleaned and standardized comparison functors across the SDK.
- Added "+=" and "-=" operators to FbxRedBlackTree. FbxMap uses this model.
- Added a new FbxArray::RemoveRange() function that allows removing multiple items.
- Polished the interface of FbxVertexCacheDeformer class to use the FBX SDK standard property model.
- FbxArray now uses reference values for most of its functions.
- FbxProperty map in evaluate state now properly uses an FbxProperty reference instead of a pointer.
- FbxPropertyAttr members are merged into FbxPropertyFlags for consistency.
Changes and deprecations
- Renamed FbxSet to FbxMultiMap to clearly describe what it does.
- Renamed FbxSet2 to FbxSet because this is the actual set class in FBX SDK.
Fixes
- Fixed a regression with edge smoothing.
- Fixed multiple memory alignment issues for iOS builds.
- Fixed an issue with the evaluation state not properly clearing itself when a scene
changes. This was causing memory corruption.
- Fixed a crash that occurs when freeing the FbxManager in certain circumstances.
- Fixed a crash that occurs when importing some Collada files.
- Fixed a crash that occurs when trying to create a folder in read-only locations on
Linux and Mac.
- Fixed an issue of tangents smoothing not considering flip.