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.
Changes and deprecations
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.