Module V-PPT - 2
Module V-PPT - 2
Module V-PPT - 2
33
Classification of Visible-Surface Detection Algorithms
• Object-space methods
• Compares objects and parts of objects to each other
• Image-space methods
• Point by point at each pixel position on the projection plane
34
Sorting and Coherence Methods
• To improve performance
• Sorting
• Facilitate depth comparisons
• Ordering the surfaces according to their distance from the viewplane
• Coherence
• Take advantage of regularity
35
Back-Face Detection
• Fast & simple object-space method
• For identifying back faces of a polyhedron
• Based on inside-outside tests
Inside-outside test
• A point (x, y, z) is “inside” a surface with plane parameters A, B, C, and D
• Ax By Cz D 0
• The polygon is a back face if
V N 0
N = (A, B, C)
V
(x, y)
Xv
39
Zv
Depth Buffer & Refresh Buffer
• Two buffer areas are required
• Depth buffer
• Store depth values for each (x, y) position
• All positions are initialized to minimum depth
• Refresh buffer
• Stores the intensity values for each position
• All positions are initialized to the background intensity
40
Algorithm
• Initialize the depth buffer and refresh buffer
depth(x, y) = 0, refresh(x, y) = Ibackgnd
• For each position on each polygon surface
• Calculate the depth for each (x, y) position on the polygon
• If z > depth(x, y), then set
depth(x, y) = z, refresh(x, y) = Isurf(x, y)
• Advanced
• With resolution of 1024 by 1024
• Over a million positions in the depth buffer
• Process one section of the scene at a time
• Need a smaller depth buffer
• The buffer is reused for the next section
41
A-Buffer Method
A-Buffer Method
Characteristics
• An extension of the ideas in the depth-buffer method
• The origin of this name
• At the other end of the alphabet from “z-buffer”
• Antialiased, area-averaged, accumulation-buffer
• A drawback of the depth-buffer method
• Deals only with opaque surfaces
• Can’t accumulate intensity values
Foreground
for more than one surface transparent surface
Background
43
opaque surface
A- Buffer Algorithm
• Each position in the buffer can reference a linked list of
surfaces
• Several intensities can be considered at each pixel position
• Object edges can be antialiased
• Each position in the A-buffer has two fields
• Depth field
• Stores a positive or negative real number
• Intensity field
• Stores surface-intensity information or a pointer value
Depth
field
45
Scan-Line Method
Scan Line Method
Characteristics
• Extension of the scan-line algorithm for filling polygon interiors
• For all polygons intersecting each scan line
• Processed from left to right
• Depth calculations for each overlapping surface
• The intensity of the nearest position is entered into the refresh buffer
47
Tables for The Various Surfaces
• Edge table
• Coordinate endpoints for each line
• Slope of each line
• Pointers into the polygon table
• Identify the surfaces bounded by each line
• Polygon table
• Coefficients of the plane equation for each surface
• Intensity information for the surfaces
• Pointers into the edge table
48
Active List & Flag
• Active list
• Contain only edges across the current scan line
• Sorted in order of increasing x
• Flag for each surface
• Indicate whether inside or outside of the surface
• At the leftmost boundary of a surface
• The surface flag is turned on
• At the rightmost boundary of a surface
• The surface flag is turned off
49
Example
50
Example(cont.)
• For scan line 2, 3
• AD, EH, BC, and FG
• Between AD and EH, only the flag for S1 is on
• Between EH and BC, the flags for both surfaces are on
• Depth calculation is needed
• Intensities for S1 are loaded into the refresh buffer until BC
• Take advantage of coherence
• Pass from one scan line to next
• Scan line 3 has the same active list as scan line 2
• Unnecessary to make depth calculations between EH and BC
51
Depth-Sorting Method
Depth Sorting Method
Operations
• Image-space and object-space operations
• Sorting operations in both image and object-space
• The scan conversion of polygon surfaces in image-space
• Basic functions
• Surfaces are sorted in order of decreasing depth
• Surfaces are scan-converted in order, starting with the surface of greatest
depth
53
Algorithm
• Referred to as the painter’s algorithm
• In creating an oil painting
• First paints the background colors
• The most distant objects are added
• Then the nearer objects, and so forth
• Finally, the foregrounds are painted over all objects
• Each layer of paint covers up the previous layer
• Process
• Sort surfaces according to their distance from the viewplane
• The intensities for the farthest surface are then entered into the refresh buffer
• Taking each succeeding surface in decreasing depth order
54
Overlapping Tests
• Tests for each surface that overlaps with S
• The bounding rectangle in the xy plane for the two surfaces do not overlap (1)
Easy
• Surface S is completely behind the overlapping surface relative to the viewing position (2)
• The overlapping surface is completely in front of S relative to the viewing position (3)
• The projections of the two surfaces onto the view plane do not overlap (4)
• If all the surfaces pass at least one of the tests, none of them is behind S
• No reordering is then necessary and S is scan converted
Difficult
55
Overlapping Test Examples
S’
(1) xv (2) xv
zv zv
S S
S’ S’
(3) xv (4) xv
zv zv
56
Surface Reordering
• If all four tests fail with S’
• Interchange surfaces S and S’ in the sorted list
• Repeat the tests for each surface that is reordered in the list
S S’’
S’ S S’
xv xv
zv <S S’> zv <S S’’, then S’’ S’>
57
Drawback
• If two or more surfaces alternately obscure each other
• Infinite loop
• Flag any surface that has been reordered to a farther depth
• It can’t be moved again
• If an attempt to switch the surface a second time
• Divide it into two parts to eliminate the cyclic loop
• The original surface is then replaced by the two new surfaces
58