Reference/Release Notes/2.90/IO

= Blender 2.90: Import & Export =

Alembic

 * Matrices with negative scale can now be properly interpolated. This means that it is now possible to take an Alembic file that was saved at 30 FPS and load it into a 24 FPS Blender file, even when there are mirrored objects. ( and demo videos in D8048).
 * Object data is now exported with the object data name . Previously the Alembic exporter exported a mesh object to `{object.name}/{object.name}Shape`. Now it exports to `{object.name}/{mesh.name}` instead. The same change also applies to other object data types.
 * Spaces, periods, and colons in the names of particle systems are now replaced with underscores . Other types already had spaces, periods, and colons replaced by underscores, and now particle systems are exported with the same naming convention.
 * Blender now always exports transforms as as "inheriting", as Blender has no concept of parenting without inheriting the transform . Previously only objects with an actual parent were marked as "inheriting", and parentless objects as "non-inheriting". However, certain packages (for example USD's Alembic plugin) are incompatible with non-inheriting transforms and will completely ignore such transforms, placing all such objects at the world origin.
 * Blender now exports Alembic using the same approach as USD. This means that Alembic and USD files are more consistent, and that it's easier to solve (or even prevent) certain bugs . Changes are:
 * Duplicated objects now have a unique numerical suffix (also see above).
 * Matrices are computed differently. This fixes T71395, but otherwise should produce the same result as before (but with simpler, more predictable code).
 * Alembic's obsolete HDF5 compression format has never been officially supported by Blender, but only existed as an optional build-time option that was disabled for all Blender releases. The support for HDF5 has now been completely removed.

USD

 * Hair particle systems are now exported using the Particle System name. Previously this was done with the Particle Settings name. This gives more control over the final name used in USD and is consistent with the Alembic exporter..

Instances
USD and Alembic export can now correctly export nested instances. Further, numbers used to identify duplicated (i.e. instanced) objects have been reversed.

This produces hierarchies like this: Triangle |--TriangleMesh |--Empty-1 |   +--Pole-1-0 |       |--Pole |       +--Block-1-1 |           +--Block |--Empty |   +--Pole-0 |       |--Pole |       +--Block-1 |           +--Block |--Empty-2 |   +--Pole-2-0 |       |--Pole |       +--Block-2-1 |           +--Block +--Empty-0 +--Pole-0-0 |--Pole +--Block-0-1 +--Block

It is now clearer that `Pole-2-0` and `Block-2-1` are instanced by `Empty-2`. Before Blender 2.90 they would have been named `Pole-0-2` and `Block-1-2`.

glTF 2.0

 * Importer
 * Enhancements
 * Implement KHR_materials_clearcoat
 * Implement KHR_mesh_quantization
 * Improve the layout of nodes in the material graph
 * Add option to glue pieces of a mesh together
 * Code cleanup & refactoring & performance
 * Fixes
 * Fix occlusion textures
 * Fix Crash on undo after glTF import
 * Exporter
 * Enhancements
 * Add joint / pre /post in hook for extensions
 * Allow combining different-sized textures (eg for ORM)
 * Add check rotation + delta rotation both animated
 * Code clean up & refactoring & performance
 * Refactoring Normals export
 * Add support for use_inherit_rotation and inherit_scale
 * Export curve/surface/text objects as meshes
 * Fixes
 * Prevent infinite recursion when mesh is skinned and parenting to same bone
 * Make sure rotation are normalized
 * Add check when armature animation is binded to mesh object
 * Fix extension panel appearance
 * Fix draco UV export
 * Fix lamp parented to bone
 * Fix saving use_selection option in .blend file
 * Fix exporting with option "group by NLA"
 * Fix exporting EXTEND textures
 * Fix export alpha scalar value (not coming from texture)
 * Fix exporting `aspectRatio` for Perspective Cameras
 * Fix to generate valid file when zero-weight verts