Skip to content

Hydra 2: different behavior with normals for UsdSkel vs Hydra 1 #3699

@cameronwhite

Description

@cameronwhite

Description of Issue

In Hydra 2, we observed that normals on skinned meshes are passed through unmodified, whereas in Hydra 1 the normals were blocked and forced to be recomputed by the render delegate after the skinning computation. Depending on the renderer's settings, the Hydra 1 behavior might produce faceted or smooth normals (as mentioned in #3406), but this at least avoids obvious shading issues from using the rest geometry's normals as-is

Note that this will have a proper fix once PRs such as #3664 land in the future to add support for skinning normals, but I'll still post a PR with my patch to match the Hydra 1 behavior in case it's useful in the meantime.

Steps to Reproduce

  • Download the attached scene test_lbs_normals.usda.zip which adds normals to test_lbs.usda from the USD repo
  • Run env USDIMAGINGGL_ENGINE_ENABLE_SCENE_INDEX=0 usdview test_lbs_normals.usda --camera /cameras/camera1 --cf 86, and with USDIMAGINGGL_ENGINE_ENABLE_SCENE_INDEX=1 to compare the results with Hydra 2 (attached below are the results)

Hydra 1:
Image

Hydra 2:

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions