Search - User list
Full Version: RBD without volumes
Root » Technical Discussion » RBD without volumes
louis dunlevy
Hey!

After playing around a bit I've had a lot of fun with RBDs but as soon as I try to collide with an open surface like a concave grid or something that cannot be described well with a volume, that happy feeling starts to go away.

Turning off “Use Volume Based Collision Detection” results in pretty much no collisions in simple scenes that the collide POP with “slide on collision” eats for breakfast. :wink:

Hmmm… are there any good example scenes kicking around of these kind of scenarios? Something along the lines of marbles in a fruit bowl.

Cheers
Louis
craig
Marbles in a fruit bowl doesn't really relate to the problem of not being able to collide with simple polygons. The answer to that problem is: you can't. You have to turn your geometry into a closed volume.

The issue with putting things in a bowl, however, is more likely to be that you need to invert the collision geometry (SDF). There is a toggle for this in the Collisions tab of the RBD Object. Turn that on, and you can put things inside of other things..
louis dunlevy
Thanks!

I'll give it a whirl..
mtucker
Actually, you can do RBD simulations on geometry that are not closed volumes. The key, as you found, is the “Use Volume Based Collision Detection” toggle. I'm not sure about what problems you may be seeing in your specifici case, but there is a help card example files which uses this feature (the Shatter Glass example on the RBD Glue Object help card). I'd appreciate it if you could post your failing hip file (or email it to support@sidefx.com) so we can try to figure out what the problem is.

Thanks,
Mark
louis dunlevy
Hey Mark!

I'll post the file to support ASAP. (a little busy right now) I did look at the glass shatter example and even copied the RBD Object node but my objects did tend to fall through it nonetheless. Perhaps in these cases you need quite a dense topology for the collision detection?

Louis
louis dunlevy
So it seems volumes can interact with volumes and geometry can interact with geometry but never the twain shall meet. Am I right? If so is there any chance this will change in the future?

Also, to get nice sliding/rolling action it seems the geomtry route is the only potential route because of the very nature of SDFs.

ummm… :?
mtucker
Yes, there do seem to be some problems with the software in this area. We'll look into them.

As for sliding/rolling, that is entirely dictated by friction, and has nothing to do with the collision detection method used (assuming that the collision detection is working of course). Just create a simple ball with initial x velocity and throw it onto a ground plane (using SDFs for both the ball and the ground), and it will start to roll when it hits the ground. If you adjust the friction of the ball to 0, it will slide when it hits the ground instead of rolling.

Thanks for the hip file,
Mark
deecue
i was kinda wondering about this volume/open surface type stuff as well.. i was finally able to get a chance to try out H8 *just* last night for the very first time.. and of course, i probably did what everyone else did within the first couple seconds of launching it.. throw a box on a plane.. but for the life of me i couldn't get that dang thing to collide.. the ground plane dop worked fine, extruding the grid to make it a solid worked, but what's going on with that dang simple grid? and the odd thing on top of it all, while throwing a box on a grid did nothing, throwing a grid on a box worked perfectly (if anyone can atleast explain that one to me, it'd be nice)..

now i realize i spent a total of 3 hours playing with all this so far and know it's probably all in my error.. but it definitely was a wierd first experience.. gotta spend a lot of time in the docs and example hips now to get my head around it all..
louis dunlevy
Re: sliding/rolling

A flat ground plane is all well and good but what if you have some other surface like a half-pipe that you want to roll a skateboard down? It strikes me that the brickered divisions of an SDF is going to give your skateboard wheels an uneven surface to collide against so it's going to bump it's way down there rather than roll gracefully down as it should.

L
craig
Not sure why that should be so. In fact, this is one of the first things I built in DOPs. I've updated it to use a simple polygonal surface representation of the half-pipe, but the original is in there as well. You can explore the two alternatives.
louis dunlevy
Now I am confused!

That example of your just works Hmmm… even though the “Use Volume Based Collision Detection” is on. Hey, it works though which is excellent. I just have to figure out why mine didn't.

L
mtucker
There is nothing wrong with your hip file. It really is just luck that Craig's example works and your doesn't. There is a randomization of object order when solving RBD, and the resulting order indirectly determines whether the file is going to work or not. This is because of a bug which should be fixed in the next version or two of H8. Thanks for bringing this rather important issue to our attention.

Going back to rolling/sliding, if you find that an object doesn't roll smoothly down a surface, you can always increase the number of divisions in the SDF, just as you can increase the number of polygons to make your geometry smoother (and thus roll more smoothly). Note that if you turn off volume based collision detection, we convert the surface to triangles to do the direct surface-surface collision detection, so there is always not discretization of the collision detection. But you really don't need too much detail to get a surface with behavior that is visually indistinguishable from a truly smooth object (depending on how close you look, of course).

Mark
louis dunlevy
COol

Thanks for the insights there, much appreciated!
Louis
craig
mtucker
It really is just luck that Craig's example works and your doesn't.

Oh c'mon, it's all how you hold the mouse! Luck indeed…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB