V.G as in Computer Graphics CG synthesize images of virtual scenes by simulating propagation of light. Visibility is an integral part of interaction of light with environment. Two Visibility Algorithms: Z – Buffer For visible surface determination Real Time Rendering Ray Shooting For computing visibility along a str. Line. Used in scope of global illumination methods.
New Taxonomy of visibility problems Two points are mutually visible if the line joining them is un occluded. Lines carry visibility Two points can be visible regardless of their distance.• We break the visibility problem into various domains. • Visibility along a line • Visibility from a point • Visibility from a line segment • Visibility from a polygon • Visibility from a region • Global visibilityThis taxonomy is independent of dimension of scene.
Dimension of Visibility problems 3D – 4 degrees of freedom in description of line Corresponding line space is 4 dimensional. The problem relevant line set denoted Lx(3) forming k dimensional subset of R4 where 0<= k <= 4 2D – 2 degrees of freedom in description of line Corresponding line space is 2 dimensional. The problem relevant line set denoted Lx(2) forming k dimensional subset of R2 where 0<= k <= 2 Dimension of the visibility problem is the dimension of the corresponding problem relevant line set. Doubt – 4 degree of freedom in 3D in description of line ?
Visibility along a line – 1/2 PRLS (Problem specific line space) is 0 dimensional Solved by computing intersection of given line with the scene objects. Example: Ray Shooting - Determines first intersection of ray with scene object. Point – Point Visibility – Determines whether the line segment between two points is un occluded. Maximal Free line segments – Determine maximal free line segments on a line.
Visibility along a line – 2/2
Visibility from a point Lines intersecting a point in 3D described by 2 parameters: Intersection of a line with point centered spheres. Intersection of a line with a plane. In 3D(2D) we need to accountfor visibility along 2D (1D).Example : Visible surface Determination, Construction of a visibility map.
Visibility from a line segment Described by 3 parameters: One parameter fixes the intersection of line with the segment Other two express the direction of the line. Ex : Computation of shadows due to linear light source.
Visibility from a polygon 4 parameters : 2 parameters fix the position of the point. Other 2 parameters describe the direction of the line. Ex : Computing a form factor between two polygons Soft shadow Algorithms Discontinuity meshing
Visibility from a region 4 parameters similar to polygon case. Typical Ex: - Determine if 2 regions are mutually visible , invisible or partially visible.
Global Visibility Pose no restriction of problem specific line set. No given set of reference points from which visibility is studied & no given priority ordering of objects along each particular line. Ex: - View Space Partitioning Computation of Visibility complex Visibility skeleton
Visibility problems and Algorithms Visibility along a line Ray Shooting - Given a ray, ray shooting determines the first intersection of the ray with the scene object. Point to point Visibility – Used to test if a given point is in shadow with respect to a point light source. Typically resolved by casting shadow rays from a given point towards the light source.
Visibility from a point – 1/81. Visible Surface Determination Z Buffer Associated a depth value with each pixel. Performs discreet sampling of visibility Not output sensitive since needs to rasterize all scene objects even if many objects are invisible. For large scenes with high depth complexity the processing of invisible objects causes significant overdraw. List Priority Determine an ordering of scene objects so that the correct image is produced if the objects are rendered in this order. Ex: Depth Sort Algorithm - renders polygon in the frame buffer in order of their increasing distance from the view point.
Visibility from a point – 2/8 Painter’s algorithm – paint closer objects over farther ones. Binary Space Partitioning(BSP) – Allows efficient calculation of the visibility ordering among static polygons in a scene seen from an arbitrary point. Area sub Division Subdivides the area into four rectangles. If visibility is not solved yet then rectangle is recursively subdivided. Scan Line Extend the scan conversion of a single polygon. Maintain an active edge table that indicates which polygons span the current scan line. Ray Casting Visible surface algorithm that solves visibility by ray shooting.
Visibility from a point – 3/82. Visibility maps Graph describing the a view of the scene including the topology A planar subdivision that encodes the visibility information, that is, which points are mutually visible.3. Back Face Culling and view frustum culling Back Face Culling - Avoid rendering of polygons that are not facing the view point. View frustum Culling – Eliminates polygons that do not intersect the viewing frustum.4. Visibility Culling Accelerate rendering of large scenes by quickly culling invisible parts of the scene.
Visibility from a point – 4/8 General Scenes Instead of Z buffer algorithm hierarchical Z-buffer algorithm is used for scenes with a high depth complexity. It uses a z pyramid to represent image depths and an octree to organize the scene. The z pyramid is used to test visibility of octree bounding boxes. Problem of this occlusion test is that the result of such an occlusion query is not readily available. Scenes with large occluders This set of algorithms select several large occluders and performs visibility culling in object space.• Urban Scenes Use a natural partitioning of architectural scenes into cells and portals. Cells correspond to rooms and portals to doors and windows.
Visibility from a point – 5/8 Terrains The existing algorithms in this domain are : Reduce the visibility from a point problem in 2.5D to a series of problems in 1.5D. Use of vertical ray coherence to accelerate rendering of a digital elevation map. Use of adaption of occlusion horizons.5. Hard Shadows A shadow due to a point light source and an object is the volume from which the light source is hidden by the object. Ray Tracing It does not explicitly reconstruct shadow volumes instead it samples points on surfaces using a point-to-point visibility query to test if points are in shadow.
Visibility from a point – 6/8 Tracing of shadow rays can be accelerated using a light buffer. Light Buffer – It is a 2D array that associates with each entry a list of objects intersected by the corresponding rays. Shadow Maps A shadow map is a 2D image of the scene as seen from the light source. Each pixel of the image contains the depth of the closest object to the light source. The algorithm constructs a shadow map by rendering the scene into the Z buffer using a light source as the view point. Then the scene is rendered using a given view and visible points are projected into the shadow map. The depth value is compared to the value stored in shadow map.If the point is farther then stored value it is in shadow. Shadow Volumes
Visibility from a point – 7/86. Global Illumination Beam Tracing It casts a pyramid of rays rather than shooting a single ray at a time. The resultant algorithm makes use of ray coherence and eliminates some aliasing connected with the classical ray tracing. Cone Tracing It traces a cone of rays at a time instead of a polyhedral beam or a single ray. It does not precisely determine the boundaries of visibility changes. Cones are intersected with the scene objects and at each intersected object a new cone is cast to simulate reflection
Visibility from a point – 8/8 Bundle Tracing It shoots a set of parallel rays through the scene according to a randomly sampled direction. This approach allows to exploit ray coherence by tracing many rays at the same time.
Image Based & Point Based rendering Generate images from point sampled representations like images or point clouds. Image warping The algorithm resolves visibility by a correct occlusion compatible traversal of the input image without using additional data structures like Z-Buffer. Splatting It is used to avoid gaps in the image or resolve visibility of projected points. Random sampling The randomized Z buffer culls triangle mesh is sampled and visibility of the samples is resolved using the z-buffer.
Visibility from a line segment Visibility culling Several algorithms calculate visibility in 2.5D urban environments for a region of space using a series of visibility from a line segment queries. The PVS for a given view cell is a union of PVSs computed for all ‘top edges’ of the viewing region. Soft Shadows Shadow map approach for linear light sources use a discrete shadow map enriched by a visibility channel to render soft shadows at interactive speeds. The visibility channel stores the percentage of the light source that is visible at the corresponding point.
Visibility from a polygon – 1/3a) Soft Shadows They appear in scenes with areal light sources. A shadow due to a areal light source consists of two parts : umbra and penumbra. Umbra is the part of the shadow from which the light source is completely invisible. Penumbra is the part from which the light source is partially visible and partially hidden by some scene objects. • Ray Tracing It is implemented by shooting randomly distributed shadow rays towards the light source. Shadow Volumes A shadow map cube is used to accelerate updates of soft shadows in dynamic polygonal scenes. For each polygon they maintain an approximate discontinuity mesh to accurately capture shadow boundaries.
Visibility from a polygon – 2/3 • Shadow Textures The texture is created by smoothed projections of the scene from multiple sample points on the light source.B) Form Factors Used in radiosity global illumination algorithms. Hemi Cube It computes a form factor of the differential area with respect to all patches in the scene. The form factor between the two patches is estimated by solving visibility at the middle of the patch assuming that the form factor is almost constant across the patch. It approximates the visibility from a polygon problem by solving a visibility from a point problem.
Visibility from a polygon – 3/3 Ray Shooting Discontinuity Meshing A discontinuity mesh partitions scene polygons into patches so that each patch ‘sees’ a topologically equivalent view of the light source. Boundaries of the mesh correspond to loci of discontinuities in the illumination function.
Visibility from a region – 1/2 Most visibility from a region algorithms solve the problem by computing a series of from polygon visibility queries. A) Visibility culling General Scenes Use extended projections and an occlusion sweep to calculate conservative from region visibility in general scenes. Indoor Scenes These exploit the cell/portal subdivision mentioned earlier. Outdoor Scenes Typically considered as of 2.5D nature and visibility is computed using visibility from a line segment algorithms.
Visibility from a region – 2/2• B) Sound Propagation Beam Tracing For each cell(region) of the model they construct a beam tree that captures reverberation paths with respect to the cell.
Global Visibility These algorithms typically subdivide the lines or rays into equivalence classes according to their visibility classification. Aspect Graph It is a graph describing the view of the scene for each cell of the partitioning. Visibility Complex Describes the global visibility in 2D scenes. Visibility Skeleton It is a graph describing the skeleton of the 3D visibility complex. Discrete Methods Describes visibility in a 4D grid like data structure. A common problem of global visibility data structures is their memory consumption required to achieve a reasonable accuracy.