Home Technical Talk

bounding volumes for physics and collisions

Hi,

I was curious how many of the games people are working on use some sort of bounding volume to solve for physics/collisions and if any of them use the existing geometry to the create bounding objects? So far I've been asked to make 3 different version of the same world (one for Physx, one for characters and one for the camera). I'm starting to pull out my hair.

Replies

  • Rick Stirling
    Options
    Offline / Send Message
    Rick Stirling polycounter lvl 18
    In some games I've worked on, the Lods were used as the collision volumes, in others custom collision was built.

    With Lods, one model does two jobs, but you need to keep it in memroy, possilby with the textures for it in memory. However, since they are already built then you have less work to do.

    Creating separate collision is more work, but is more flexible (more or les detail than lods where needed).
  • Mark Dygert
    Options
    Offline / Send Message
    Which program are you using?

    Yes I use an invisible low poly cage for physics. Using a lower poly invisible cage will help keep your calculation time lower. It also lets you omit little details that can cause issues like a belt, a holster or rivets. For objects that interact with characters I use biped as a deflection cage. But for cloth I use an invisible, optimized mesh built from the low poly mesh. I don't like to use biped for cloth because each bone is a separate piece and it's easy for cloth to become caught in the folds and deform poorly, it also has sharp angles and often doesn't mimic the silhouette of the model accurately.

    I use the method/script outlined in this tutorial to make my cloth cages. This is also helpful if you have built a high poly object and need to make a low poly representation of it.
    http://www.hyperent.com/Hyp-Tutorial-Cloth-002.php
  • MoP
    Options
    Offline / Send Message
    MoP polycounter lvl 18
    A lot of Doom3-engine based games (D3, Q4, ETQW) use multiple models for collision. Some have a really simple mesh for physics/vehicle collision, then a more detailed (but still optimised) mesh for player/bullet collisions, and then the visible mesh itself.
    If a game uses a physics engine, chances are you will either have to manually create meshes for simple collision bounds, or you will have to set up box/cylinder/sphere primitives by setting radius/length/width values. I don't know of any games where they use the actual visible mesh as a physics mesh, the calculations just get really complex and slow things down.
  • jpaton
    Options
    Offline / Send Message
    [ QUOTE ]
    In some games I've worked on, the Lods were used as the collision volumes, in others custom collision was built.

    With Lods, one model does two jobs, but you need to keep it in memroy, possilby with the textures for it in memory. However, since they are already built then you have less work to do.

    Creating separate collision is more work, but is more flexible (more or les detail than lods where needed).

    [/ QUOTE ]

    Using the LODs is a good idea. We actually aren't using LODs which i find very odd. I've worked on some games where you didn't need them because the distance the camera changed didn't justify them but this is the first place I've worked that just "can't do them". I'm still scratching my head about that one...
  • jpaton
    Options
    Offline / Send Message
    [ QUOTE ]
    Which program are you using?

    Yes I use an invisible low poly cage for physics. Using a lower poly invisible cage will help keep your calculation time lower. It also lets you omit little details that can cause issues like a belt, a holster or rivets. For objects that interact with characters I use biped as a deflection cage. But for cloth I use an invisible, optimized mesh built from the low poly mesh. I don't like to use biped for cloth because each bone is a separate piece and it's easy for cloth to become caught in the folds and deform poorly, it also has sharp angles and often doesn't mimic the silhouette of the model accurately.

    I use the method/script outlined in this tutorial to make my cloth cages. This is also helpful if you have built a high poly object and need to make a low poly representation of it.
    http://www.hyperent.com/Hyp-Tutorial-Cloth-002.php

    [/ QUOTE ]

    We are using Maya and Gamebryo. We actually have "dynamically" generated bounding objects for the characters body parts which are generated for some bones depending on a naming convention.

    Thanks for posting the link I've never worked with in-game cloth simulation before. Are you using Havok?
  • Mark Dygert
    Options
    Offline / Send Message
  • jpaton
    Options
    Offline / Send Message
    [ QUOTE ]
    A lot of Doom3-engine based games (D3, Q4, ETQW) use multiple models for collision. Some have a really simple mesh for physics/vehicle collision, then a more detailed (but still optimised) mesh for player/bullet collisions, and then the visible mesh itself.
    If a game uses a physics engine, chances are you will either have to manually create meshes for simple collision bounds, or you will have to set up box/cylinder/sphere primitives by setting radius/length/width values. I don't know of any games where they use the actual visible mesh as a physics mesh, the calculations just get really complex and slow things down.

    [/ QUOTE ]

    I meant more along the lines of creating the physics mesh for an object at load time as opposed to an artist creating them, not necessarily using the textured mesh. So you have two unique physic meshes that the artists create? Is this done by a script in the same tool you create the mesh? What if the mesh changes do you have to update both meshes? Does the camera use one of these meshes as well?
Sign In or Register to comment.