Point instancing workflows

   3396   4   0
User Avatar
Member
336 posts
Joined: Dec. 2014
Offline
I'm curious about what people are finding to be the most efficient workflows for point instancing in H16. Specifically I need to instance animated objects, I have 10 objects example: obj_1.0001.bgeo.sc I'm guessing I'll need to store the file paths in a string array and use a for loop to set instancefile and/or instancenum?
User Avatar
Member
258 posts
Joined: July 2006
Offline
Hi, you can create a point attribute named like instancefile, each point can also have an integer attribute for the frame number you want to instance, then you can rebuilt your string with sprintf.

Gather these points to an empty geo node.
Drop in a shopnet and create an empty point instance
On geometry level, assign this procedural shader to the geometry tab.
Head of CG @ MPC
CG Supervisor/ Sr. FX TD /
https://gumroad.com/timvfx [gumroad.com]
www.timucinozger.com
User Avatar
Member
336 posts
Joined: Dec. 2014
Offline
Thanks for the tips, I was going that route but found it painfully slow in the scene assembly phase of rendering, perhaps because of something I'm not doing correctly
User Avatar
Member
7772 posts
Joined: Sept. 2011
Offline
I use packed disk primitives to do disk instancing. Packed disk primitives can be created in vex now. The filepath for the instance is set on the primitive intrinsic, also in vex. If the instances are not on disk, then packed geometries are used. Often with a compiled for loop duplicating packed geometries, and transforming them by points. I haven't used the old instancefile attribute workflow since packed disk primitives were added, so I am curious if there is any performance difference. If you have millions of instances, and the number of instances changes over time, then it can be intensive to use a technique that creates primitives each frame. If your number of instances is fixed, then it can be more efficient to create the packed primitives once, and transform them on subsequent frames.

Edit:
For the case of instanced animations, copying alembics to the instance points, and modifying the alembic time intrinsic to be the smoothest way to handle that.
Edited by jsmack - June 27, 2017 12:56:25
User Avatar
Member
336 posts
Joined: Dec. 2014
Offline
Sounds like that's a great workflow, I'll give that a go
  • Quick Links