Divide and Conquer
A popular theme in the VSD literature is divide and conquer. The Warnock algorithm pioneered dividing the screen. Beam tracing is a ray-tracing approach which divides the visible volumes into beams. Various screen-space subdivision approaches reducing the number of primitives considered per region, e.g. tiling, or screen-space BSP clipping. Tiling may be used as a preprocess to other techniques. ZBuffer hardware may typically include a coarse 'hi-Z' against which primitives can be rejected early without rasterization, this is a form of occlusion culling.
Bounding volume hierarchies (BVHs) are often used to subdivide the scene's space (examples are the BSP tree, the octree and the kd-tree). This allows visibility determination to be performed hierarchically: effectively, if a node in the tree is considered to be invisible then all of its child nodes are also invisible, and no further processing is necessary (they can all be rejected by the renderer). If a node is considered visible, then each of its children need to be evaluated. This traversal is effectively a tree walk where invisibility/occlusion or reaching a leaf node determines whether to stop or whether to recurse respectively.
Read more about this topic: Hidden Surface Determination
Famous quotes containing the words divide and/or conquer:
“The king said, -Divide the living boy in two; then give half to the one, and half to the other. But the woman whose son was alive said to the king -because compassion for her son burned within her - -Please, my lord, give her the living boy; certainly do not kill him! The other said, -It shall be neither mine nor yours; divide it. Then the king responded: -Give the first woman the living boy; do not kill him. She is his mother.”
—Bible: Hebrew, 1 Kings. 3:25-37.
Solomon resolves a dispute between two women over a child. Solomons wisdom was proven by this story.
“Only those who must conquer them every day
Deserve freedom as well as life.”
—Johann Wolfgang Von Goethe (17491832)