Previous:Radiosity Setting Main Index Next:Removing User Bounding

#### Automatic Bounding Control

`Bounding=`bool | Turn bounding on/off
`+MB` | Turn bounding on; Set threshold to 25 or previous amount
`-MB` | Turn bounding off
`Bounding_Threshold=`n | Set bound threshold to n
`+MB` n | Turn bounding on; bound threshold to n
`-MB` n | Turn bounding off; for future threshold to n
`Light_Buffer=`bool | Turn light buffer on/off
`+UL` | Turn light buffer on
`-UL` | Turn light buffer off
`Vista_Buffer=`bool | Turn vista buffer on/off
`+UV` | Turn vista buffer on
`-UV` | Turn vista buffer off

POV-Ray uses a variety of spatial sub-division systems to speed up ray-object intersection tests. The primary system uses a hierarchy of nested bounding boxes. This system compartmentalizes all finite objects in a scene into invisible rectangular boxes that are arranged in a tree-like hierarchy. Before testing the objects within the bounding boxes the tree is descended and only those objects are tested whose bounds are hit by a ray. This can greatly improve rendering speed. However for scenes with only a few objects the overhead of using a bounding system is not worth the effort. The `Bounding=off` option or `-MB` switch allows you to force bounding off. The default value is on.

The `Bounding_Threshold=`n or `+MB` n switch allows you to set the minimum number of objects necessary before bounding is used. The default is `+MB25` which means that if your scene has fewer than 25 objects POV-Ray will automatically turn bounding off because the overhead isn't worth it. Generally it's a good idea to use a much lower threshold like `+MB5.`

Additionally POV-Ray uses systems known as vista buffers and light buffers to further speed things up. These systems only work when bounding is on and when there are a sufficient number of objects to meet the bounding threshold. The vista buffer is created by projecting the bounding box hierarchy onto the screen and determining the rectangular areas that are covered by each of the elements in the hierarchy. Only those objects whose rectangles enclose a given pixel are tested by the primary viewing ray. The vista buffer can only be used with perspective and orthographic cameras because they rely on a fixed viewpoint and a reasonable projection (i. e. straight lines have to stay straight lines after the projection).

The light buffer is created by enclosing each light source in an imaginary box and projecting the bounding box hierarchy onto each of its six sides. Since this relies on a fixed light source, light buffers will not be used for area lights.

Reflected and transmitted rays do not take advantage of the light and vista buffer.

The default settings are `Vista_Buffer=on` or `+UV` and `Light_Buffer=on` or `+UL`. The option to turn these features off is available to demonstrate their usefulness and as protection against unforeseen bugs which might exist in any of these bounding systems.

In general, any finite object and many types of CSG of finite objects will properly respond to this bounding system. In addition blobs and meshes use an additional internal bounding system. These systems are not affected by the above switch. They can be switched off using the appropriate syntax in the scene file (see "Blob" and "Mesh" for details). Text objects are split into individual letters that are bounded using the bounding box hierarchy. Some CSG combinations of finite and infinite objects are also automatically bound. The end result is that you will rarely need to add manual bounding objects as was necessary in earlier versions of POV-Ray unless you use many infinite objects.

Previous:Radiosity Setting Main Index Next:Removing User Bounding