Download presentation
Presentation is loading. Please wait.
Published byNicholas Matthews Modified over 9 years ago
1
1 3D Hidden Surface Removal 2001.2.28 김 성 남
2
2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth sorting - BSP-tree - Area subdivision - Ray casting Conclusion
3
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
4 Surfaces may be various of situations according to view positions. - surfaces may be back-facing Motivation (1/4)
5
5 Surface may be occluding Motivation (2/4)
6
6 Surfaces may be overlapping Motivation (3/4)
7
7 Surfaces may be intersecting Motivation (4/4)
8
8 Back-face detection Depth buffer A-buffer Scan line Depth sorting BSP-tree Area subdivision Ray casting Approaches
9
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
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 back face V : Viewing direction vector(eye,camera) N : Normal vector to a polygon surface Back-face detection (1/2)
11
11 Back-face detection (2/2) V 를 다음과 같이 V z 축에 평행하게 projection coordinates 로 convert 한다면 V = (0,0,V z ) VzVz VxVx VyVy V V N = V z C ( C : variable) C 의 기호 (+ or -) 에 따라 back face 결정 C ≤ 0 viewer V N
12
12 Image-space method Compare surface depths at each pixel position on the projection plane. Z-buffer method Depth-Buffer Method (1/3) VzVz VxVx VyVy S3S3 S2S2 S1S1
13
13 Step - initialize the depth & refresh buffer depth(x,y) = 0, refresh(x,y) = I background - 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) = I surf (x,y) Depth-Buffer Method (2/3)
14
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
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
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 > 0I Depth field Intensity field d < 0 Surf 1 Depth field Intensity field Surf 2
17
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) background opaque surface foreground transparent surface
18
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
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 AB ED F G Scan line 1 Scan line 2 Scan line 3 S1S1 S2S2
20
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
21 Depth Sorting Method (2/7)
22
22 Overlap test 1.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 position 3.Overlapping surface is completely in front of S relative to the view position 4.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
23 1. bounding rectangles in the xy plane for the two surfaces do not overlap Depth Sorting Method (4/7) VzVz VxVx X max X min X’ max X’ min S S’
24
24 2.Surface S is completely behind the overlap -ping surface relative to the view position 3.Overlapping surface is completely in front of S relative to the view position Depth Sorting Method (5/7) VzVz VxVx S S’ VzVz VxVx S Test2 is not true Test2,3 are true
25
25 4.The projections of the two surfaces onto the view plane do not overlap Depth Sorting Method (6/7)
26
26 When 4 tests failed, interchange surfaces in the sorted list Depth Sorting Method (7/7) VzVz VxVx S S’ In sorted list S’,S S,S’ VzVz VxVx S S’ In sorted list S,S’,S” S’,S”,S S’’
27
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
28 BSP-Tree Method (2/2) A B C D P1P1 P2 front back P1P1 frontback P2 frontback AC frontback BD Painting order D → B → C → A
29
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
30 If one of conditions is true, no subdivision 1. All surfaces are outside 2. Only one surface intersects in the area 3. One surface occludes other surfaces within area Area-Subdivision Method (2/4) Surrounding surface Overlapping surface inside surface outside surface Boundary area surface
31
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
32 One surface occludes other surfaces within area - using 4 vertices method the minimum depth of all other surface within the area Area-Subdivision Method (4/4) VzVz VxVx Area Z max (surrounding surface) maximum depth of surrounding surface >
33
33 Cast ray from viewpoint through each pixel to find front-most surface Ray Casting Method (1/2)
34
34 Ray Casting Method (2/2) Light-ray paths backward from the pixels through the scene More effective detection method - Curved surface, particularly spheres a variation on the depth buffer method Conceptually simple, but not generally used
35
35 Hidden Surface Removal Algorithm - Back-face detection - Depth buffer - A-buffer - Scan line - Depth sorting - BSP-tree - Area subdivision - Ray casting Summary
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.