Presentation is loading. Please wait.

Presentation is loading. Please wait.

Graphics Graphics Korea University cgvr.korea.ac.kr 1 2D Viewing 고려대학교 컴퓨터 그래픽스 연구실.

Similar presentations


Presentation on theme: "Graphics Graphics Korea University cgvr.korea.ac.kr 1 2D Viewing 고려대학교 컴퓨터 그래픽스 연구실."— Presentation transcript:

1 Graphics Graphics Lab @ Korea University cgvr.korea.ac.kr 1 2D Viewing 고려대학교 컴퓨터 그래픽스 연구실

2 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 2 Contents 3D Rendering Pipeline 2D Rendering Pipeline Clipping Cohen-Sutherland Line Clipping Sutherland-Hodgeman Polygon Clipping Viewport Transformation Scan Conversion Summary of Transformation

3 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 3 3D Rendering Pipeline Model Transformation Lighting Viewing Transformation Projection Transformation Clipping Viewport Transformation Scan Conversion 3D Primitives Image 3D Modeling Coordinates 3D World Coordinates 3D Viewing Coordinates 2D Projection Coordinates 2D Device Coordinates

4 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 4 3D Rendering Pipeline Model Transformation Lighting Viewing Transformation Projection Transformation Clipping Viewport Transformation Scan Conversion 3D Primitives Image 3D Modeling Coordinates 3D World Coordinates 3D Viewing Coordinates 2D Projection Coordinates 2D Device Coordinates

5 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 5 2D Rendering Pipeline 3D Primitives Clipping Viewport Transformation Scan Conversion Image Clip portions of geometric primitives residing outside window Transform the clipped primitives from screen to image coordinates Fill pixel representing primitives in screen coordinates 2D Primitives

6 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 6 2D Rendering Pipeline 3D Primitives Clipping Viewport Transformation Scan Conversion Image Clip portions of geometric primitives residing outside window Transform the clipped primitives from screen to image coordinates Fill pixel representing primitives in screen coordinates 2D Primitives

7 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 7 Clipping Avoid Drawing Parts of Primitives Outside Window Window defines part of scene being viewed Must draw geometric primitives only inside window World Coordinates

8 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 8 Clipping Avoid Drawing Parts of Primitives Outside Window Window defines part of scene being viewed Must draw geometric primitives only inside window

9 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 9 Clipping Avoid Drawing Parts of Primitives Outside Window Points Lines Polygons Circles etc.

10 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 10 Point Clipping Is Point(x,y) Inside the Clip Window? (x, y) wx2wx1 wy1 wy2 Inside = (x>=wx1) && (x<=wx2) && (y>=wy1) && (y<=wy2); Inside = (x>=wx1) && (x<=wx2) && (y>=wy1) && (y<=wy2);

11 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 11 Line Clipping Find the Part of a Line Inside the Clip Window P7P7 P8P8 P 10 P9P9 P1P1 P2P2 P5P5 P4P4 P3P3 P6P6 Before Clipping

12 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 12 Line Clipping Find the Part of a Line Inside the Clip Window After Clipping P4P4 P3P3 P6P6 P’ 8 P’ 7 P’ 5

13 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 13 Cohen-Sutherland Line Clipping Use Simple Tests to Classify Easy Cases First P7P7 P8P8 P 10 P9P9 P1P1 P2P2 P5P5 P4P4 P3P3 P6P6

14 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 14 Cohen-Sutherland Line Clipping Classify Some Lines Quickly by AND of Bit Codes Representing Regions of Two Endpoints (Must Be 0) P 10 P5P5 P6P6 P9P9 0001 P7P7 P8P8 0101 0100 01100010 0000 1010 1000 P1P1 P2P2 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1

15 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 15 Cohen-Sutherland Line Clipping Classify Some Lines Quickly by AND of Bit Codes Representing Regions of Two Endpoints (Must Be 0) P 10 P5P5 P6P6 P9P9 0001 P7P7 P8P8 0101 0100 01100010 0000 1010 1000 P1P1 P2P2 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1

16 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 16 Cohen-Sutherland Line Clipping Classify Some Lines Quickly by AND of Bit Codes Representing Regions of Two Endpoints (Must Be 0) P 10 P5P5 P6P6 P9P9 0001 P7P7 P8P8 0101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1

17 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 17 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P5P5 P6P6 P9P9 0001 P7P7 P8P8 0101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1

18 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 18 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P5P5 P6P6 P9P9 0001 P7P7 P8P8 0101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1

19 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 19 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 P9P9 0001 P7P7 P8P8 0101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5

20 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 20 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 P9P9 0001 P7P7 P8P8 0101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5

21 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 21 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 P9P9 0001 P7P7 P8P8 0101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5

22 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 22 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 P9P9 0001 P7P7 P8P8 0101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5

23 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 23 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 P9P9 0001 P8P8 0101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5 P’ 7

24 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 24 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 P9P9 0001 P8P8 0101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5 P’ 7

25 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 25 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 P9P9 00010101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5 P’ 7 P’ 8

26 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 26 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 P9P9 00010101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5 P’ 7 P’ 8

27 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 27 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 P9P9 00010101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5 P’ 7 P’ 8

28 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 28 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 P9P9 00010101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5 P’ 7 P’ 8

29 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 29 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P 10 P6P6 00010101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5 P’ 7 P’ 8 P’ 9

30 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 30 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P6P6 00010101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5 P’ 7 P’ 8 P 10 P’ 9

31 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 31 Cohen-Sutherland Line Clipping Compute Intersections with Window Boundary for Lines That Can’t be Classified Quickly P6P6 00010101 0100 01100010 0000 1010 1000 1001 P4P4 P3P3 Bit 4 Bit 3 Bit 2Bit 1 P’ 5 P’ 7 P’ 8

32 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 32 Polygon Clipping Find the Part of a Polygon Inside the Clip Window? Before Clipping

33 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 33 Polygon Clipping Find the Part of a Polygon Inside the Clip Window? After Clipping

34 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 34 Sutherland-Hodgeman Polygon Clipping Clip to Each Window Boundary One at a Time

35 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 35 Sutherland-Hodgeman Polygon Clipping Clip to Each Window Boundary One at a Time

36 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 36 Sutherland-Hodgeman Polygon Clipping Clip to Each Window Boundary One at a Time

37 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 37 Sutherland-Hodgeman Polygon Clipping Clip to Each Window Boundary One at a Time

38 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 38 Sutherland-Hodgeman Polygon Clipping Clip to Each Window Boundary One at a Time

39 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 39 Clipping to a Boundary Do Inside Test for Each Point in Sequence, Insert New Points When Cross Window Boundary, Remove Points Outside Window Boundary P1P1 P2P2 P3P3 P4P4 P5P5 Inside Outside Window Boundary

40 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 40 Clipping to a Boundary Do Inside Test for Each Point in Sequence, Insert New Points When Cross Window Boundary, Remove Points Outside Window Boundary P1P1 P2P2 P3P3 P4P4 P5P5 Inside Outside Window Boundary

41 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 41 Clipping to a Boundary Do Inside Test for Each Point in Sequence, Insert New Points When Cross Window Boundary, Remove Points Outside Window Boundary P1P1 P2P2 P3P3 P4P4 P5P5 Inside Outside Window Boundary

42 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 42 Clipping to a Boundary Do Inside Test for Each Point in Sequence, Insert New Points When Cross Window Boundary, Remove Points Outside Window Boundary P1P1 P2P2 P3P3 P4P4 P5P5 Inside Outside Window Boundary

43 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 43 Clipping to a Boundary Do Inside Test for Each Point in Sequence, Insert New Points When Cross Window Boundary, Remove Points Outside Window Boundary P1P1 P2P2 P3P3 P4P4 P5P5 Inside Outside Window Boundary P’

44 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 44 Clipping to a Boundary Do Inside Test for Each Point in Sequence, Insert New Points When Cross Window Boundary, Remove Points Outside Window Boundary P1P1 P2P2 P3P3 P4P4 P5P5 Inside Outside Window Boundary P’

45 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 45 Clipping to a Boundary Do Inside Test for Each Point in Sequence, Insert New Points When Cross Window Boundary, Remove Points Outside Window Boundary P1P1 P2P2 P3P3 P4P4 P5P5 Inside Outside Window Boundary P’

46 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 46 Clipping to a Boundary Do Inside Test for Each Point in Sequence, Insert New Points When Cross Window Boundary, Remove Points Outside Window Boundary P1P1 P2P2 P3P3 P4P4 P5P5 Inside Outside Window Boundary P’P”

47 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 47 Clipping to a Boundary Do Inside Test for Each Point in Sequence, Insert New Points When Cross Window Boundary, Remove Points Outside Window Boundary P1P1 P2P2 Inside Outside Window Boundary P’P”

48 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 48 2D Rendering Pipeline 3D Primitives Clipping Viewport Transformation Scan Conversion Image Clip portions of geometric primitives residing outside window Transform the clipped primitives from screen to image coordinates Fill pixel representing primitives in screen coordinates 2D Primitives

49 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 49 Viewport Transformation Transform 2D Geometric Primitives from Screen Coordinate System (Projection Coordinates) to Image Coordinate System (Device Coordinates) Screen Image Viewport

50 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 50 Window vs. Viewport Window World-coordinate area selected for display What is to be viewed Viewport Area on the display device to which a window is mapped Where it is to be displayed

51 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 51 Viewport Transformation Window-to-Viewport Mapping (wx, wy) wx2wx1 wy1 wy2 (vx, vy) vx2vx1 vy1 vy2 WindowViewport Screen CoordinatesImage Coordinates vx = vx1 + (wx – wx1) * (vx2 – vx1) / (wx2 – wx1); vy = vy1 + (wy – wy1) * (vy2 – vy1) / (wy2 – wy1); vx = vx1 + (wx – wx1) * (vx2 – vx1) / (wx2 – wx1); vy = vy1 + (wy – wy1) * (vy2 – vy1) / (wy2 – wy1);

52 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 52 2D Rendering Pipeline 3D Primitives Clipping Viewport Transformation Scan Conversion Image Clip portions of geometric primitives residing outside window Transform the clipped primitives from screen to image coordinates Fill pixel representing primitives in screen coordinates 2D Primitives

53 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 53 Scan Conversion Definition Figure out which pixels to fill Example Filling the inside of a triangle P1P1 P2P2 P3P3

54 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 54 Triangle Scan Conversion Simple Algorithm Color all pixels inside a triangle Inside triangle test  A point is inside a triangle if it is in the positive halfspace of all three boundary lines L1L1 L2L2 L3L3 P

55 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 55 Triangle Scan Conversion Triangle Sweep-Line Algorithm Take advantage of spatial coherence  Compute which pixels are inside using horizontal spans  Process horizontal spans in scan-line order Take advantage of edge linearity  Use edge slopes to update coordinates incrementally dx dy

56 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 56 Polygon Scan Conversion Fill Pixels Inside a Polygon Triangle Quadrilateral Convex Star-Shaped Concave Self-Intersecting Holes

57 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 57 Inside Polygon Rule Need Better Test for Points Inside a Polygon “Inside triangle test” works only for convex polygon L1L1 L2L2 L3L3 L4L4 L5L5 L1L1 L2L2 L3L3 L4L4 L 5A L 5B Convex PolygonConcave Polygon

58 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 58 Inside Polygon Rule Odd-Parity Rule Any ray from P to infinity crosses odd number of edges ConcaveSelf-IntersectingWith Holes

59 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 59 Polygon Scan Conversion Polygon Line-Sweep Algorithm Incremental algorithm to find spans, and determine insideness with odd-parity rule TrianglePolygon

60 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 60 Polygon Scan Conversion Hardware Scan Conversion Convert everything into Triangles

61 CGVR Graphics Lab @ Korea University cgvr.korea.ac.kr 61 Summary of Transformation P(x, y, z) Viewing Transformation Viewing Transformation Projection Transformation Projection Transformation Window-to-Viewport Transformation Window-to-Viewport Transformation P(x, y) Modeling Transformation Modeling Transformation 3D Object Coordinates 3D World Coordinates 3D Viewing Coordinates 2D Projection Coordinates 2D Device Coordinates


Download ppt "Graphics Graphics Korea University cgvr.korea.ac.kr 1 2D Viewing 고려대학교 컴퓨터 그래픽스 연구실."

Similar presentations


Ads by Google