Xform for CAD imports

I belive I’ve raised this issue before in another thread, but I think it’s worthy of having its own.

When you import a STEP file the Xforms generated look like this, for which apparently there’s some technical reason, but that I’d argue there’s no reason to expose this to the user by default, since it’s not readable by the average user:

Screenshot 2024-01-05 124739

There’s also a UX inconsistency here, because if you go to the create menu and create a new Xform, it does look like you’d expect by default and is readable by the average user:

Screenshot 2024-01-05 125332

Again, please note that I’m talking defaults and UX here. I’m sure that 4x4 transform is technically correct and useful for some, but it should never be displayed as a default, but rather the advanced users who may need are those who should have to enable an option to show it!

I think the GUI is only presenting what is contained inside the USD stage.

USD transforms (see the UsdGeomXformable class) can be 4x4 matrices or a number of individual transformation operations (scale, rotate, translate (SRT), orientation (quaternions)) and to make matters even more complicated, there can be an arbitrary long array of these individual transformation operations in a specific order which neither of these two GUI examples shows.

If you only wanted the SRT representation of the 4x4 transformation, it would be required to decompose that matrix into individual SRT operations which isn’t a bijective operation with Euler angles which seem to be used in that “Rotate” GUI line. That would need to be a quaternion orientation instead to make things more robust and that type using four floats is similarly unintuitive as the original 4x4 matrix.

Add animations in the mix and things get even more involved. This page describes some of the USD possibilities with transforms. Look for the xformOpOrder for example: https://openusd.org/release/tut_xforms.html

So to directly control the actual transformations contained inside the respective USD stage, there is either that matrix or the transform operations GUI.

We are evaluating the idea of making all imported assets default to the standard TRS model and not the 4x4 matrix model. In the meantime you can add the TRS.

1 Like