Computer Graphics Viewing. 2 of 30 Viewing in 2D Window in world coordinates. 45  250  Viewport in Device coords 250 x 250 Pixels.

Slides:



Advertisements
Similar presentations
Computer Graphics - Rasterization -
Advertisements

Computer Graphics 4: Viewing In 2D
Rezanje črt in poligonov. World window & viewport window viewport screen window world window.
Computer Graphics CLIPPING.
Objectives Define Clipping Various clipping methods. Line clipping methods.
CS 352: Computer Graphics Chapter 7: The Rendering Pipeline.
Computer Graphics Lecture 8 Arbitrary Viewing II: More Projection, Clipping and Mathematics of 3D Viewing.
Course Website: Computer Graphics 4: Viewing In 2D.
Computer Graphics : Clipping
Computer Graphics Viewing.
Viewing & Clipping In 2D. 2 of 44 Contents Windowing Concepts Clipping –Introduction –Brute Force –Cohen-Sutherland Clipping Algorithm Area Clipping –Sutherland-Hodgman.
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
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.
Course Website: Computer Graphics 9: Clipping In 3D.
1 CSCE 441 Computer Graphics: Clipping Lines Jinxiang Chai.
1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 Clipping.
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.
2-Dimension Viewing and Clipping
CS 376 Introduction to Computer Graphics 02 / 12 / 2007 Instructor: Michael Eckmann.
Clipping: Clipping is a process of dividing an object into visible and invisible positions and displaying the visible portion and discarding the invisible.
Clipping Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally by David Luebke)
CS 480/680 Computer Graphics Shading in OpenGL Dr. Frederick C Harris, Jr. Fall 2013.
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,
Basic Perspective Projection Watt Section 5.2, some typos Define a focal distance, d, and shift the origin to be at that distance (note d is negative)
EEL Introduction to Computer Graphics
CS COMPUTER GRAPHICS LABORATORY. LIST OF EXPERIMENTS 1.Implementation of Bresenhams Algorithm – Line, Circle, Ellipse. 2.Implementation of Line,
Computer Graphics Lecture 20 Fasih ur Rehman. Last Class Clipping – What is clipping – Why we do clipping – How clipping is done.
1Computer Graphics Implementation 1 Lecture 15 John Shearer Culture Lab – space 2
Graphics Graphics & Graphical Programming Lecture 23 - Viewing & Clipping.
Computer Graphics Viewing. 2 of 30 Viewing in 2D Window in world coordinates. 45  250  Viewport in Device coords 250 x 250 Pixels.
Lecture 9 From Vertices to Fragments. Objectives Introduce basic implementation strategies Clipping Rasterization hidden-surface removal.
CS552: Computer Graphics Lecture 12: 3D Clipping.
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.
CS 551 / 645: Introductory Computer Graphics
Computer Graphics Shading in OpenGL
Concepts, Algorithms for line clipping
Clipping Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006
CSCE 441 Computer Graphics: Clipping Polygons Jinxiang Chai
Concepts, algorithms for clipping
3D Clipping.
Implementation I Ed Angel
Graphics Pipeline Clipping
Computer Graphics 9: Clipping In 3D
Chapter 7 2D Clipping.
WINDOWING AND CLIPPING
o عَلَّمَهُ الْبَيَانَ
Computer Graphics : Viewing In 2D
CSCE 441 Computer Graphics: Clipping Polygons Jinxiang Chai
CSCE 441 Computer Graphics: Clipping Lines Jinxiang Chai
WINDOWING AND CLIPPING
Lecture 13 Clipping & Scan Conversion
CSCE 441 Computer Graphics: Clipping Polygons Jinxiang Chai
Joshua Barczak CMSC 435 UMBC
Two Dimensional Viewing and Clipping.
© University of Wisconsin, CS559 Fall 2004
Clipping Clipping Sutherland-Hodgman Clipping
Clipping University of British Columbia CPSC 314 Computer Graphics
Implementation I Ed Angel Professor Emeritus of Computer Science
COMPUTER GRAPHICS Clipping
Presentation transcript:

Computer Graphics Viewing

2 of 30 Viewing in 2D Window in world coordinates. 45  250  Viewport in Device coords 250 x 250 Pixels.

3 of 30 Viewing in 2D In 2D, a ‘world’ consists of an infinite plane, defined in ‘world’ coordinates, i.e metres, angstroms etc. We need to pick an area of the 2D plane to view, referred to as the ‘window’. On our display device, need to allocate an area for display, referred to as the ‘viewport’ in device specific coordinates. –Clip objects outside of window. –Translate to fit viewport. –Scale to device coordinates.

4 of 30 Clipping Primitives Different primitives can be handled in different ways –Points –Lines –Polygons

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

6 of 30 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

7 of 30 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

8 of 30 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

9 of 30 Trivial acceptance. All line vertices lie inside box  accept.

10 of 30 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

11 of 30 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!

12 of 30 Cohen-Sutherland Algorithm [1/4] Dispense Two Simpler Case Trivially accept / Visible Trivially reject / Not Visible

13 of 30 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

14 of 30 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

15 of 30 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?

16 of 30 Cohen-Sutherland Clipping

17 of 30 Cohen-Sutherland Algorithm [2/4] Test for trivial acceptance or rejection P = 1001 ABRL P Trivial accept: Codes for both end points are 0000 Trivial reject: Codes for both end points have a 1 in the same position. 0000

18 of 30 Cohen-Sutherland: World Division World space is divided into regions based on the window boundaries –Each region has a unique four bit region code –Region codes indicate the position of the regions with respect to the window Window abovebelowrightleft 3210 Region Code Legend

19 of 30 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]

20 of 30 Cohen-Sutherland Line Clipping Lets us eliminate many edge clips early Extends easily to 3D –27 regions –6 bits Similar triangles still works in 3D –Just have to do it for 2 sets of similar triangles

21 of 30 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]

22 of 30 Cohen-Sutherland: Lines Outside The Window Any lines with a common set bit in the region codes of both end-points can be clipped –The AND operation can efficiently check this 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]

23 of Clipping analytically calculating the portions of primitives within the viewport

24 of 30 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

25 of 30 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

26 of 30 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]

27 of 30 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]

28 of 30 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]

29 of 30 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]

30 of 30 Serial Clipping y = top y = bottom x = leftx = right

31 of 30 Serial Clipping First clip 0001 Move (x 0,y 0 ) to (left,…) y = top y = bottom x = leftx = right

32 of 30 Serial Clipping First clip 0001 Move (x 0,y 0 ) to (left,…) Then clip 0010 Move (x 1,y 1 ) to (right,…) y = top y = bottom x = leftx = right

33 of 30 Serial Clipping First clip 0001 Move (x 0,y 0 ) to (left,…) Then clip 0010 Move (x 1,y 1 ) to (right,…) Then clip 0100 Move (x 0,y 0 ) again, now to (…,bottom) y = top y = bottom x = leftx = right

34 of 30 Serial Clipping First clip 0001 Move (x 0,y 0 ) to (left,…) Then clip 0010 Move (x 1,y 1 ) to (right,…) Then clip 0100 Move (x 0,y 0 ) again, now to (…,bottom) Finally clip 1000 Move (x 1,y 1 ) again, now to (…,top) y = top y = bottom x = leftx = right

35 of 30 Cohen-Sutherland Worked Example wy max wy min wx min wx max Window

36 of 30 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

37 of 30 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 )

38 of 30 From the following figure show the clipping lines result from the window with coordinates x min =4, x max =13, y min = 4, and y max =12. H (5, 3) D E F G C (8, 8) (3, 13) (17, 16) (16, 9) (14, 3)

39 of 30 Polygon Clipping not just clipping all boundary lines –may have to introduce new line segments

40 of 30 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

41 of 30 Sutherland-Hodgman Area Clipping Algorithm A technique for clipping areas developed by Sutherland & Hodgman Put simply the polygon is clipped by comparing it against each boundary in turn Original AreaClip LeftClip RightClip TopClip Bottom Sutherland turns up again. This time with Gary Hodgman with whom he worked at the first ever graphics company Evans & Sutherland

42 of 30 Sutherland-Hodgeman Algorithm

43 of 30 Sutherland-Hodgeman Clipping basic idea: –consider each edge of the viewport individually –clip the polygon against the edge equation –after doing all edges, the polygon is fully clipped

44 of 30 Sutherland-Hodgeman Clipping basic idea: –consider each edge of the viewport individually –clip the polygon against the edge equation –after doing all edges, the polygon is fully clipped

45 of 30 Sutherland-Hodgeman Clipping basic idea: –consider each edge of the viewport individually –clip the polygon against the edge equation –after doing all edges, the polygon is fully clipped

46 of 30 How many sides? Seven…

47 of 30 Sutherland-Hodgeman Clipping edge from s to p takes one of four cases: (blue line can be a line or a plane) insideoutside s p p output insideoutside s p no output insideoutside s p i output insideoutside s p i output p output

48 of 30 Sutherland-Hodgman Area Clipping Algorithm (cont…) To clip an area against an individual boundary: –Consider each vertex in turn against the boundary –Vertices inside the boundary are saved for clipping against the next boundary –Vertices outside the boundary are clipped –If we proceed from a point inside the boundary to one outside, the intersection of the line with the boundary is saved –If we cross from the outside to the inside intersection point and the vertex are saved

49 of 30 Sutherland-Hodgman Example Each example shows the point being processed (P) and the previous point (S) Saved points define area clipped to the boundary in question S P Save Point P S P Save Point I I P S No Points Saved S P Save Points I & P I

50 of 30 Other Area Clipping Concerns Clipping concave areas can be a little more tricky as often superfluous lines must be removed Clipping curves requires more work –For circles we must find the two intersection points on the window boundary Window

Clipping In 3D

52 of 30 Discard Objects Discarding objects that cannot possibly be seen involves comparing an objects bounding box/sphere against the dimensions of the view volume –Can be done before or after projection

53 of 30 Clipping Objects Objects that are partially within the viewing volume need to be clipped – just like the 2D case

54 of 30 Dividing Up The World Similar to the case in two dimensions, we divide the world into regions This time we use a 6-bit region code to give us 27 different region codes The bits in these regions codes are as follows: bit 6 Far bit 5 Near bit 4 Top bit 3 Bottom bit 2 Right bit 1 Left

55 of 30 Region Codes Images taken from Hearn & Baker, “Computer Graphics with OpenGL” (2004)

56 of 30 Point Clipping Point clipping is trivial so we won’t spend any time on it

57 of 30 Line Clipping To clip lines we first label all end points with the appropriate region codes We can trivially accept all lines with both end-points in the [000000] region We can trivially reject all lines whose end points share a common bit in any position –This is just like the 2 dimensional case as these lines can never cross the viewing volume –In the example that follows the line from P 3 [010101] to P 4 [100110] can be rejected

58 of 30 Line Clipping Example Images taken from Hearn & Baker, “Computer Graphics with OpenGL” (2004)

59 of 30 3D Line Clipping Example Consider the line P 1 [000010] to P 2 [001001] Because the lines have different values in bit 2 we know the line crosses the right boundary Images taken from Hearn & Baker, “Computer Graphics with OpenGL” (2004)

60 of 30 3D Line Clipping Example (cont…) When then simply continue as per the two dimensional line clipping algorithm

61 of 30 3D Polygon Clipping However the most common case in 3D clipping is that we are clipping graphics objects made up of polygons Images taken from Hearn & Baker, “Computer Graphics with OpenGL” (2004)

62 of 30 3D Polygon Clipping (cont…) In this case we first try to eliminate the entire object using its bounding volume Next we perform clipping on the individual polygons using the Sutherland-Hodgman algorithm we studied previously

63 of 30 Cheating with Clipping Planes For far clipping plane introduce something to obscure far away objects – fog Make objects very near the camera transparent

64 of 30 Using raster algorithms draw the following object where the arc spans exactly the one octant. P 1 (0, 0) P 2 (0, 9)

65 of 30

66 of 30 Two endpoints A(4, 11) and B(13,15) describe the line segment AB. Give the pixels of the line using Mid-Point algorithm. Assume that AB is a polygon edge. Find the intersection of this edge with the scanline y=13 and apply filling rule. Draw a circle with radius 7 and cantered at (6, 3)

67 of 30 Draw the line from point (3, 2) to (11, 7) using Mid-point Algorithm. Draw a circle with radius 8 and cantered at (7, -3)

68 of 30 Matrices Reminder: A matrix is a rectangular array of numbers –An m x n matrix has m rows and n columns M ij denotes the entry in the i-th row and j-th column of matrix M –These are generally thought of as1- indexed (instead of 0-indexed)

69 of 30 Matrix Addition –Only well defined if the dimensions of the 2 matrices are the same That is, m 1 = m 2 and n 1 = n 2 Here, M and G are both 2 x 5

70 of 30 Matrix Multiplication –Only well defined if the number of columns of the first matrix and the number of rows of the second matrix are the same Matrix * Matrix = Matrix i.e. if F is m x n, and G is n x p, then FG if m x p –Let’s do an example

71 of 30 The Identity Matrix Defined such that the product of any matrix M and the identity matrix I is M – IM = MI = M Let’s derive it The identity matrix is a square matrix with ones on the diagonal and zeros elsewhere