flock of fishes question!

   20338   16   2
User Avatar
Member
8 posts
Joined: 11月 2010
Offline
Good day. I am new to Houdini.
I want to create flock of fishes. I use POP to make particles follow to leader and interact node.
But I want to make fishes avoid obstacles such as rocks big fishes end etc… I already look at turn node tutorial in the help but it is didnt work correctly with the follow node.
How I can implement in Houdini correct flow around obstacles?? May be search closest point on obstacle surface look at the normal and move particles in oposite direction…. but i dont know how to implement it ((
I found this http://frenchdog.wordpress.com/category/dev/houdini/ [frenchdog.wordpress.com] there is bunny flow test made in vex but what was done inside vex didnt explained… Need help!
User Avatar
Member
53 posts
Joined: 10月 2010
Offline
Well,
i'm also playing a bit with fish schooling, and not yet thinking at obstacles.
A simple way is an attractor node, where the soppath look to a Point SOP.
Then in the force tab you have normal/edge and other forces to play with.
is a simple way, but here it works.
I'm curious to hear the best alternative,
that let have greater control.
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them?
User Avatar
Member
47 posts
Joined: 5月 2009
Offline
i made a post on odforce while ago on this matter, check it here:
http://forums.odforce.net/index.php?/topic/11329-parting-particles-around-an-object/page__p__73763&#entry73763 [forums.odforce.net]

heres also a little update on the voppop force. scene is slightly messy but behaviour is better than in the previous version

Kustaa

Attachments:
goalparts_voppopGlide.hipnc (272.4 KB)

User Avatar
Member
8 posts
Joined: 11月 2010
Offline
Kustaa thank you very much!! I have already found your scene with voppop force and here is result http://www.youtube.com/watch?v=F6ylHwYQX_M [youtube.com] … And tnx for upate on my way to learn more. Thank You.
User Avatar
Member
8 posts
Joined: 11月 2010
Offline
I am stuck ((
I am trying to implement fish schooling by boids. and stuck with the fist rule
http://www.openprocessing.org/visuals/?visualID=8676 [openprocessing.org] - thisi what it must be finished and here is the pseudocode
http://www.vergenet.net/~conrad/boids/pseudocode.html [vergenet.net]
saw there is Rule 1: Boids try to fly towards the centre of mass of neighbouring boids.
Saw we have 100 particles for example. saw we need to sum all particle position except one and divide on particle count -1, for each particle….
Any ideas how it can be made in vop pop, already break my head :?: :?: :?:
User Avatar
Member
257 posts
Joined: 11月 2007
Offline
pointclouds and pcfilter are your friends. Do a search here and on odforce, I'm sure you'll find plenty.

Have a look at this (it's a fun file ):
http://forums.odforce.net/index.php?/topic/10434-pop-loot-and-looters/page__view__findpost__p__67741 [forums.odforce.net]

and
http://forums.odforce.net/index.php?/topic/10603-point-clouds/page__hl__looters__fromsearch__1 [forums.odforce.net]

Also when it comes to rendering you can do this (and many more):
http://www.peterclaes.be/blog/wp-content/uploads/2010/08/fish_03.jpg [peterclaes.be]

with this:
http://www.peterclaes.be/blog/?p=151 [peterclaes.be]

Also I'm making some tutorials on how to do all this stuff, but the above should already help you lots. Have fun!
Cg Supervisor | Effects Supervisor | Expert Technical Artist at Infinity Ward
https://www.linkedin.com/in/peter-claes-10a4854/ [www.linkedin.com]
User Avatar
Member
53 posts
Joined: 10月 2010
Offline
Thanks kustaa,
i'm trying to study your file especially the voppop node, as i'm new to
houdini and imagine vex/vop nodes at first contact…
and thanks pclaes for your resources as they use similar techniques,
…so generating points (scatter or pointclouds or SDFvolumes) becomes
usefull informations to use in your vop networks… with math knowledge
at your side you'll have unlimited control.
So i've found a thesis : http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Cashmore/MichaelCashmore-Thesis.pdf [nccastaff.bournemouth.ac.uk]

from Michael Cashmore, where it says:

4.4 Limitations of SDF Volumes
For the majority of cases generating an SDF volume as a way to keep the particles on the surface of
the geometry works very well, however there are some limitations to this method. Geometry with
smaller, more intricate details makes it difficult to generate a good SDF volume. With the example of
the troll model in figure 8 areas such as fingers and the mouth have finer detail. Trying to generate a
satisfactory volume from these parts becomes problematic. The Isooffset SOP which creates the SDF
volume allows the resolution of the volume to be increased; this is an option which the tool passes
onto the user. Increasing the resolution helps to decrease the problem and for the examples
generated for this project produce more than satisfactory results. However if geometry that was
more complex was used no matter how high the resolution was set the outcome would never reach
a satisfactory level. Without being able to generate a good enough SDF volume the particles would
be allowed to enter geometry creating growth that would go inside the geometry.

Now i believe that i want to study in depth houdini , so i cant avoid to deepen
these topics,but yet i wonder if there are other ways to achieve avoid obstacles with particles and geometry, just because the potential of houdini are endless!
bye
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them?
User Avatar
Member
257 posts
Joined: 11月 2007
Offline
eh eh, good to see Michaels' thesis is helping you .
In regards to the sdf, you could generate several smaller high detailed sdf of areas that need more detail and then lookup a different sdf depending on where the particle is in space.

In the same way if you define a rough sdf for the entire model, you can find if a particle is within proximity or not. If it is not within proximity than it does not need to do all the more expensive lookups against a higher detail sdf.

It's kind of an adaptive lookup. Each time you check if it is close to the model, potentially setting some kind of flag that if a point was using the highest detail sdf in the last frame it will need to do it again this frame, then every 5 frames or so you check to see if it still needs to use the high detailed sdf.

Other things in regards to collisions is the collision pop and the state pop. Together you can trigger some cool stuff with that, but the collisions are not always accurate.

I found particle collisions to be much more accurate in dops than in pops. But they are a bit slower as you are dealing with sdf generation for the collision objects in dops.

There are two things here: collisions and avoidance, they are not necessarily the same. From a boids point of view, avoidance should always take place and collisions should take place when avoidance fails. Avoidance is a behavior, where collisions are a physical property. They are related in the sense that in order to have good avoidance you need to predict collisions and make use of some of the same math.

Read some papers by Craig Reynolds and there are some other good descriptions and algorithms here:
http://www.amazon.co.uk/Computer-Animation-Algorithms-Techniques-Kaufmann/dp/0125320000/ref=cm_lmf_tit_3_rdssss0 [amazon.co.uk]
and
http://www.amazon.co.uk/Programming-Game-Example-Mat-Buckland/dp/1556220782/ref=cm_lmf_tit_22_rdssss0 [amazon.co.uk]

(if you are interested in more maths and actual implementation there are more books in a list I compiled here: http://www.amazon.co.uk/Technical-Directors-books/lm/R3ES60SQKYX1EM/ref=cm_lmt_dtpa_f_1_rdssss0 [amazon.co.uk] )
Cg Supervisor | Effects Supervisor | Expert Technical Artist at Infinity Ward
https://www.linkedin.com/in/peter-claes-10a4854/ [www.linkedin.com]
User Avatar
Member
401 posts
Joined:
Offline
To me this was very helpful:
http://libcinder.org/docs/dev/flocking_chapter2.html [libcinder.org]
this is not a science fair.
User Avatar
Member
8 posts
Joined: 11月 2010
Offline
hmm RDG thanks for the link…. with it I was able to make nice fish flocking expresions in maya. But need to make it in houdini btw. Hoe can I get specific particles positions and velocity and operate with them like in maya

Saw we must in common iterate all particles and make operations which i made in maya.
How i can do it in pops? like one in maya - getParticleAttr -at position particleShape2.pt`
Edited by - 2010年11月23日 07:55:55
User Avatar
Member
401 posts
Joined:
Offline
Have look at voppops for a network based approach.
Or create a vex particle operator via Edit->New Operator Type and put something like this into the code tab:


pop
rdg_growth_0_1(
float someDistance=0.2
{
int i = 0;
int _end = Npt;
int _step = 1;

int s2;
int close = 0;

for( ;i < _end; i+=_step )
{
if ( i != ptnum && close != 1 )
{
vector _otherP;
s2 = import( “P”, _otherP, 0, i );

if( s2 && distance( P, _otherP ) <= someDistance )
{
close = 1;
}

}
}
vector vtemp = { 0, 0, 0 };

if ( close == 1 )
{
v = vtemp;

}
this is not a science fair.
User Avatar
Member
8 posts
Joined: 11月 2010
Offline
i am working on network implementation ans stuck how I can make this
avoid1 = avoid1+c2*F2;
c2+F2 - is no problem just multiply
+ avoid1 - add node
but how can add all the information to avoid1 from all the particles???
User Avatar
Member
53 posts
Joined: 10月 2010
Offline
…Ohh thanks pclaes, dont know you are the owner of a bookstore
…just kidding, now i know some gifts to myself this christmas!
before becoming a math expert…
…In the meantime I will have forgotten to be a good 3d artist ,
i'm playing with collision pop / state pop / attractor pop / and
thought i got good results , you're right pclaes :
“ Avoidance is a behavior, where collisions are a physical property”,
so i can simulate the look of avoid obstacles behaviour, not really
have AI particles interact.
So here a thanks to rdg for his link!…and a question rise:
the (avoid crowding) particles algorithm is quite the same of the
Houdini interact pop node?
Or better can i have 2 source particles in the same network interact
between them using interact node , so one group actively interacts (the crowd),
the other group interacts passively (the obstacles),
in the sense that it stands in its original location/position ,
but interacts with its radius range, to determine the behaviour of the crowd group.
It is conceivable or I'm doing a bit of confusion?
best!
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them?
User Avatar
Member
8 posts
Joined: 11月 2010
Offline
Finally Thanks to all for your help. I have finished with fish movement R&D.
All was done via vop pop networks and damn houdini is cool))) no field no keyframes. This is what i have done for now:
see in HD because “fishes” are small

http://www.youtube.com/watch?v=KYqXWcBv874 [youtube.com]
User Avatar
Member
8 posts
Joined: 11月 2010
Offline
http://www.youtube.com/watch?v=18H4TklTwYc [youtube.com]
update: added predator like behavior + fishes (new model rig animation on the list)
User Avatar
Member
53 posts
Joined: 10月 2010
Offline
not bad trisen….can you share your vop?
especially the avoid obstacles matter, or it's the kustaa way?
…so nobody reply to my question?
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles,
And by opposing end them?
User Avatar
Member
27 posts
Joined: 11月 2009
Offline
kustaa
i made a post on odforce while ago on this matter, check it here:
http://forums.odforce.net/index.php?/topic/11329-parting-particles-around-an-object/page__p__73763&#entry73763 [forums.odforce.net]

heres also a little update on the voppop force. scene is slightly messy but behaviour is better than in the previous version

Kustaa
hi, kustaa. I have seen your sence, but I can't understand how do you organize your thoughts to achive this effect.
Can you give me some clues about what do you do in your sence.
thanks
Houdini is a big thing!
  • Quick Links