×
Menu

Alternate Bounding Volumes (EN)

 
Выдержка из оригинальной справки. (NDL Gamebryo 1.1)(С)
В целях общего ознакомления с вопросом (С).

Alternate bounding volumes (ABVs) are three-dimensional volumes that can be used in place of Gamebryo's default NiBounds for collision detection operations. The intention with ABVs is that they can be used to give a scene object's actual geometric data a much tighter fit than is possible with the automatically generated and often loose fitting NiBounds, that and they are much faster to compute intersections with then numerous individual triangles. The assertion is that because applications have knowledge of the size and shape of their scene objects, they can easily provide tight fitting bounding volumes of the appropriate type.
When used in conjunction with propagation flags, ABVs can be very powerful and be the sole collision method for most collision detection.  In cases where the bounding volume fit is tight, the single level of testing can be accurate enough for most situations.  This approach alleviates the system from needing to build OBBs around leaf geometry and can greatly increase collision detection performance.  All ABV types can interact with all other ABV types.
 
NiSphereBV
NiSphereBVs are identical to the engine's default automatically-generated NiBounds in operation and definition with two exceptions. One exception is that they allow an application to specify a potentially tighter fitting sphere that will only be used for collision testing. NiSphereBVs can also be tested against other types of ABVs whereas the system default bounds are not. A NiSphereBV is specified by a point and a radius.
 
NiCapsuleBV
NiCapsuleBVs are named after their similar appearance to a Tylenol capsule. A capsule is defined as all points equidistant from a line segment. NiCapsuleBVs can be useful for providing tight fitting bounds around body parts of characters, among other things. A NiCapsuleBV is specified by a center, segment axis, an axis extent, and a radius.
 
NiBoxBV
NiBoxBVs are oriented orthogonal, 6-faced bounding volumes. A NiBoxBV is specified by a center, three orthogonal axes and three axis extents from the center to the faces of the box. NiBoxBVs might be used for objects like walls or stationary angular geometry.
 
NiHalfSpaceBV
NiHalfSpaceBVs are determined by a planar boundary. The NiHalfSpaceBV is assumed to be on the side of the plane to which the plane's normal points. A NiHalfSpaceBV is specified by an appropriate plane.
 
NiUnionBV
NiUnionBVs can contain more than one of the primitive ABV types.  The effective ABV that is used in intersection testing is the union of all the contained volumes.  This technique makes it possible to create uniquely shaped bounding volumes not otherwise possible.  For example, "L" shaped volumes are possible by creating a union with two appropriately positioned NiBoxBV instances.  A NiUnionBV is specified by adding newly constructed ABVs of the other types to it. One thing to note is that unions are not especially well suited for representing dynamic objects like characters.