My Latest Bifrost Examples
Hey folks,
I've been having some fun with bifrost lately so in case you are not on my social media, I'm sharing it here. I'm a bit lazy to record video tutorials so hopefully this post will be able to explain the workflow. Do let me know if anyone needs to know specific details.
Mr. Legs
In this example, I have tried to recreate a popular exercise done previously by ICE or Houdini folks. Its simpler than it looks so the gist of the setup is:
1. Find the highest point on the terrain mesh and calculate the direction vectors from all the other points on the mesh to that point. This becomes sort of your gradient vector which we will use to advect points later.
2. Scatter some points on a terrain mesh and offset them in Y for the "head" portion. You can also offset/displace them based on the normal vector at the point position.
3. For each head point, find out the closest gradient vector so we know which direction to move it in.
4. For each head point, find out the closest x amount of points. The current closest point node in bifrost returns a single point so we can just roll our own simple compound. Get the distance of the current head point to all the other points on the terrain. Sort the array and then slice it to get x number of closest points. You can index into the actual point positions by finding the sliced array results in the bigger point positions array.
5. Connect the head point and the closest points with the arrow strand node and adjust the thickness to get your legs.
6. Use the gradient vector we computed earlier to advect the head points. You can use a multiplier which can act like substep. Iterate over this using the frame number as the max iterations to move the point forward. The current position is also the iterator's port state so it gets updated every iteration and then that triggers the update for all the other steps.
And with that you have a crowd of creepy crawlies. I'll try to share more examples on this thread. Thanks for reading!
Cheers,
Sachin