Jump to content

Houdini crowd


joejazz

Recommended Posts

inspired by the talented ball project, I'm using houdini to made a crowd, the idea is basically to generate forms from a bunch of people, Gears for example.

I have made it work but maybe there are another solutions to make it better , because I'm running in optimization problems; the simulation is too slow , having just 200 peoples, each frame of the simulation takes about one hour to compute!!!

what Im doing is the following:

first I use 13 different Models , import from a FBX file that has point cache of the geometry, this cache consist urn 6 different cycles (the cycles were made in maya then I exported to FBX with cache), then in the chop network, I trim them, getting 6 animations from each file, I use the Cycle chop to make a cycle of the animation, then I use the Shift Chop to vary the cycle for each person in the simulation, and finally I use a stretch chop to change the velocity.

for placing ,moving and handling the decisions of which model use, cycle, velocity cycle, Hue shift etc. I use a copy shop to copy each model on each particle using stamp functions to communicate the decisions made in pop to the model's chop operator. there is wen the tinges get very slow.

ca some one helpmeet to optimize this cooking proses?,or ther is another way to make th same result?.

I think ha the problem lays in the chop network, because each model have about 2000 points, so it have 2000 curves in the chop network that most be cycled , offseted and streched but maybe is another ting going on!

the .hipnc is about 150mb Im trying to store that in a server so you can have a look .

Thank you so much!!

here is also the video

Finally the files

http://clientes.clusterstudio.com/public/

one for the hipnc One for the caches

HoudiniMassive.mov

Edited by joejazz
Link to comment
Share on other sites

Looking good!

But yes 1 hour per frame just for simulation is quite a lot :).

So how to speed it up?

Massive approaches crowds in the following way (and all of this is possible with houdini and mantra too):

- Rather than interpolating between the points of the geometry, you can interpolate between the joints of the skeleton. That way you have a lot less data to deal with in chops.

- The geometry itself is skinned and weighted in Massive.

- For rendering delayed read archives are created. Which means as much as: only load the geometry from disk that needs to be loaded.

Read Chapter 4 (Procedural Primitives) of this pdf:

http://pharr.org/matt/notes/sig01c48.pdf

This is the way I would do it:

Bake out a point cloud every frame with some moving points. These are the template points on which you will "copy" you geometry. You will need attributes on the points that define velocity, orientation, the animation frame, the geometry id, the material id.

Then using the hdk you can write a dso or you can use a mantra run program. For basic tests you can use instancing and delayed load. The tricky bit comes from the variation and the retiming. This needs to be done within your run program or your dso. See that pdf for an example. There are some good examples in the hdk to get started on making a procedural that makes another procedural - also the clusterThis helps as an example.

Good luck!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...