Finding the line of sight between objects is a fundamental problem in many spatial algorithms. It has varying degrees of complexity based on the domain.
From point visibility: Only concerned with what is visible to a point. This is what algorithms like rasterization, basic ray tracing, bullet tracing are concerned with. It is generally easy to solve this type of visibility.
- From region visibility: This is concerned with what is visible to a non-point object, or region. This is much harder, since the answer to visibility will change over the region. Algorithms like collision detection, global illumination, diffraction, and heat transfer use this kind of visibility.
Visible set (VS): the set of objects that are visible to a point or region.
- Potentially visible set (PVS): the set of all objects that could be visible. The more conservative this set, the less useful it is. For example, the entire scene is always the PVS.
The PVS can classified as:
- Exact: all objects that visible and only objects that are visible.
- Conservative: the PVS contains the exact visible set. It also often contains more objects than the exact set.
- Aggressive: the PVS never contains objects that will not be visible. It rarely contains the exact set.
Approximate: some combination of conservative and aggressive visibility.
- Occluder/blocker: Something that blocks visibility
Visibility can be solved analytically or numerically. Analytically solutions are often slow and complex. Numerical solutions often cannot compute the exact visible set.