Arnold for Houdini Forum
Rendering with Arnold in Houdini and Solaris using the HtoA plug-in.
Showing results for 
Show  only  | Search instead for 
Did you mean: 

MaterialX operator not assigning Looks to packed alembic

Message 1 of 5
331 Views, 4 Replies

MaterialX operator not assigning Looks to packed alembic

Hi everyone
I'm trying to assign a Look with MaterialX in Houdini with HtoA

Houdini 18.5.462

I have a MaterialX operator connected to the Arnold ROP and assigning individual shaders works fine but requires multiple MaterialX nodes and multiple selection expressions.

Instead, I'm trying to use the assignments already defined in MaterialX file.

Here's the rub. When using the Arnold Procedural assigning Looks works fine, but when I try to load the geo as packed alembics through a regular GEO SOP, it does not work.

As I said before, assigning shaders with MaterialX on packed Alembics works fine as long as I split out each shader into it's own node and put a selection expression (lots of work) on each.

Opening the ASS files in a text editor for the Arnold Procedural Approach and the Packed Alembic Approach, the only difference that I could spot is this:

Packed Alembic ASS file

# created by /obj/asset_RENDER/alembic:0
name ^/obj/asset_RENDER/alembic:0^/testModel_asset/testmodelB_geo/testmodelB_geoShape

Procedural ASS File

# created by /obj/arnold_procedural1/procedural
name ^/obj/arnold_procedural1/procedural^/testModel_asset/testmodel_geo/testmodel_geoShape

The alembic approach has a ":" in the name. Could this really be the cause that the shaders won't assign?

The reason for not going with the Procedural is because we want to make positional, scale and other attribute changes without using Operators and even mixing in new geo on the fly.

Any help is welcome



Labels (4)
Message 2 of 5
in reply to: rune62C5R

I think I was able to decipher the Houdini lingo, but I'm still not sure I understand. Maybe you can upload the example scene and supporting files?

For ass files, wouldn't it be better to connect the materialX operator to the actual Arnold procedural?

Having a global operator with a * selection is going to try and apply itself to everything in the scene.

For a "geo [loaded] as packed alembics through a regular GEO SOP", every primitive in an alembic file will come out as a separate alembic procedural node. And the names of those alembic nodes will include the :0", ":1", ":2" ...

// Stephen Blair
// Arnold Renderer Support
Message 3 of 5
in reply to: rune62C5R

Yeah, it just doesn't work with the Alembic
Even with an ASS procedural, I get just one object with the material from the mtlx file. The other object doesn't get it.

// Stephen Blair
// Arnold Renderer Support
Message 4 of 5
in reply to: rune62C5R

Hi Stephen! I found the solution!

The reason it was working with the procedural was because I was "Including Operator Graph" directly on the procedural.


The GEO SOP Node does not have this feature in the same place as the procedural,


but I found it buried under Arnold -> Shape -> Procedurals


So yeah! Now both methods are working with a minimal amount of custom selections experessions having to be created or excessive nodes!

Message 5 of 5
in reply to: rune62C5R

Nice...we need to add about this to the docs!

// Stephen Blair
// Arnold Renderer Support

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums