Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

Maya-Arnold Skips Subdivision on Gaffer USD Objects

80 views
Skip to first unread message

Sudarshan Havale

unread,
Nov 26, 2024, 10:42:05 AM11/26/24
to gaffer-dev

Hi,

I encountered an issue where Arnold does not render subdivision information when rendering a Gaffer-exported cube.usd in Maya. It seems the subdivision iteration and subdivision type information might not be written in the format Arnold expects.

To investigate, I exported a cube from Gaffer and Maya using Arnold 7.3.5.0 and noticed differences in the USD data, particularly in the subdivision information. ( highlighted in the attached snapshot

gaffer_vs_maya_subdiv_usd.PNG

To confirm, I manually modified the Gaffer-exported USD file by adding the following lines:

uchar primvars:arnold:subdiv_iterations = 3 
token primvars:arnold:subdiv_type = "catclark"

After this change, the Gaffer-exported USD was rendered correctly in Maya with subdivision settings.

Is this something that needs to be addressed in the GafferSceneWrite or USDLayerWrite nodes? We would greatly appreciate your assistance in resolving this problem.

Thanks in advance for your support!

- Sudarshan

cube_subdiv_maya.usda
cube_subdiv_gaffer.usda
cube_subdiv_gaffer_modified.usda

Sudarshan Havale

unread,
Nov 27, 2024, 2:44:27 AM11/27/24
to gaffer-dev
Also, UVs seem to be missing in the gaffer written sube.usd, I don't know if that's the bug bug, but I wanted to report this as well.

John Haddon

unread,
Nov 27, 2024, 5:16:44 AM11/27/24
to gaffe...@googlegroups.com
Hi Sudarshan,

Gaffer's attributes predate the USD ones here, and we chose to prefix them with the Arnold node type they refer to - 'polymesh:subdiv_iterations' rather than just 'subdiv_iterations'. Unfortunately, when arnold-usd came along it chose a different convention. Our intention is to rejig Gaffer to align with the USD conventions, but as usual the problem is getting there without breaking existing use cases, so this isn't an especially high priority for us right now. In the meantime, you may have some luck using a ShuffleAttributes node to shuffle from 'ai:polymesh:subdiv_iterations' to 'ai:subdiv_iterations'. I don't know if the difference in data types (int vs uchar) will matter there - let us know what you find.


Gaffer doesn't author 'arnold:subdiv_type' at all, because we prefer to use the first-class 'UsdGeomMesh.subdivisionScheme' property instead - this applies to all renderers, and when such a renderer-agnostic setting exists we prefer that to lots of different renderer-specific settings. If 'arnold-usd' doesn't respect 'subdivisionScheme' then I would encourage you to file a bug with them. But in the meantime you may be able to use a CustomAttributes node to set 'ai:subdiv_type' in Gaffer.

As for UVs, they are certainly being written out by Gaffer. They are in your screenshot as 'primvars:st', and importing 'cube_subdiv_gaffer.usda' back in to Gaffer shows them clearly in the UVInspector. But I wonder if the time sampling is throwing Arnold off? Omitting unnecessary time sampling is something we would like to get sorted. If you could do an experiment to see if that is the problem, that would be helpful.

Cheers...
John
 
On Wed, Nov 27, 2024 at 7:44 AM Sudarshan Havale <sudarsh...@gmail.com> wrote:
Also, UVs seem to be missing in the gaffer written sube.usd, I don't know if that's the bug bug, but I wanted to report this as well.

On Tuesday, November 26, 2024 at 9:12:05 PM UTC+5:30 Sudarshan Havale wrote:

Hi,

I encountered an issue where Arnold does not render subdivision information when rendering a Gaffer-exported cube.usd in Maya. It seems the subdivision iteration and subdivision type information might not be written in the format Arnold expects.

To investigate, I exported a cube from Gaffer and Maya using Arnold 7.3.5.0 and noticed differences in the USD data, particularly in the subdivision information. ( highlighted in the attached snapshot

gaffer_vs_maya_subdiv_usd.PNG

To confirm, I manually modified the Gaffer-exported USD file by adding the following lines:

uchar primvars:arnold:subdiv_iterations = 3 
token primvars:arnold:subdiv_type = "catclark"

After this change, the Gaffer-exported USD was rendered correctly in Maya with subdivision settings.

Is this something that needs to be addressed in the GafferSceneWrite or USDLayerWrite nodes? We would greatly appreciate your assistance in resolving this problem.

Thanks in advance for your support!

- Sudarshan

--
You received this message because you are subscribed to the Google Groups "gaffer-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gaffer-dev+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/gaffer-dev/bc0cf48d-9014-42ec-9aec-52e1d029c128n%40googlegroups.com.

Sudarshan Havale

unread,
Nov 28, 2024, 2:39:02 AM11/28/24
to gaffer-dev

Hi John,

Thank you for your response.

I understand your point. Currently, I’m not aware of any ShuffleAttributes node in Maya, but I’ll double-check and get back to you. I’ll also try your other two suggestions and share my findings in this thread.

Thanks again! :)
Sudarshan

John Haddon

unread,
Nov 28, 2024, 5:40:59 AM11/28/24
to gaffe...@googlegroups.com

Currently, I’m not aware of any ShuffleAttributes node in Maya, but I’ll double-check and get back to you.

ShuffleAttributes is a Gaffer node - I was trying to suggest that you use that in Gaffer before exporting to Maya.
Cheers...
John

Sudarshan Havale

unread,
Nov 28, 2024, 7:17:01 AM11/28/24
to gaffer-dev
Oh, My bad. Thanks for the clarification. 
Reply all
Reply to author
Forward
0 new messages