Bifrost collision woes...


#1

I’m pretty new to using Bifrost, and assume there’s a lot of user-error going on in my scene. I’m trying to make a small waterfall/Oriental pond type of scene, where the water spills over some large flat rocks and into the pond. All seemed to be going well, until I realized my incoming waterfall wasn’t reacting to my pond’s surface shape properly at all, and the water was behaving very strangely coming out my flow-control geometry too.

Attached are some images. Why is the water flowing backwards, here? And then it appears to hit some kind of illusory ghost-geometry instead of the pond’s surface polygons? I have the pond surface set to “Solid” instead of “Shell”, but neither seems to make a difference?

From above:

From below, right:

From below, left:

And with the internal pond-emitter off, from the side you can see that my water is basically “jumping” for some reason? There’s no geometry there shaped like this to cause the jump. It should be flowing down, here, to the bottom of the pond-shape?


#2

Did you try to extrude your polysurface? It often helps a lot to give Bifrost a real volume to work with.


#3

Thanks so much for the tip, Haggi! It worked like a charm. My liquid is now behaving properly and predictably across the pond bottom geometry.

I am curious about the “stickiness” of the liquid. Is it mimicking surface tension and adhesion? I can’t seem to find any settings to control this, and would like to make the flat rock below the emitter less “sticky”, somehow. For more of a waterfall look. Any ideas how to adjust this on a per-collision-item level?


#4

The current pressure solve causes a little sticking to where the flow… say at the lip of the water fall moves over the edge, even when the stickiness value is zero on the liquid (you can’t set it on the colliders currently, only the liquid as an emission property).
However as you increase the resolution of the simulation the effect will be much less noticeable.

The stickiness attribute(when it is non-zero) kills the velocity of the liquid in the direction going towards the collision mesh, and simulates adhesion of the liquid to the collider. However it can create unnatural effects if the stickiness is high, particularly if the stickiness Bandwidth (the distance away from the collider that the effect is applied) is large. Liquid falling on the collider will slow when it is within the bandwidth distance and may not even reach it, as if one had higher collisions thickness on the collider. Conversely if the liquid was emitted near the collider it can completely stick and flow around the object without falling off it. Note that the stickiness does not affect the velocity tangent to the collider so the liquid will flow along frictionlessly. (for frictional effects one needs to the use the boundary layer feature on accelerators)


#5

That makes perfect sense and describes what I’m seeing here accurately, Duncan! Thanks for the tips, making some good progress in this little scene now. Once the dynamics are working I can start detailing the scene better.


#6

Making some progress, but running into a few issues which I hope are easily solved. Instead of just letting one emitter fill the ponds, I thought to add another in the first (higher) pond and let it flow into the second (lower, smaller) pond. The second emitter (B) is attached to the same BifrostLiquid as the first (A). But it doesn’t seem like the waterfall liquid is colliding or interacting with the pond liquid? Is there something I’m missing, on how to make two emitters interact with each other?

Maybe I’m just doing this wrong? Should I be using a second BifrostLiquid for the second emitter?

Another issue I’m running into is when I go to Mesh my simulation, for rendering in mental ray. It seems like the simulation’s mesh is offset, or maybe still at 0,0,0? There’s a locator floating around somewhere that’s not matching up to my displaced initial simulation, maybe? I’m hoping this one’s pretty easy to fix. I don’t need to render the animation at all, just the final “best frame” of the liquid, as it will be a static image scene.

Any ideas?


#7

If your second emitter is continously emitting then it will not allows waves to dip inside the emitter… it will always fill them in. If you just want the pool to be initially full then turn off continuous emission on the pool emitter.

The offset is likely a transform issue. If you have the simulation parented then the output mesh should not be parented. I would just avoid all transforms on the liquid node and output mesh and keep everything in worldspace. (the input meshes, such as emitters can be transformed and parented, however).

Also if you want more water flow, then you could make your source emitter at the top also an accelerator and set the accelerator direction in the river direction. Faster flow might also help keep the water from curling around the top edge( the curling will also be less if model it sharper as well as lower the master voxel size )

Duncan


#8

Thanks so much for your time and patience with me, Duncan! The meshing worked, and the emission tips too. I redid my Liquids in this little scene and everything is going nicely, got some work to do on the top emitter/collider to keep the liquid flowing into the pond better, but your suggestions have all been terribly helpful. Thanks a billion.

I’m really liking Bifrost, one of the nicest new features in my opinion. I used to try using nDynamics to do stuff like this, and obviously Bifrost is much better!


#9

Again, thanks for all your help, Duncan. Each of your tips has produced great results and helped me learn Bifrost a little better.

I got my pond working pretty well, and the waterfall is a bit obnoxious but it WORKS. Further tweaking the settings and scale should do the trick. But now I’m encountering a lot more turbulence than I was hoping for. I reduced the gravity by half, disabled vorticity, and still have a lot of motion here. My simulation is 700 frames long, and maxes out my 16GB of RAM pretty easily but is still workable.

Do you have any suggestions on how to reign the physics in, make it a little more peaceful or less turbulent? Should I rescale the scene (not the Bifrost nodes, of course) to smooth things out a bit?


#10

With the default sim there are no drag or damping effects and the motion ends up being very lively. Unfortunately there are no damp or drag controls on the liquid sim currently.

However one can create an accelerator, set its directional to 0 then set the boundary layer to the desired drag value. Anything inside the accelerator will get the drag effect, or you could also use the shell mode, in which case the thickness will control how far from the mesh the drag occurs. Avoid making the accelerator huge as this will generate a lot of voxels.

The boundary layer on the accelerator is the current method for handling drag and surface friction. It is also tracks the motion of the accelerator, so can be used to push as well.


#11

Wow, that was a quick reply! Thanks a billion. I haven’t used Accelerators yet in this simulation, but that method seems reasonable and makes sense. I’ll give it a shot, and continue tweaking. You’ve definitely put me on the right path, here!