Jump to content

Can this be done in Houdini?


hopbin9

Recommended Posts

Do you think something like this could be done in Houdini? if so, how?

Oh, oh, a surefire way to get a Houdnik's attention :)

It should be easy to create a POP VOP that calculates and accumulates the basic mass<-> mass forces, the merging of masses might be a bit trickier.

When I first saw that video I started thinking whether it could be sped up with a FLIP philosophy. In fact I do have something working - I'll post on my lab thread.

Link to comment
Share on other sites

I'm pretty sure that's possible. It may even be fast.

As a first thought I think you could do a gravitational field, similar to what Petz posted in an (open) question a while back about creating a scalar field from a vector field. So, lots of points, or clusters of points, adding their gravitational force to a field and then simply use it as a force in a dopnet.

One day I may try this.

Link to comment
Share on other sites

Turing Complete !!

Respect.

I would love to take that CS course, where programming language will be H.

As a final group project folks get to choose, to implement killer features of xsi,maya,max,lw in houdini. :D

Cheers,

ps - Is it not true that development of ice module was largely inspired by vops ?

Edited by vectorblur
Link to comment
Share on other sites

I'm pretty sure that's possible. It may even be fast.

As a first thought I think you could do a gravitational field, similar to what Petz posted in an (open) question a while back about creating a scalar field from a vector field. So, lots of points, or clusters of points, adding their gravitational force to a field and then simply use it as a force in a dopnet.

Something like this? ;)

Link to comment
Share on other sites

Hi Guys,

I stumbled upon this article by Guillaume Laforge, Not sure if he is on the forum too.

http://frenchdog.wordpress.com/2009/09/12/ice-vs-vop/

What do big boys think ?

Does this comparison still holds fair ? considering it was done ~ 3 years ago.

I am sure there must have been discussions in the past, somewhere deep down in treasure chest.

But things have changed rather changing.

Any insights will be useful for new kids.

Cheers,

  • Like 1
Link to comment
Share on other sites

@vectorblur, I am also looking for similar comparisons but that's the only one. You would think that by now, there would be many more.

Also that guy seems very biased towards ICE. I mean he used vops, but why not write custom code in vex and see how it compares?

What I would like to see is, this kind of comparison done between a hardcore ICE and hardcore Houdini guy doing their best. :)

Link to comment
Share on other sites

If you were to create a VOP SOP that applied Newton's Law of gravitation to each particle, then the VOP would need to process each pair of particles. So that the force of attraction is calculated between the two, but the problem is that VOP SOP only performs cooking on each particle.

Is it possible somehow to nest a VOP SOP inside a VOP SOP so that you can work on all the pairs?

I understand this will be exponentially slow the greater the particle count.

Link to comment
Share on other sites

Just do a point cloud loop inside the voppop. You'll end up doing each pairwise calculation twice, but you'll be killed by the N^2 anyway :)

It's the 'just' that makes me suspicious.

Last time I tried it looked like point clouds in vops don't take the op:// syntax.

You'd have to do a pop merge to sops and get them back, that's what various threads suggested.

But this only works once, so you can't do any subsequent lookups.

However I'd like to be wrong here.

Link to comment
Share on other sites

Thats why you should do it with fields. You do it per particle and then just add. No need for every pair in the system. Just treat fields like functions, conceptually, and it makes sense.

But even pairwise, you can probably dismiss most particles, because their contribution falls off inversely with the square of the distance, and work just on bunches.

If the volumes in which the fields reside are big and the particles create sparse, thin structures you could further speed it up by only calculating relevant areas of the volumes, similar to whats happening in volume shaders where you check density before running a whole lot of code on it (if density!=0 ...)

Edited by Macha
Link to comment
Share on other sites

Thats why you should do it with fields. You do it per particle and then just add. No need for every pair in the system. Just treat fields like functions, conceptually, and it makes sense.

To which fields to you refer? Metaball fields? and how would you create them?

Link to comment
Share on other sites

It's the 'just' that makes me suspicious.

Last time I tried it looked like point clouds in vops don't take the op:// syntax.

You'd have to do a pop merge to sops and get them back, that's what various threads suggested.

Or, in a pinch write to disk and read.

If you're not going to do any "Only 100 nearest particles" kind of optimizations, you don't even need point cloud functions, just plain old Get Attribute is enough.

In fact you shouldn't only regard the nearest particles - even though the far-away particles have ever diminishing effects, there usually is a lot more of them, and the accumulated force plays a role in the large scale evolution of the sim.

Here's probably the simplest naive particle-to-particle implementation.

I wish I could post the volume one, but at the moment I can't.

naive_grav_v01.jpg

[.hip]

To which fields to you refer? Metaball fields? and how would you create them?

Two fields, one for accumulated mass and one for the resulting force. See here.

A mid-range option would be to only accumulate the mass, and then calculate an independent force for each particle against the accumulated voxels.

(complexity would particles*voxels, pure volume implementation is voxels*voxels and the naive one is particles*particles)

I think a good idea might be to calculate all the rest with the volumes, but do the nearest ones particle-to-particle?

Link to comment
Share on other sites

If the volumes in which the fields reside are big and the particles create sparse, thin structures you could further speed it up by only calculating relevant areas of the volumes, similar to whats happening in volume shaders where you check density before running a whole lot of code on it (if density!=0 ...)

Yea, and the bestest way would be to do

.
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...