Alembic

AlembicExporter

The AlembicExporter has a sub-samples parameter to control sub-samples per frame: 0 means per frame, 1 per half frame and so on.

Remember, this is an independent time sampling of TP - this does not affect TP's internal accuracy.

The importer makes the interpolation between two samples, but currently does not interpolate mesh vertex movement because topology is changing and vertex order changes.

Max's native Alembic works with face sets to get the material IDs back, but only for static meshes, so only node transform matrices can be animated but the topology must be constant.


No Geo for Alembic Particles

There is a big restriction in the Alembic format's particle export: Alembic particles have no geometry data, only point, velocity, and width are standard - all other data is customized, but also in the customized area no geometry is apparently possible.


Alembic Worldspace

Alembic works with a different coordinate system than 3dsMax's right and left hand system.

The Max exporter must sweep abc_y = max_z and abc_z = -max_y.

The TP .abc importer sweeps this back.


Instancing in Alembic

There is nothing to instance, even if the single sub meshes are instances. The merge mesh topology is changing from frame to frame. 


Alembic format overall

Alembic is good, but there are some things missing in the specifications. An Alembic geom object has only one UV channel and no material IDs, so that's a big problem.

TP's implementation adds the material IDs as custom parameters, but the importer must already know about this special parameter. It's unknown how Max's importer handles the material IDs. In Maya it's the same problem with the Shading Groups: the exported mesh is changing topology, so you can't select specific faces to a shading group - that only works with a static mesh.

Material IDs work with the Exocortex importer in Max, but keep in mind the IDs are for the TP MultiSO, so if you assign the same TP MultiSO to the imported mesh it looks right. If you want to create your own material with a standard multi-sub material that can become a very large multiSO, depending on the complexity of the TP system. 

During rendering, a particle system becomes one big mesh with a merged multi-sub material.

Say you have 100 different cubes with different multi-sub materials and bring it into TP with an ObjToParticle, TP merges the cubes and gives every sub-cube mesh a specific material ID offset so that it is assigned to the right material in a big multi-sub holding all original multi's in one. Nested multi-sub materials in Max doesn't work, so you have to unwrap the single materials in the multi-subs to a new one. In TP the first material of the new material is reserved for particles with no material.

TP has the special "TP Multi/Sub-Object" material which has nested functionality to solve objects with multi-sub-object materials.