Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm interested in where in the tool chain bounding boxes are created. Are they made by the artists? In the modeling tool? How are they exported? Can Maya/3DS Max/Blender/... mark geometry as bounding box? How does that work in Collada/FBX?)

Or is there a tool which calculates them? Are they calculated at run time?

I basically know how bounding volumes work, but I'm a little bit confused on where to get them from.

share|improve this question
    
Welcome to the site! I removed the part of the question querying how specific example games construct bounding volumes because it's not really answerable and doesn't directly pertain to your specific problem. –  Josh Petrie May 26 '12 at 21:00
    
@JoshPetrie My intention was just to address if different kinds of games (FPS, RPG, RTS) have different requirements at this point. :) –  cooky451 May 27 '12 at 7:00
add comment

2 Answers

Bounding volumes are usually computed procedurally. For example, an axis-aligned bounding box can be computed by iterating the vertex set of a mesh and saving the minimum and maximum X, Y and Z coordinates, although there are other volumes such as spheres, oriented boxes, and capsules which can involve more complex algorithms. Because such computations are typically expensive they tend to be done offline, either as part of an export step from the modeling package or as part of a data packing or compilation step during the build of a game.

In some cases, loose bounding volumes (those that do not conform as tightly as possible to the object) are desirable. Typically this is when the volume will not be used for rendering/optimization purposes but instead for design or gameplay mechanics purposes. In such cases the volumes could be created by hand. This would probably be done in a content creation tool, or by marking a phantom primitive in the modeling tool as a bounding volume (note that modeling tools need not have a built-in "mark as bounding volume" operation, as most can tag objects with user-defined values that custom exporter pipelines can process).

There are no industry standards for how and when bounding volumes are computed (or authored, if applicable). Most asset pipelines are proprietary, designed to serve the specific needs of a studio and/or project, and this operation falls under the realm of an asset pipeline task.

share|improve this answer
    
+1. Not sure if simplified collision meshes have 'artist intervention' - but you might want to touch on that. –  Jonathan Dickinson May 27 '12 at 6:39
    
Thanks for the answer. So that means for e.g. a building it is most likely not exported as one big mesh, but as a file with many small objects in it? Because otherwise getting bounding volumes for staircases etc. is kind of impossible? - A followup question would be: How can a program decide which kind of bounding volume is appropriate? One doesn't want spheres for staircases obviously. Also, are non-loose bounding volumes of any use? I imagine they're quite expensive for collision detection. –  cooky451 May 27 '12 at 7:14
    
A building may well be exported as a single mesh. However in most games collision detection isn't just done against bounding volumes - it's done against meshes by the physics engine. Those physics meshes will often be separate from the mesh used for rendering. –  Adam May 28 '12 at 0:08
    
@Adam Hm.. and where do those physics meshes come from? I can't really find something useful when googling for "physics meshes". –  cooky451 May 28 '12 at 10:18
    
They could come from any of the same places that the render volumes come from, they just might be different due to different needs and applications of the volume. The program usually doesn't decide which kind of volume is appropriate (for either case), a human does. A program would just compute the desired volume, if need be. Geometry is generally exported in chunks -- level geometry, for example, would not be exported as one giant mesh because then it's much harder to get a useful bounding volume and to cull unused portions of the mesh. –  Josh Petrie May 28 '12 at 14:23
add comment

BBoxes are generated in runtime, engine process geometry to get min,max in x/y/z axes.

share|improve this answer
2  
Not always, especially since doing so at runtime can be expensive. Additionally there are more kinds of volumes than just boxes. –  Josh Petrie May 26 '12 at 20:57
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.