Autodesk / Autodesk/maya-usd

Recognize "ArnoldProceduralCustom" on export for Maya-usd

Open
#3,122 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Wolfram Language
Stars
905
Forks
223
Avg merge
2d 9h
Merged PRs (30d)
17

Description

Hello everyone,

Recently we've been testing viability of using Yeti Fur (https://peregrinelabs.com/products/yeti) for rending hair and fur.

We noticed that the Arnold-USD plugin will recognize the "pgYetiMaya" nodes as an "ArnoldProceduralCustom" on export, but when using the Maya-usd the result is just an empty Xform prim.

I'm currently testing with:

Windows 10
Maya 2024.1
Maya-usd 0.23.0
MtoA 5.3.1.1
Yeti 4.2.7

Example Export from Maya-usd:

```
def Xform "hair_test_master" (
kind = "assembly"
)
{
def Xform "hair"
{
def Xform "body_fur"
{
}
}
}
```

Example Export from Arnold-USD

```
def Xform "hair_test_master"
{
def Xform "hair"
{
def Xform "body_fur"
{
def ArnoldProceduralCustom "body_furShape"
{
float arnold:density = 10
string arnold:filename = "/PATH/TO/CACHE/hair_test.%04d.fur"
int arnold:frame.timeSamples = {
1: 1,
2: 2,
3: 3,
4: 4,
5: 5,
6: 6,
7: 7,
8: 8,
9: 9,
10: 10,
}
uint arnold:id = 1155865197
float arnold:motion_end = 0
string arnold:node_entry = "pgYetiArnold"
float[] arnold:samples.timeSamples = {
1: [1],
2: [2],
3: [3],
4: [4],
5: [5],
6: [6],
7: [7],
8: [8],
9: [9],
10: [10],
}
int arnold:verbosity = 1
rel material:binding =
string primvars:dcc_name = "body_furShape" (
elementSize = 1
interpolation = "constant"
)
float primvars:min_pixel_width = 0 (
elementSize = 1
interpolation = "constant"
)
int primvars:mode = 0 (
elementSize = 1
interpolation = "constant"
)
string[] primvars:mtoa_shading_groups = ["fur_SG"] (
elementSize = 1
interpolation = "constant"
)
}
}
}
}
```

The results from the Arnold-USD export while not renderable within Maya or Houdini Solaris (as far as I can manage anyway), it is renderable via kick.

**Describe the solution you'd like**
Maya-usd export with the Arnold "plugin configuration option" would recognize and export the "ArnoldProceduralCustom" nodes.

**Describe alternatives you've considered**
Currently a reason why we wouldn't just use the Arnold-USD export is in the way the export structures the layer. For example we find materials are added to the root instead of like how the Maya-usd export works where it will create a scope under the default prim. This is more convenient when multiple assets are referenced into a stage.

I'm hoping the Maya-usd plugin will support exporting "ArnoldProceduralCustom" nodes and follow the same pattern it does with materials and how they are binding, merging shapes and transforms etc.

I appreciate any insight into this and apologize if this should not be tagged as a feature request.

Cheers,

Jason Coelho

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the Maya-usd export with the listed Maya, Maya-usd, MtoA, and Yeti versions, then compare its empty Xform output with the Arnold-USD example. Trace the Maya-usd plugin configuration and export handling for ArnoldProceduralCustom nodes. Done means the configured export preserves the procedural node and its relevant attributes while retaining Maya-usd's layer and material structure.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.