|[ < ]||[ > ]||[ << ]||[ Up ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]|
Ok, here it comes. Given the above structure with sectors and entities we can define how we want to calculate optimal (or near optimal) visibility.
When speaking about culling we are mainly speaking about three types of geometry:
World geometry is the basic geometry that makes up the world. In general world geometry are big polygons that define large boundaries in some world or level. They usually represent walls, floors, and ceilings.
Detail objects are entities which are too detailed (i.e. too many small polygons or triangles) to be included in the processor intensive visibility calculations. So we mark them as detail and we process them on a higher level for visibility (mostly by treating their bounding box instead of the object itself). Curved surfaces, sprites, and some genmeshes are all detail objects.
Culling objects are invisible objects. Their only purpose is to cull geometry. So they are in fact the reverse of detail objects. In general culling objects should be large and have few polygons. These polygons will be included in visibility testing. You can add a culling object inside a detail object. The detail object will not participate in culling objects behind it (it will itself be culled by its bounding box however) but the culling object inside will take care of culling what is hidden by the detail object. Culling objects are only useful for detail objects that are sufficiently large and in sectors where there is a sufficient number of other entities (i.e. objects or portals) to be culled. A question here is whether or not it is possible (easy) to generate culling objects automatically from detail objects.
This document was generated using texi2html 1.76.