Problem summary
Subdividing a USD Object Version in an Alembic Object leads to disappearing faces and other broken behaviours.
This only occurs with USD files that have multiple geometry entities / gprims.
Customer reported version
Mari 6.0v3
Steps to reproduce
Launch Mari and create a new Project using an Alembic geometry (attached).
In the Objects palette, right-click the Object and select Add Object Version.
Add a USD file as the new Object Version (attached). To reproduce, this must be a file with multiple meshes in its geometry tree view:
Switch to the USD version by selecting Objects > Geometry > Version.
Select Object > Subdivision > Subdivide > Ok to subdivide the USD Object.
If faces don't immediately disappear, move the camera around, perform face selections, or switch between subdivision levels until they do.
NOTE: Support tested with various other combinations of steps and file types. Only this specific "Alembic to USD" setup causes this issue.
Expected behaviour
The USD Object should be subdivided with no issues.
Actual behaviour
Subdivision is performed, and at Level 0 the Object looks fine. But at subdivided levels, a random amount of the geometry's faces disappear. The faces that are visible/invisible can change randomly by moving the camera, changing the subdivision level, performing selections, or changing which node is being viewed.
Once the Project is in this state, a few other behaviours can be noticed:
Face Selection: Nothing happens, or it selects the wrong faces, or it works fine.
Selection > Select All: Typically makes more faces disappear, and then it's typically impossible to remove the selection highlight color.
Subdivision: Sometimes it happens it subdivides in the backgorund, even though Support selects Ok instead of Background.
Painting: It's possible to paint in areas that wold be hidden if faces weren't missing.
Removing the original Alembic Object does not resolve this issue.
Workaround
Option 1: This only occurs with USD files that have multiple geometry entities / gprmis. As such, to avoid this bug, users can merge all meshes into one using their modelling software, then export this as USD and bring it into Mari.
Option 2: Add the USD geometry as a separate Object, then use Gizmos or Node Transfer to bring into it data from the Alembic Object.
Reproduced by support
This bug has been reproduced in:
Mari 7.0v2 - Windows 10 - Rocky 9
Mari 6.0v3 - Windows 10 - CentOS 7
Mari 4.8v1 - Windows 10 - CentOS 7
Unable to reproduce bug in:
Mari 4.7v7
Earliest version tested
Mari 4.8v1 - This feature (USD support) did not exist before this version