Skip to content

Incorrect transform when exporting an object hierarchy to USD #1402

@peterhorvath111

Description

@peterhorvath111

When exporting objects from an Arnold scene via AiSceneWrite(), the transform is wrong, if the object hierarchy is coded into the node names.

Arnold does not support object hierarchy, in an Arnold scene all objects are on the same level. When we export objects from DCCs which support hierarchy, this information is encoded into the node name. For instance if a Pyramid is under a Cube object in Cinema 4D, the name of the Pyramid will be '/Cube/Pyramid'. When exporting to USD, it recognizes the hierarchy, and puts the Pyramid object under the Cube, but it does not change the transform to relative to the Cube and still uses the global transform. That's causing the problem.

These are ASS and USD exports of the same scene.
ASS file: object_hierarchy.ass.zip
USD file: object_hierarchy.usda.zip

To verify, load the ASS and USD files with a procedural.

ASS USD
scene_ASS.zip scene_USD.zip
scene_ASS scene_USD
correct incorrect

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingwriterRelated to the Arnold to USD writer

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions