Point instancing workflows
3396 4 0- AndyW
- 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?
- tricecold
- 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.
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
CG Supervisor/ Sr. FX TD /
https://gumroad.com/timvfx [gumroad.com]
www.timucinozger.com
- AndyW
- Member
- 336 posts
- Joined: Dec. 2014
- Offline
- jsmack
- 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.
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
- AndyW
- Member
- 336 posts
- Joined: Dec. 2014
- Offline
-
- Quick Links