Skip to content

Smooth Catmull-Clark meshes at refinement zero - #11

Draft
nicolaspopravka wants to merge 1 commit into
OpenMoonRay:mainfrom
nicolaspopravka:fix-refine-zero-smooth-normals
Draft

Smooth Catmull-Clark meshes at refinement zero#11
nicolaspopravka wants to merge 1 commit into
OpenMoonRay:mainfrom
nicolaspopravka:fix-refine-zero-smooth-normals

Conversation

@nicolaspopravka

Copy link
Copy Markdown

Compatibility:

patch

Issues/Tickets:

N/A

Release notes comment:

Preserve smooth shading for Catmull-Clark meshes when Hydra refinement is set to zero.

Comments for the reviewer:

At refinement level zero, hdMoonRay disables subdivision and also disabled generated smooth normals. This caused Catmull-Clark meshes without authored normals to render with faceted shading.

This change keeps subdivision disabled at refinement zero but enables MoonRay's generated smooth normals when the mesh:

  • uses the Catmull-Clark subdivision scheme;
  • is not explicitly using a flat-shaded representation; and
  • is not affected by the forcePolygon setting.

Meshes with subdivision scheme none, explicitly flat-shaded meshes, and meshes rendered with forcePolygon remain flat.

Validation performed:

  • The ALab benchmark scene was rendered with the patched hdMoonRay build. The foam hand and other affected Catmull-Clark meshes returned to smooth shading consistent with the 2024 reference.

The ALab comparison is available at:
https://github.com/nicolaspopravka/usd-render-benchmark/tree/test/cy2025-moonray-only

Look or scene setup change:

This intentionally changes Catmull-Clark meshes rendered at refinement zero from faceted to smooth shading when they do not provide explicit normals. RATS has not been run locally and will require upstream validation.

Special notes for production:

No effect is expected for refined subdivision meshes, subdivision scheme none, explicitly flat-shaded representations, or forcePolygon rendering.

Attention/Reviewers:

AI Assisted Development:

Assisted-by: OpenAI Codex / GPT-5

Codex was used to investigate the issue, implement portions of the change, and draft the initial description. I reviewed and tested the resulting changes and take responsibility for the contribution.

Checklist:

  • Documentation has been updated.
  • Includes new unit tests.
  • Includes new RATS tests.

Signed-off-by: Nicolas Popravka <nicolaspopravka@gmail.com>
@linux-foundation-easycla

linux-foundation-easycla Bot commented Aug 12, 2026

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

  • ✅ login: nicolaspopravka / name: Nicolas Popravka (571e184)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant