More efficient way of time offsetting copy's

   6809   8   3
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
First I wish you all a merry Christmas!

I have one loopable model instanced across a surface and I want to offset the animation without loss in performance.

When using copy stamp my performace decreased drastically.

For full point instancing I cannot use instancepoint() because it only works on object level.

I wonder if someone has an efficient technique this.

Cheers
User Avatar
Member
443 posts
Joined: Sept. 2012
Offline
You can pack it before copying.

If you have fewer objects, you can load those in separate objects.


http://vimeo.com/52551778 [vimeo.com]
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
I always use pack before copying but this is not exactly what I meant.
I made a quick file to show you what I mean.

In this file you can see three different scenarios:
- first one is regular copy stamping for random size and rotation
- second one is the same size and rotation but this is done differently (look at huge performance increase)
- the third one is I only stamped the timeoffset (look at decrease in performance again)

Attachments:
timeoffset.hipnc (187.7 KB)

User Avatar
Member
948 posts
Joined: April 2008
Offline
I don't think there's just one definitive way to control, visualize, make and render copies efficiently, there's always a particular solution for each particular situation IMHO, in the end it depends of what kind of effect you want.
Thanks to Houdini you can have this kind of flexibility in a lot of situations.

Most of times I give up a viewport representation and real time feedback for a more efficient way to render and control lots of copies, Well but that's just me.

Off course you can have both but I find it difficult to find 100% of efficiency on both in 100% of all situations.

Here are some of my ideas for your kind of situation, I hope that helps anyway let me know.

Cheers!

Attachments:
timeoffset_262.hipnc (532.0 KB)

https://vimeo.com/user2163076 [vimeo.com]
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
Thanks for your response mzigaib.

It's actually not about performance in the viewport, I'm more bother about the cooking time. This is a low demanding scene, image I have 1.000.000 animated objects. Copy stamping will fail at huge values with huge geometry.

The only way for me to get this to run stable is to export some objects with different time offsets and copy them seperately in seperate copy sops.

Time offsettings would be too slow with copy stamping, I've also tried this with the instance node. First export different variations of a model, create an attribute to switch the file paths at render time. But when I reach extreme amounts mantra will eventually choke on a 24GB system.

Even when I export mantra archive with ifd material and use delayed load procedural.

I think the only fast way is to have seperate instance nodes or seperate copy nodes, I was thinking about writing a simple python script to do this.
User Avatar
Member
948 posts
Joined: April 2008
Offline
I don't see the problem that you are describing with the instance node, with the example I've send you it starts to render almost instantly.

I've done shots with even more complex geometry, like crowds with different animations and textures, which rendered fine without bottle necks like you are saying, can you post a sample file with the problem that you are describing?

But yeah saving the geometry with animation would be a way to go, you could have a different optimized system that doesn't render just to preview your geometry.
https://vimeo.com/user2163076 [vimeo.com]
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
Your file instantly crashes somehow (multiple times), I will try again tomorrow after work!
User Avatar
Member
948 posts
Joined: April 2008
Offline
I am using the latest build of Houdini 621, maybe you are using an older version?
https://vimeo.com/user2163076 [vimeo.com]
User Avatar
Member
245 posts
Joined: Sept. 2011
Offline
Somehow the caching actually seems to be working!

I'm going to try and expand this technique and test it out over a render farm perhaps. I will get back to you on this, thanks!
  • Quick Links