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: 

Controlling suvdiv and displacement with Houdini attributes

Message 1 of 9
1192 Views, 8 Replies

Controlling suvdiv and displacement with Houdini attributes

Hi all

In Houdini, in it possible to control Arnold shape attributes such as suvdiv type and displacement height with geometry attributes? I had hoped it would be as simple as assigning a primitive attribute ar_subdiv_type with value catclark to enable subdivision but this doesn't work. I've seen a suggestion that this is possible with packed Alembics but I'm going to be running FX sims with this geometry so it has to be unpacked.



Labels (3)
Message 2 of 9

I don't know the answer off the top of my head, but it all depends on how HtoA translates the alembic.

If HtoA translates the alembic to a single polygon mesh, then that won't work. So I would export an ass file to check. A single mesh cannot have different subdiv settings for different polygons; the subdiv settings are per mesh.

// Stephen Blair
// Arnold Renderer Support
Message 3 of 9

Hi Stephen, thanks for your reply

There are no alembics involved in this case, just plain old Houdini geometry (in case that makes a difference?)


Message 4 of 9

Ah ok, that's what I get for answering just before I go to bed 😉

I use Houdini to support Arnold, it's not my regular DCC. So...when you say "geometry attributes" what does that mean?


A Geometry object can have Arnold Properties, or you can set the attributes. That's where HtoA is looking for the Arnold attributes.

// Stephen Blair
// Arnold Renderer Support
Message 5 of 9

Geometry attributes are arbitrary data of a given type that can be stored on points, primitives, vertices or the whole object (detail attributes). There's a reference to setting the subdiv_face_iterations attribute here:

I'd like to be able to control the attributes shown in your screengrab with these attributes on the geometry itself, just as you can with subdiv_face_iterations.

Message 6 of 9

subdiv_face_iterations is an array stored on the polygon mesh. One array element for each face.

The other subdiv settings are scalar values, stored on the polygon mesh. If you set amost subdiv parameter on primitives I don't think that will work. At best, one value would be used for the whole object (the polygon mesh).

// Stephen Blair
// Arnold Renderer Support
Message 7 of 9

These primitive attributes are picked up on alembic packed primitives.

But for regular Houdini geometry we don't look for these arnold parameters (subdiv_type or disp_height) on the houdini geometry itself as attributes, instead we only check the parameters defined on the OBJ properties.

Message 8 of 9

Hello Julian,

This works well with packed alembics.

I am curious about normal unpacked geometry: assigning different subdiv_face_iterations  values on different geometry gets picked up by arnold and it works (sometimes);

Exept for geometries that have subdiv_face_iterations  set to 0 : these don't get subdivided, but don't keep their original shape either: they just shrink..

(Assigning a creaseweight attribute does restore their original shape, but messes up the normals);

Would you know how to avoid shrinkage on geometries with a subdiv_face_iterations  set to 0 ?



Message 9 of 9

Can, I ask. How do I change or completely turn on and off easily subdivs on Alembic caches, without recaching it? Thx

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

Post to forums  

Autodesk Design & Make Report