question

Keith Kamholz avatar image
Keith Kamholz asked ·

Houdini instancing to Maya+Arnold

Hi!

I'm working on a big destruction scene in Houdini, and the lighter is using Maya + Arnold, and a cloud rendering service. I'm trying to figure out if there's any way to efficiently get all of these glass shards & debris instances to the lighter for rendering.

Things that don't seem to work:

- Alembic export from Houdini. As raw geometry, the caches are super massive, and when using packed geom it creates many many thousands of objects in Maya, and object per debris piece, which seems too heavy to be a viable option.

- ASS files exported from Houdini. I was hoping that the ASS files could maintain some internal instancing efficiency, but it seems like HtoA is converting all of the instanced geom into regular raw data. I've tried exporting the results of a Copy To Points & an actual Instance object, and they both result in large ASS files that grow as the emission grows. So they don't seem to actually maintain any instancing internally.

Is there some way to get this to work, or some good option that I haven't considered? I really don't want to have to do a bunch of bespoke instancing work in Maya to get the results to match what I'm getting in Houdini, and that would seem to be a pretty shoddy workflow in general.

I've also exported the individual instance objects as small individual ASS files, in case there's any way to just cache out the particles to an ASS, and get them to load the little ASS instances based on particle attributes or something. Haven't seen anything in the docs along those lines though.

Any input/ideas would be much appreciated. Thanks! :-)

~ Keith

arnoldhoudinihtoa
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Keith Kamholz avatar image
Keith Kamholz answered ·

One workaround I've seen in the past is to change the FX setup so that **all** of the glass shards & debris always exist, and they're just scaled down before "emission", and scaling up to become visible when they're supposed to emit.

For now I think I'll move forward with this... maybe in the future USD will make it easier to deal with such things?

Totally open to other suggestions that are less clunky than changing the FX setup to avoid changing topology! :-)

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Keith Kamholz avatar image
Keith Kamholz answered ·

It looks like the lighter won't be using Arnold after all for this project, but I'd still love to know how this would best be handled in an Arnold situation.

I know how to exported transformed packed geom to alembic efficiently, and that's working properly for the main destruction RBDs. However, for changing topology like debris and glass shatters, alembic doesn't seem to like the changing point count. It also doesn't save out any velocity data on the packed pieces, regardless of whether the velocity attribute is stored on points/vertices/prims.

So I guess the question expands a bit.... is there any way to get velocity motion blur working and leverage instanced geom? To use velocity motion blur are we forced to export raw unpacked geometry, which is incredibly heavy? I know this is probably a general alembic issue, with the alembic exporter discarding attributes on packed geom.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Julian Hodgson avatar image
Julian Hodgson answered ·

You could try exporting alembics from houdini using alembic instancing to reduce the file size.

If you use the primitive attribute s@path to name your geometry, and make sure Packed Transform is not set to Deforming Geometry, then the alembic file should use instancing.

Again, you'll have to turn on make_instance in maya (or set i@make_instance=1) to render these alembics.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Stephen Blair avatar image
Stephen Blair answered ·

Also, in Maya, the Alembic procedural (the gpuCache node) has a Make Instance parameter, which is off by default. So if your Alembic has instances, enable Make Instance.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Stephen Blair avatar image
Stephen Blair answered ·

Hi

For Copy to Points:

  • Copy to Points will give you ginstances, but not if your geometry is alembic packed geo (we're working on that now).
  • You have to select the “Pack and Instance” check box.

For Alembic:

  • It would be good if the alembic’s exported from houdini used the alembic instancing for packed geometry, then the alembic procedural should instance too (using make_instance).
  • To bring the Alembic into Maya, ideally you would use the gpuCache, because that creates just one node in the Maya scene. But gpuCache has a memory leak with large animated caches.
Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Welcome to the Arnold Answers community.

This is the place for Arnold renderer users everywhere to ask and answer rendering questions, and share knowledge about using Arnold, Arnold plugins, workflows and developing tools with Arnold.

If you are a new user to Arnold Answers, please first check out our FAQ and User Guide for more information.

When posting questions, please be sure to select the appropriate Space for your Arnold plugin and include the plugin version you are using.

Please include images, scene and log files whenever possible as this helps the community answer your questions.

Instructions for generating full verbosity log files are available for MtoA, MaxtoA, C4DtoA, HtoA, KtoA, and Kick.

If you are looking for Arnold Documentation and Support please visit the Arnold Support site.

To try Arnold please visit the Arnold Trial page.

Bottom No panel present for this section.