1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face...

35
1 3D Hidden Surface Removal 2001.2.28 김 김 김

Transcript of 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face...

Page 1: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

1

3D Hidden Surface Removal

2001.2.28김 성 남

Page 2: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

2

Contents• Goal • Motivation• Approaches

- back face detection- depth buffer- A-buffer- Scan line- Depth sorting- BSP-tree- Area subdivision- Ray casting

• Conclusion

Page 3: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 4: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

4

• Surfaces may be various of situations according to view positions.

- surfaces may be back-facing

Motivation (1/4)

Page 5: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

5

• Surface may be occluding

Motivation (2/4)

Page 6: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

6

• Surfaces may be overlapping

Motivation (3/4)

Page 7: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

7

• Surfaces may be intersecting

Motivation (4/4)

Page 8: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

8

• Back-face detection• Depth buffer• A-buffer• Scan line• Depth sorting• BSP-tree• Area subdivision• Ray casting

Approaches

Page 9: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

9

• Object–space methods- Viewer 의 가시선상에서 object 가 보이는지 , 안보이는지를 직접 결정- wire frame display 에서 line display 시 사용

• Image-space methods- using most methods- projection plane 상의 각 pixel position 에 point 에 따라 visibility 결정

Classification

Page 10: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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)

Page 11: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 12: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 13: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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)

Page 14: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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)

Page 15: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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)

Page 16: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 17: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 18: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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)

Page 19: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 20: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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)

Page 21: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

21

Depth Sorting Method (2/7)

Page 22: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 23: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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’

Page 24: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 25: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

25

4.The projections of the two surfaces onto the view plane do not overlap

Depth Sorting Method (6/7)

Page 26: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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’’

Page 27: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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)

Page 28: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 29: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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)

Page 30: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 31: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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)

Page 32: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

>

Page 33: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

33

• Cast ray from viewpoint through each pixelto find front-most surface

Ray Casting Method (1/2)

Page 34: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

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

Page 35: 1 3D Hidden Surface Removal 2001.2.28 김 성 남. 2 Contents Goal Motivation Approaches - back face detection - depth buffer - A-buffer - Scan line - Depth.

35

• Hidden Surface Removal Algorithm- Back-face detection- Depth buffer- A-buffer- Scan line- Depth sorting- BSP-tree- Area subdivision- Ray casting

Summary