Efficient animated geo saving, retime and variants

   463   5   2
User Avatar
Member
18 posts
Joined: 3月 2016
オフライン
Hi - hope someone can help. I've got some animated foliage (cactus spikes) that I want to scatter over a large area. There's 16 variants, and approx 5,000 spikes.
I want to control the animation with a falloff, so the spikes open and close in waves.

First thought - Alembic Delayed Load! Perfect. Variant attribute is saved nicely, copy to points works great - and using setprimintrinsic(0, "abcframe", @primnum, @retime, "set") to control time. However, this causes glitching and error issues - there's aggressive caching and the instances aren't responding correctly.

So... packed disk sequences. Great - using setprimintrinsic(0, "index", @primnum, targetFrame); I can control the frame with an attribute.
However, when loading the geo is treated as one object, and I can't use the variant attribute. It places all 16 animations on each of the 5000 points.

So the question - is there a way to instance packed disk sequences respecting a variant attribute, and allow for control of time? Or should I save the 16 variations as individual sequences and load them that way?
User Avatar
Member
413 posts
Joined: 4月 2017
オフライン
Packed Disk Sequences are deprecated and you shouldn't rely on them.

If you're not using Solaris the best thing to do is copy the same Alembic packed primitive to every point, then set the abcframe intrinsic like you were after the copy operation. Don't expect the viewport to respond properly, but the render will work as you'd expect. For quick debugging in the viewport you're best off unpacking a handful of primitives as a test.

If this is still extremely heavy you might have too many variants. Even when instancing the same Alembic to every point, each unique time offset is more or less a completely new geometry. If you can limit the number of variants you're instancing by quantizing your falloff animation offsets you'll save a lot of time.
MOPs (Motion Operators for Houdini): http://www.motionoperators.com [www.motionoperators.com]
User Avatar
Member
18 posts
Joined: 3月 2016
オフライン
Ah thanks for that advice - I didn't know that about packed disk sequences.

Using Redshift on this one - tried RSProxies and building the instancefile as a string... but it got really fiddly, didn't let me override materials for some reason and gave me no editor feedback.

Disk sequences worked well enough this time but I'll give Alembics a go on the next one.
User Avatar
Member
9530 posts
Joined: 7月 2007
オフライン
toadstorm
Packed Disk Sequences are deprecated and you shouldn't rely on them.
never heard of this, is there an official statement somewhere?
I have been using Packed Disk sequences without any issues, they are especially useful for ad-hoc sequences created from set of geometry files composed in any custom order and also support interpolation and out of range behavior, so would definitely be a shame if they were deprecated
Tomas Slancik
CG Supervisor
Framestore, NY
User Avatar
Member
413 posts
Joined: 4月 2017
オフライン
I'll defer to your expertise on this of course, but I thought support for these as actual instances was limited to Mantra? I'm not aware of any third party render engines that natively support packed disk sequences specifically, but I also haven't looked for updates in a while.
MOPs (Motion Operators for Houdini): http://www.motionoperators.com [www.motionoperators.com]
User Avatar
Member
9530 posts
Joined: 7月 2007
オフライン
that's true that renderers often haven't implemented them which can be painful and a valid reason for not using them

I mostly meant that within Houdini they are still valid and it's more a question of more tools taking advantage of them including easy conversion to usd value clips for USD based workflows, which is one of my RFEs
Tomas Slancik
CG Supervisor
Framestore, NY
  • Quick Links