computer graphics - hidden surface removal
Post on 28-Mar-2015
1.041 Views
Preview:
TRANSCRIPT
1
3D Hidden Surface Removal
2001.2.28김 성 남
2
Contents• Goal • Motivation• Approaches
- back face detection- depth buffer- A-buffer- Scan line- Depth sorting- BSP-tree- Area subdivision- Ray casting
• Conclusion
3
Goal• A major consideration is
identifying those parts of a scene that are visible from a chosen view position.
• Represent realistic 3D display
• Visual-surface detection methods≈ hidden-surface elimination methods
4
• Surfaces may be various of situations according to view positions.
- surfaces may be back-facing
Motivation (1/4)
5
• Surface may be occluding
Motivation (2/4)
6
• Surfaces may be overlapping
Motivation (3/4)
7
• Surfaces may be intersecting
Motivation (4/4)
8
• Back-face detection• Depth buffer• A-buffer• Scan line• Depth sorting• BSP-tree• Area subdivision• Ray casting
Approaches
9
• Object–space methods- Viewer 의 가시선상에서 object 가 보이는지 , 안보이는지를 직접 결정- wire frame display 에서 line display 시 사용
• Image-space methods- using most methods- projection plane 상의 각 pixel position 에 point 에 따라 visibility 결정
Classification
10
• Fast & simple object-space method• Be based on Inside-outside test
- decide on the back face
P(x,y,z) on the polygon Ax + By + Cz + D < 0 inside back face
V N > 0 back face• V : Viewing direction vector(eye,camera) N : Normal vector to a polygon surface
Back-face detection (1/2)
11
Back-face detection (2/2)V 를 다음과 같이 Vz 축에 평행하게projection coordinates 로 convert 한다면
V = (0,0,Vz)
Vz
Vx
Vy
V
V N = V• zC ( C : variable)
C 의 기호 (+ or -) 에 따라 back face 결정 C ≤ 0 viewer
VN
12
• Image-space method• Compare surface depths at each pixel
position on the projection plane.• Z-buffer method
Depth-Buffer Method (1/3)
Vz
Vx
Vy
S3
S2 S1
13
• Step
- initialize the depth & refresh buffer depth(x,y) = 0, refresh(x,y) = Ibackground
- compare depth values to previously stored values in depth buffer Calculate the depth z 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)
Depth-Buffer Method (2/3)
14
• Comments- requires lots of memory a system with resolution 1024 by 1024 = 1024 x 1024 x 24bits- subject to aliasing(A-buffer)- commonly implemented in hardware
Depth-Buffer Method (3/3)
15
• Extension of the depth-buffer method• Antialiased,
Area-averaged,Accumulation-buffer method by Lucasfilm
• For implementation in the surface rendering system- REYES(Renders Everything You Ever Saw)
• Viewing for more than one surface• Antialiasing
A-Buffer Method (1/3)
16
• A-Buffer has two fields- depth field : store +,- real number- intensity field
• Using Linked list
- d > 0 : single surface overlap - d < 0 : multiple surface overlap
A-Buffer Method (2/3)
d > 0 I
Depthfield
Intensityfield
d < 0 • Surf1
•
Depthfield
Intensityfield
Surf2
•
17
• Included data in the linked list- RGB intensity components- Opacity parameter(present of transparency)- Depth- Persent of area coverage- surface identifier- other surface-rendering parameters- pointer to next surface
A-Buffer Method (3/3)
backgroundopaque surface
foregroundtransparentsurface
18
• Image-space method• Extension of the scan line algorithm• Using Edge tables, polygon tables• Set up an active list of edges
cross the current scan line• Define a flag for each surface (on or off)
- to indicate whether inside or outside• Take advantage of Coherence along
scan lines• Commonly implemented in software
Scan-Line Method (1/2)
19
• Scan line 1 : no depth calculations• Scan line 2 : depth calculations• Scan line 3 : no depth calculations
- take advantage of coherence
Scan-Line Method (2/2)C
A BED
FG
Scan line 1
Scan line 2
Scan line 3
S1 S2
20
• Both image-space and object-space method- sorting operation : both- scan conversion : image-space method
• Painter’s algorithm : oil painting• Sort surfaces in order of decreasing depth• No depth overlap
- Scan convert surfaces in order, starting with the surface of greatest depth
• Depth overlap- need to additional reordering process
Depth Sorting Method (1/7)
21
Depth Sorting Method (2/7)
22
• Overlap test1.Bounding rectangles in the xy plane for the two surfaces do not overlap.2.Surface S is completely behind the overlap -ping surface relative to the view position3.Overlapping surface is completely in front of S relative to the view position4.The projections of the two surfaces onto the view plane do not overlap
Depth Sorting Method (3/7)
one of these test is true no reordering
23
1. bounding rectangles in the xy plane for the two surfaces do not overlap
Depth Sorting Method (4/7)
Vz
Vx
XmaxXmin X’maxX’min
SS’
24
2.Surface S is completely behind the overlap-ping surface relative to the view position
3.Overlapping surface is completely in frontof S relative to the view position
Depth Sorting Method (5/7)
Vz
Vx
S
S’
Vz
Vx
S
S’
Test2 is not trueTest2,3 are true
25
4.The projections of the two surfaces onto the view plane do not overlap
Depth Sorting Method (6/7)
26
• When 4 tests failed,interchange surfaces in the sorted list
Depth Sorting Method (7/7)
Vz
Vx
S
S’
In sorted listS’,S S,S’
Vz
Vx
S
S’
In sorted listS,S’,S” S’,S”,S
S’’
27
• A kind of Depth-sorting Method• Be useful when the view reference point
changes,but the objects are fixed position• Painting in the order back to front• Commonly implemented in hardware
BSP-Tree Method (1/2)
28
BSP-Tree Method (2/2)
A
B
C
D
P1
P2
frontfront
back
back P1
front back
P2 P2
front back
A C
front back
B D
Painting orderD → B → C → A
29
• Image-space method- object-space method : depth ordering
• Start with total view →
determine whether subdivision or not →subdivision → until a single surface or the size of a single pixel
• Similar to quad tree
Area-Subdivision Method (1/4)
30
• If one of conditions is true, no subdivision1. All surfaces are outside2. Only one surface intersects in the area3. One surface occludes other surfaces within area
Area-Subdivision Method (2/4)
Surroundingsurface
Overlappingsurface
insidesurface
outsidesurface
Boundary areasurface
31
• All surfaces are outside- check the bounding rectangles of all surfaces against the area boundaries
• Only one surface intersects in the area- bounding rectangles can be used as initial check- no intersection → inside intersection → need to additional check whether overlap,outside,surrounding
Area-Subdivision Method (3/4)
32
• One surface occludes other surfaceswithin area
- using 4 vertices method
the minimum depth of all other surface within the area
Area-Subdivision Method (4/4)
Vz
Vx
Area
Zmax
(surroundingsurface)
maximum depth of surrounding surface
>
33
• Cast ray from viewpoint through each pixelto find front-most surface
Ray Casting Method (1/2)
34
Ray Casting Method (2/2)• Light-ray paths backward from the
pixelsthrough the scene
• More effective detection method- Curved surface, particularly spheres
• a variation on the depth buffer method• Conceptually simple, but not generally
used
35
• Hidden Surface Removal Algorithm- Back-face detection- Depth buffer- A-buffer- Scan line- Depth sorting- BSP-tree- Area subdivision- Ray casting
Summary
top related