One thing, I was checking out the Flocking tab and in my curiosity I switched Goalx to expression mode to see what you had in there. That went into error so I switched it back. It seems after that the particle system is in disarray and will not come back into a flocking state. I tried the reset particles or loading presets and various other things, but no dice.
I am using it on a floor projection where I have fireflies following kids as they move through the space. Is there a way to make the particles (fireflies) face the direction in which they are moving?
Cool for sharing your box file,
would it be possible for u to write a small explanation on how to use it? I just finished to learn the basic of td and soul love to enter this field.
bit it seems that in unable to place your bit of code at the right place.
cheers
Here’s the bit of code:
[code]// rule1 avoid other boids
vec3 rule1(vec3 my_position, vec3 my_velocity, vec3 their_position, vec3 their_velocity)
{
vec3 d = my_position - their_position;
if (dot(d, d) < closest_allowed_dist)
return d;
return vec3(0.0);
}
// rule2 match the speed of other boids
vec3 rule2(vec3 my_position, vec3 my_velocity, vec3 their_position, vec3 their_velocity)
{
vec3 d = their_position - my_position;
vec3 dv = their_velocity - my_velocity;
return dv / (dot(d, d) +10.);
}
Actually that little bit of code is from the GLSL pixel shader in the TOX file posted above. Check out that file if you’d like to see a working version.
Hello, I have been trying to customize this for a few days now and have had mild sucess, but is not there yet. Does someone know why changing the Simresw and Simresh simingly make the particles accelerate out to nan land ? I have tied the Particles number to the size of the simulation with me.par.Simresh * me.par.Simresw but no luck. As soon as I touch the simulation size the GLSL goes to nan values.
Any clue will be much appreciated!
I didn’t figure out a full solution but you should set the Particles custom parameter to me.par.Simresw*me.par.Simresh. Then Simresw and Simresh should each be a power of 2, but they can be different from each other. I don’t know what would allow full control over those parameters.
I have replaced the acttractors part so I can have realtime locations for those attractors as well as add and remove them on the fly. The movement is not linear however. I thought it was a camera angle issue but messing with the camera’s breaks the whole thing and makes it render at 14fps.
second:
Would it be possible to have one attractor actually “steal” some of the particles from another.
So let’s say I have fixed colors on the particles and the blue attractor actually take some of the red flock… How would I go about this?
Hey tony,
I was also trying to achieve the same effect, where following boids switch to different targets depending on the proximity. Were you able to achieve this?
You may want to use a float value and a target integer packed with the boid struct to keep track of how long a boid has been following a target and the ID of the target. Once a certain time threshold is reached you would reset the time counter and change the ID integer.
Particle systems in TD now have an attractor option that responds in a fake boid type behaviour. This was enough for my use case.
I had 4 objects that moved through the space using Vive trackers. I had a particle emitter at 0,0,0 with the 4 objects as attractors.
It worked really well and gave me the effect I needed.
Downside is that it just divides the particles evenly over the 4 objects by Particle ID and there is no way to “steal” the particles from another object.
I would really be interested in a better solution.
Maybe you could make the attractor force for a specific target 40-80% weaker once the boid has been following that attractor for X seconds. You could have it decay over time using smoothstep and mix. Then if a new attractor happens to come by it might be able to overpower the pull of the first attractor.