Autodesk / Autodesk/arnold-usd

Arnold USD/Solaris shows surface artifacts on cached cloth geometry compared to other render engines

Open
#2,638 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
284
Forks
68
Avg merge
2d 19h
Merged PRs (30d)
14

Description

**Describe the bug**

Arnold USD / Solaris appears to interpret cached cloth/simulation geometry differently from Karma CPU and MoonRay, producing visible surface artifacts that look related to mesh normals, smoothing, subdivision, or geometry interpolation.

Using the same Houdini Solaris setup, same camera, same OCIO/display/view transform, same cached cloth geometry, and same/similar material assignment, Karma CPU and MoonRay render the cloth surface more coherently, while Arnold produces noticeably different surface shading with stronger speckled/broken-looking areas, harsher surface breakup, and an overall less stable interpretation of the cloth surface.

The issue is especially visible on folded cloth areas, where Arnold shows stronger noisy/faceted-looking surface artifacts or broken shading response. The same geometry appears significantly cleaner and more continuous in Karma CPU and MoonRay.

This seems separate from the lighting/falloff issue reported separately. This report is focused on geometry, normals, subdivision, smoothing, or mesh interpolation behavior in Arnold USD/Solaris.

**To Reproduce**

Steps to reproduce the behavior:

1. In Houdini Solaris, use cached cloth/simulation geometry with folded/high-curvature areas.

2. Assign a simple material or the same material across render delegates.

3. Render or preview the scene with Karma CPU.

4. Render or preview the same scene with MoonRay.

5. Render or preview the same scene with Arnold USD / Arnold Hydra delegate.

6. Compare the cloth surface shading using the same OCIO config, display, and view transform.

7. Observe that Arnold produces visibly different surface artifacts on the cloth mesh compared to Karma CPU and MoonRay.

I also tried several geometry-side fixes:

1. Recomputed normals using a Normal SOP before importing/rendering the geometry.

2. Tried render-time subdivision in Arnold.

3. Tried manually subdividing the geometry at SOP level before rendering.

4. Compared the results again in Solaris.

These changes affected the result, but did not fully resolve the Arnold artifacts. Render-time subdivision and SOP-level subdivision still produced visually unpleasant surface breakup/artifacts in Arnold.

**Expected behavior**

Arnold USD should interpret cached cloth/simulation meshes consistently enough that the same geometry does not produce substantially different surface artifacts compared to Karma CPU and MoonRay, unless there is an unsupported USD mesh/subdivision/normal interpolation feature or a renderer-specific requirement.

Some renderer-to-renderer differences are expected, but the current Arnold result appears to expose or amplify surface artifacts that are not visible, or are much less visible, in Karma CPU and MoonRay.

If this behavior is expected due to unsupported normals, subdivision scheme, primvar interpolation, USD mesh settings, smoothing behavior, or Arnold-specific subdivision requirements, it would be useful to know which authored parameter or missing attribute is responsible.

**Screenshots**

Attached screenshots show comparisons between:

1. Karma CPU render of the cloth geometry
2. MoonRay render of the same cloth geometry
3. Arnold render of the same cloth geometry
4. Arnold render/settings with render-time subdivision enabled

In the screenshots, Karma CPU and MoonRay render the cloth surface more coherently, while Arnold shows noticeably stronger surface breakup/noisy artifacts on the cloth mesh.

Image

Image

Image

Image

**Used Software Versions**

- Arnold / HtoA: `6.5.1.1`
- Arnold USD / Hydra Delegate: `included with HtoA 6.5.1.1`
- Houdini: `21.0.671`
- USD: `Houdini-bundled USD version`
- Compiler: `Not applicable — using prebuilt Houdini/HtoA packages`
- OS: `macOS 26.4.1`
- Hardware: `Apple Silicon / M2`
- Any 3rd-party app: `SideFX Houdini Solaris`

**Additional context**

The geometry is cached cloth/simulation geometry brought into Solaris. The issue appears related to how Arnold USD interprets the mesh surface rather than only lighting or color management.

I tested the following attempted fixes:

- recomputing normals with a Normal SOP

- render-time subdivision in Arnold

- manual SOP-level subdivision before rendering

- comparing the same cached cloth geometry across Karma CPU, MoonRay, and Arnold

Karma CPU and MoonRay remain relatively close in terms of surface continuity and perceived mesh interpretation, while Arnold appears to be the outlier.

Possible areas to investigate:

- USD mesh normal interpretation

- missing or differently interpreted normals

- subdivision scheme handling

- subdivision interpolation settings

- Catmull-Clark subdivision behavior

- primvar interpolation

- smoothing behavior

- autobump / bump visibility

- cached USD/USDC geometry interpretation

- Arnold USD delegate mesh translation

- handling of simulated cloth topology / cached animated geometry

The same scene is being viewed through the same OCIO/display/view setup. The issue does not appear to be a display-transform mismatch.

At the moment I am reporting this based on viewport/IPR comparisons and screenshots. I can try to provide a reduced reproduction scene later if required.

Contributor guide

Open the contributing guide

Research direction

Start in the Arnold USD/Hydra delegate path with the cached cloth geometry in Houdini Solaris, comparing mesh normals, subdivision, interpolation, and primvars against Karma CPU and MoonRay. No source files or tests are named; done should be a reduced reproduction that identifies the responsible authored setting or confirms the Arnold-specific interpretation causing the artifacts.

Written by the indexing model from the issue text.

Assessment

Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.