Viewing & Clipping In 2D. 2 of 44 Contents Windowing Concepts Clipping –Introduction –Brute Force –Cohen-Sutherland Clipping Algorithm Area Clipping –Sutherland-Hodgman.

Slides:



Advertisements
Similar presentations
Computer Graphics 4: Viewing In 2D
Advertisements

Computer Graphics CLIPPING.
Objectives Define Clipping Various clipping methods. Line clipping methods.
CS 450: COMPUTER GRAPHICS FILLING POLYGONS SPRING 2015 DR. MICHAEL J. REALE.
CS 551 / 645: Introductory Computer Graphics Clipping Lines and Polygons.
Dr. Scott Schaefer Clipping Lines. 2/94 Why Clip? We do not want to waste time drawing objects that are outside of viewing window (or clipping window)
Course Website: Computer Graphics 4: Viewing In 2D.
Two-Dimensional Viewing Jehee Lee Seoul National University.
Computer Graphics : Clipping
Computer Graphics Viewing.
Clipping CSE 403 Computer Graphics Cohen Sutherland Algorithm (Line)
CMPE 466 COMPUTER GRAPHICS Chapter 8 2D Viewing Instructor: D. Arifler Material based on - Computer Graphics with OpenGL ®, Fourth Edition by Donald Hearn,
2D Viewing and Projection
2 D viewing Prepared by Elizabeth Isaac DCS, RSET.
Introduction to Computer Graphics Chapter 6 – 2D Viewing Pt 2 1.
Informationsteknologi Thursday, November 22, 2007Computer Graphics - Class 111 Today’s class Clipping Parametric and point-normal form of lines Intersecting.
Vertices and Fragments I CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
1 King ABDUL AZIZ University Faculty Of Computing and Information Technology CS 454 Computer graphics Two Dimensional Viewing Dr. Eng. Farag Elnagahy
Course Website: Computer Graphics 9: Clipping In 3D.
1 CSCE 441 Computer Graphics: Clipping Lines Jinxiang Chai.
Computer Graphics Clipping Cohen Sutherland Algorithm (Line) Cyrus-Back Algorithm (Line) Sutherland-Hodgeman Algorithm (Polygon) Cohen Sutherland Algorithm.
1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Clipping.
University College Dublin1 Clipping u Clipping is the removal of all objects or part of objects in a modelled scene that are outside the real-world window.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Implementation I Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
Graphics Pipeline Clipping CMSC 435/634. Graphics Pipeline Object-order approach to rendering Sequence of operations – Vertex processing – Transforms.
1 Computer Graphics Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester ITGD3107 University of Palestine.
2-Dimension Viewing and Clipping
Clipping Apart from clipping to the view volume, clipping is a basic operation in many other algorithms –Breaking space up into chunks –2D drawing and.
Windowing and clipping
CS 376 Introduction to Computer Graphics 02 / 12 / 2007 Instructor: Michael Eckmann.
Two-Dimensional Viewing
Clipping: Clipping is a process of dividing an object into visible and invisible positions and displaying the visible portion and discarding the invisible.
CS 325 Introduction to Computer Graphics 03 / 08 / 2010 Instructor: Michael Eckmann.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
CS 480/680 Computer Graphics Shading in OpenGL Dr. Frederick C Harris, Jr. Fall 2013.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 2D Viewing 고려대학교 컴퓨터 그래픽스 연구실.
CSE Real Time Rendering Week 9. Post Geometry Shaders Courtesy: E. Angel and D. Shreiner – Interactive Computer Graphics 6E © Addison-Wesley 2012.
Windows, Viewports, and Clipping
Unit – IV 2D Viewing. 2 of 30 Contents Windowing Concepts The viewing pipeline viewing coordinate reference frame, window to view-port coordinate transformation,
10/19/04© University of Wisconsin, CS559 Fall 2004 Last Time Clipping –Why we care –Sutherland-Hodgman –Cohen-Sutherland –Intuition for Liang-Barsky Homework.
EEL Introduction to Computer Graphics
1 Computer Graphics Clipping Fall FCC Line Clipping What happens when one or both endpoints of a line segment are not inside the specified drawing.
1Computer Graphics Implementation 1 Lecture 15 John Shearer Culture Lab – space 2
2D Viewing.
Introduction to Computer Graphics Chapter 6 – 2D Viewing Pt 3 1.
Clipping Primitives. Clipping line Clipping rectangle: – x min to x max – y min to y max A point (x,y) lies within a clip rectangle and thus displayed.
A.Aruna/Assistant Professor/SNSCE
Clipping. Before clipping… After clipping… Point Clipping Display P = (x, y) if xw min
Computer Graphics Viewing. 2 of 30 Viewing in 2D Window in world coordinates. 45  250  Viewport in Device coords 250 x 250 Pixels.
Clipping.
Computer Graphics Lecture 14 CLIPPING I Taqdees A. Siddiqi
Computer Graphic 2 D Viewing.
Computer Graphics Clipping.
Computer Graphics CC416 Week 13 Clipping.
Transformations contd.
Computer Graphics Shading in OpenGL
Fill Area Algorithms Jan
Concepts, algorithms for clipping
Graphics Pipeline Clipping
Chapter 7 2D Clipping.
WINDOWING AND CLIPPING
Computer Graphics : Viewing In 2D
CSCE 441 Computer Graphics: Clipping Polygons Jinxiang Chai
WINDOWING AND CLIPPING
Lecture 13 Clipping & Scan Conversion
CSCE 441 Computer Graphics: Clipping Polygons Jinxiang Chai
Two Dimensional Viewing and Clipping.
Clipping Clipping Sutherland-Hodgman Clipping
Computer Graphics Viewing. 2 of 30 Viewing in 2D Window in world coordinates. 45  250  Viewport in Device coords 250 x 250 Pixels.
COMPUTER GRAPHICS Clipping
Presentation transcript:

Viewing & Clipping In 2D

2 of 44 Contents Windowing Concepts Clipping –Introduction –Brute Force –Cohen-Sutherland Clipping Algorithm Area Clipping –Sutherland-Hodgman Area Clipping Algorithm

3 of 44 Windowing I A scene is made up of a collection of objects specified in world coordinates World Coordinates

4 of 44 Windowing II When we display a scene only those objects within a particular window are displayed wy max wy min wx min wx max Window World Coordinates

5 of 44 Windowing III Because drawing things to a display takes time we clip everything outside the window wy max wy min wx min wx max World Coordinates Window

6 of 44 Clipping For the image below consider which lines and points should be kept and which ones should be clipped wy max wy min wx min wx max Window P1P1 P2P2 P3P3 P6P6 P5P5 P7P7 P 10 P9P9 P4P4 P8P8

7 of 44 Point Clipping Easy - a point ( x,y ) is not clipped if: wx min ≤ x ≤ wx max AND wy min ≤ y ≤ wy max otherwise it is clipped wy max wy min wx min wx max Window P1P1 P2P2 P5P5 P7P7 P 10 P9P9 P4P4 P8P8 Clipped Points Within the Window are Not Clipped Clipped

8 of 44 Line Clipping Harder - examine the end-points of each line to see if they are in the window or not SituationSolutionExample Both end-points inside the window Don’t clip One end-point inside the window, one outside Must clip Both end-points outside the window Don’t know!

9 of 44 Brute Force Line Clipping Brute force line clipping can be performed as follows: –Don’t clip lines with both end-points within the window –For lines with one end- point inside the window and one end-point outside, calculate the intersection point (using the equation of the line) and clip from this point out

10 of 44 Brute Force Line Clipping (cont…) –For lines with both end- points outside the window test the line for intersection with all of the window boundaries, and clip appropriately However, calculating line intersections is computationally expensive Because a scene can contain so many lines, the brute force approach to clipping is much too slow

11 of 44 Cohen-Sutherland Clipping Algorithm An efficient line clipping algorithm The key advantage of the algorithm is that it vastly reduces the number of line intersections that must be calculated Dr. Ivan E. Sutherland co-developed the Cohen- Sutherland clipping algorithm. Sutherland is a graphics giant and includes amongst his achievements the invention of the head mounted display. Cohen is something of a mystery – can anybody find out who he was?

12 of 44 Cohen-Sutherland Clipping Algorithm One of the earliest algorithms with many variations in use. Processing time reduced by performing more test before proceeding to the intersection calculation. Initially, every line endpoint is assigned a four digit binary value called a region code, and each bit is used to indicate whether the point is inside or outside one of the clipping- window boundaries.

13 of 44 Cohen-Sutherland Clipping Algorithm We can reference the window edges in any order, and here is one possibility. For this ordering, (bit 1) references the left boundary, and (bit 4) references the top one. A value of 1 (true) in any bit position indicate that the endpoint is outsides of that border. A value of 0 (false) indicates that the endpoint is inside or on that border. TopBottomRightLeft 4321

14 of 44 Cohen-Sutherland: World Division The four window borders create nine regions The Figure below lists the value for the binary code in each of these regions Window Thus, an endpoint that is below and to the left of the clipping window is assigned the region (0101). The region code for any endpoint inside the clipping window is (0000).

15 of 44 Cohen-Sutherland: Labelling Every end-point is labelled with the appropriate region code wy max wy min wx min wx max Window P 3 [0001] P 6 [0000] P 5 [0000] P 7 [0001] P 10 [0100] P 9 [0000] P 4 [1000] P 8 [0010] P 12 [0010] P 11 [1010] P 13 [0101] P 14 [0110]

16 of 44 Cohen-Sutherland: Lines In The Window Lines completely contained within the window boundaries have region code [0000] for both end-points so are not clipped wy max wy min wx min wx max Window P 3 [0001] P 6 [0000] P 5 [0000] P 7 [0001] P 10 [0100] P 9 [0000] P 4 [1000] P 8 [0010] P 12 [0010] P 11 [1010] P 13 [0101] P 14 [0110]

17 of 44 Cohen-Sutherland: Lines Outside The Window Any lines with 1 in the same bit position for both end-points is completely outside and must be clipped. For example a line with 1010 code for one endpoint and 0010 for the other (line P11, P12) is completely to the right of the clipping window. wy max wy min wx min wx max Window P 3 [0001] P 6 [0000] P 5 [0000] P 7 [0001] P 10 [0100] P 9 [0000] P 4 [1000] P 8 [0010] P 12 [0010] P 11 [1010] P 13 [0101] P 14 [0110]

18 of 44 Cohen-Sutherland: Inside/Outside Lines We can perform inside/outside test for lines using logical operators. When the or operation between two endpoint codes is false (0000), the line is inside the clipping window, and we save it. When the and operation between two endpoint codes is true (not 0000), the line is completely outside the clipping window, and we can eliminate it.

19 of 44 Cohen-Sutherland: Other Lines Lines that cannot be identified as completely inside or outside the window may or may not cross the window interior These lines are processed as follows: –Compare an end-point outside the window to a boundary (choose any order in which to consider boundaries e.g. left, right, bottom, top) and determine how much can be discarded –If the remainder of the line is entirely inside or outside the window, retain it or clip it respectively

20 of 44 Cohen-Sutherland: Other Lines (cont…) –Otherwise, compare the remainder of the line against the other window boundaries –Continue until the line is either discarded or a segment inside the window is found We can use the region codes to determine which window boundaries should be considered for intersection –To check if a line crosses a particular boundary we compare the appropriate bits in the region codes of its end-points –If one of these is a 1 and the other is a 0 then the line crosses the boundary

21 of 44 Cohen-Sutherland Examples Consider the line P 9 to P 10 below –Start at P 10 –From the region codes of the two end-points we know the line doesn’t cross the left or right boundary –Calculate the intersection of the line with the bottom boundary to generate point P 10 ’ –The line P 9 to P 10 ’ is completely inside the window so is retained wy max wy min wx min wx max Window P 10 [0100] P 9 [0000] P 10 ’ [0000] P 9 [0000]

22 of 44 Cohen-Sutherland Examples (cont…) Consider the line P 3 to P 4 below –Start at P 4 –From the region codes of the two end-points we know the line crosses the left boundary so calculate the intersection point to generate P 4 ’ –The line P 3 to P 4 ’ is completely outside the window so is clipped wy max wy min wx min wx max Window P 4 ’ [1001] P 3 [0001] P 4 [1000] P 3 [0001]

23 of 44 Cohen-Sutherland Examples (cont…) Consider the line P 7 to P 8 below –Start at P 7 –From the two region codes of the two end-points we know the line crosses the left boundary so calculate the intersection point to generate P 7 ’ wy max wy min wx min wx max Window P 7 ’ [0000] P 7 [0001] P 8 [0010] P 8 ’ [0000]

24 of 44 Cohen-Sutherland Examples (cont…) Consider the line P 7 ’ to P 8 –Start at P 8 –Calculate the intersection with the right boundary to generate P 8 ’ –P 7 ’ to P 8 ’ is inside the window so is retained wy max wy min wx min wx max Window P 7 ’ [0000] P 7 [0001] P 8 [0010] P 8 ’ [0000]

25 of 44 Cohen-Sutherland Worked Example wy max wy min wx min wx max Window

26 of 44 Calculating Line Intersections Intersection points with the window boundaries are calculated using the line- equation parameters –Consider a line with the end-points ( x 1, y 1 ) and ( x 2, y 2 ) –The y-coordinate of an intersection with a vertical window boundary can be calculated using: y = y 1 + m (x boundary - x 1 ) where x boundary can be set to either wx min or wx max

27 of 44 Calculating Line Intersections (cont…) –The x-coordinate of an intersection with a horizontal window boundary can be calculated using: x = x 1 + (y boundary - y 1 ) / m where y boundary can be set to either wy min or wy max –m is the slope of the line in question and can be calculated as m = (y 2 - y 1 ) / (x 2 - x 1 )

28 of 44 Area Clipping Similarly to lines, areas must be clipped to a window boundary Consideration must be taken as to which portions of the area must be clipped

29 of 44 Area Clipping

30 of 44 Area Clipping

31 of 44 Sutherland-Hodgeman Polygon Clipping

32 of 44 Sutherland-Hodgeman Polygon Clipping

33 of 44 Sutherland-Hodgeman Polygon Clipping

34 of 44 Sutherland-Hodgeman Polygon Clipping

35 of 44 Sutherland-Hodgeman Polygon Clipping Start at the left boundary 1,2 (out,out) → clip 2,3 (in,out) → save 1’, 3 3,4 (in,in) → save 4 4,5 (in,in) → save 5 5,6 (in,out) → save 5’ Saved points → 1’,3,4,5,5’ 6,1 (out,out) → clip Using these points we repeat the process for the next boundary. Example

36 of 44 Weiler-Atherton Polygon Clipping Convex polygons are correctly clipped by the Sutherland-Hodgeman algorithm, but concave polygons may be displayed with extra areas (area inside the red circle), as demonstrated in the following figure.

37 of 44 Weiler-Atherton Polygon Clipping This occurs when the clipped polygon should have two or more separate sections. But since there is only one output vertex list, the last vertex in the list is always joined to the first vertex. There are several things we could do to correctly display concave polygons. For one, we could split the concave polygon into two or more convex polygons and process each convex polygon separately Another possibility is to modify the Sutherland-Hodgeman approach to check the final vertex list for multiple vertex points along any Clip window boundary and correctly join pairs of vertices. Finally, we could use a more general polygon clipper, such as either the Weiler-Atherton algorithm or the Weiler algorithm.

38 of 44 Weiler-Atherton Polygon Clipping In Weiler-Atherton Polygon Clipping, the vertex-processing procedures for window boundaries are modified so that concave polygons are displayed correctly. This clipping procedure was developed as a method for identifying visible surfaces, and so it can be applied with arbitrary polygon- clipping regions.

39 of 44 Weiler-Atherton Polygon Clipping The basic idea in this algorithm is that instead of always proceeding around the polygon edges as vertices are processed, we sometimes want to follow the window boundaries. Which path we follow depends on the polygon-processing direction (clockwise or counterclockwise) and whether the pair of polygon vertices currently being processed represents an outside-to-inside pair or an inside-to-outside pair.

40 of 44 Weiler-Atherton Polygon Clipping For clockwise processing of polygon vertices, we use the following rules: 1.For an outside-to-inside pair of vertices, follow the polygon boundary 2.For an inside-to-outside pair of vertices, follow the window boundary in a clockwise direction.

41 of 44 Weiler-Atherton Polygon Clipping Example In the following figure, the processing direction in the Weiler-Atherton algorithm and the resulting clipped polygon is shown for a rectangular clipping window.

42 of 44 Text Clipping

43 of 44 Text Clipping

44 of 44 Curve Clipping