Computer Graphics Viewing 2 of 30 Viewing in
- Slides: 70
Computer Graphics Viewing
2 of 30 Viewing in 2 D 250 45 Window in world coordinates. Viewport in Device coords 250 x 250 Pixels.
3 of 30 Viewing in 2 D • In 2 D, a ‘world’ consists of an infinite plane, defined in ‘world’ coordinates, i. e metres, angstroms etc. • We need to pick an area of the 2 D 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 Window wymax wymin wxmax wxmin World Coordinates
7 of 30 Windowing III Because drawing things to a display takes time we clip everything outside the window Window wymax wymin wxmax wxmin World Coordinates
8 of 30 Clipping For the image below consider which lines and points should be kept and which ones should be clipped P 4 Window wymax P 2 P 6 P 3 P 1 P 5 P 7 P 9 P 8 wymin P 10 wxmin wxmax
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: wxmin ≤ x ≤ wxmax AND wymin ≤ y ≤ wymax otherwise it is clipped P 4 Clipped Window wymax Clipped P 7 P 5 P 2 P 1 Points Within the Window are Not Clipped P 9 wymin Clipped wxmin P 8 P 10 wxmax
11 of 30 Line Clipping Harder - examine the end-points of each line to see if they are in the window or not Situation Solution Both end-points inside Don’t clip the window One end-point inside the window, one outside Must clip Both end-points outside the window Don’t know! Example
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 endpoint 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 endpoints 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 Cohen is something of a mystery – can anybody find out who he was? 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.
16 of 30 Cohen-Sutherland Clipping
17 of 30 Cohen-Sutherland Algorithm [2/4] Test for trivial acceptance or rejection P 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 Trivial accept: Codes for both end points are 0000 Trivial reject: Codes for both end points have a 1 in the same position. P= A B R L 1 0
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 1001 3 2 1 above below right 0 left 0001 Region Code Legend 0101 1000 0000 Window 0100 1010 0110
19 of 30 Cohen-Sutherland: Labelling Every end-point is labelled with the appropriate region code P 11 [1010] P 4 [1000] Window wymax P 6 [0000] P 3 [0001] P 12 [0010] P 5 [0000] P 7 [0001] P 9 [0000] wymin P 13 [0101] wxmin P 8 [0010] P 10 [0100] wxmax P 14 [0110]
20 of 30 Cohen-Sutherland Line Clipping • Lets us eliminate many edge clips early • Extends easily to 3 D – 27 regions – 6 bits • Similar triangles still works in 3 D – 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 P 11 [1010] P 4 [1000] Window wymax P 6 [0000] P 3 [0001] P 12 [0010] P 5 [0000] P 7 [0001] P 9 [0000] wymin P 13 [0101] wxmin P 8 [0010] P 10 [0100] wxmax 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 P 11 [1010] P 4 [1000] Window wymax P 6 [0000] P 3 [0001] P 12 [0010] P 5 [0000] P 7 [0001] P 9 [0000] wymin P 13 [0101] wxmin P 8 [0010] P 10 [0100] wxmax P 14 [0110]
23 of 30 Clipping • analytically calculating the portions of primitives within the viewport 23
24 of 30 Cohen-Sutherland: Other 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 Window wymax – From the region codes of the two end-points we know the line doesn’t P [0000] wymin P ’ [0000] cross the left or right P [0100] boundary wxmin wxmax – 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 9 10 10
27 of 30 Cohen-Sutherland Examples (cont…) Consider the line P 3 to P 4 below – Start at P 4 P [1000] P ’ [1001] Window wy – From the region codes max P [0001] of the two end-points we know the line crosses the left wymin boundary so calculate the intersection point to wxmin generate P 4’ – The line P 3 to P 4’ is completely outside the window so is clipped 4 4 3 wxmax
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’ Window wymax P 7’ [0000] P 7 [0001] wymin wxmin P 8 [0010] P 8’ [0000] wxmax
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 Window wymax P 7’ [0000] P 7 [0001] wymin wxmin P 8 [0010] P 8’ [0000] wxmax
30 of 30 Serial Clipping 1001 1000 1010 y = top 0001 0010 y = bottom 0101 0100 x = left 0110 x = right
31 of 30 Serial Clipping 1001 1000 1010 y = top • First clip 0001 • Move (x 0, y 0) to (left, …) 0001 0010 y = bottom 0101 0100 x = left 0110 x = right
32 of 30 Serial Clipping 1001 1000 1010 • • y = top First clip 0001 Move (x 0, y 0) to (left, …) y = bottom Then clip 0010 0101 Move (x 1, y 1) to (right, …) x = left 0010 0100 0110 x = right
33 of 30 Serial Clipping 1001 1000 1010 • • • y = top First clip 0001 Move (x 0, y 0) to (left, …) y = bottom Then clip 0010 0101 0100 Move (x 1, y 1) to (right, …) x = left Then clip 0100 Move (x 0, y 0) again, now to (…, bottom) 0010 0110 x = right
34 of 30 Serial Clipping 1001 1000 1010 • • y = top First clip 0001 Move (x 0, y 0) to (left, …) y = bottom Then clip 0010 0101 0100 Move (x 1, y 1) to (right, …) x = left Then clip 0100 Move (x 0, y 0) again, now to (…, bottom) Finally clip 1000 Move (x 1, y 1) again, now to (…, top) 0010 0110 x = right
35 of 30 Cohen-Sutherland Worked Example Window wymax wymin wxmax
36 of 30 Calculating Line Intersections Intersection points with the window boundaries are calculated using the lineequation 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 (xboundary - x 1) where xboundary can be set to either wxmin or wxmax
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 + (yboundary - y 1) / m where yboundary can be set to either wymin or wymax – 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 xmin =4, xmax =13, ymin = 4, and ymax =12. E (17, 16) D (3, 13) 12 C (8, 8) G 4 F (5, 3) 4 H (14, 3) 13 (16, 9)
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
Sutherland-Hodgman Area Clipping Algorithm 41 of 30 A technique for clipping areas developed by Sutherland & Hodgman Put simply the polygon is clipped by comparing it against each boundary in turn Original Area Clip Left Clip Right Sutherland turns up again. This time with Gary Hodgman with whom he worked at the first ever graphics company Evans & Sutherland Clip Top Clip Bottom
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) inside outside inside p s p p output outside s i output p inside p s no output i output p output outside s
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 S P I P Save Point I Save Point P S P I P S No Points Saved Save Points I & P
50 of 30 Other Area Clipping Concerns Clipping concave areas can be a little more tricky as often superfluous lines must be removed Window Clipping curves requires more work – For circles we must find the two intersection points on the window boundary
Clipping In 3 D
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 2 D 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
Images taken from Hearn & Baker, “Computer Graphics with Open. GL” (2004) 55 of 30 Region Codes
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
Images taken from Hearn & Baker, “Computer Graphics with Open. GL” (2004) 58 of 30 Line Clipping Example
Images taken from Hearn & Baker, “Computer Graphics with Open. GL” (2004) 59 of 30 3 D 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
60 of 30 3 D Line Clipping Example (cont…) • When then simply continue as per the two dimensional line clipping algorithm
Images taken from Hearn & Baker, “Computer Graphics with Open. GL” (2004) 61 of 30 3 D Polygon Clipping • However the most common case in 3 D clipping is that we are clipping graphics objects made up of polygons
62 of 30 3 D 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 2(0, 9) P 1(0, 0)
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 • Mij denotes the entry in the i-th row and j -th column of matrix M – These are generally thought of as 1 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
- Viewing pipeline in computer graphics
- Define projection in computer graphics
- Introduction to computer graphics - ppt
- Hand held computer
- Good claims examples
- Full section
- Is film a text
- Occupational therapy assessments for low vision
- For viewing tiny objects in a microscope diffraction is
- Thank you for viewing my presentation
- Steps in viewing
- Contoh viewing 3d
- Viewing coordinate sering juga disebut
- Even though the banana seemed to change color
- Viewing pipeline
- Normalized device coordinate
- In two dimensional viewing we have?
- While viewing a slide of rapidly moving sperm cells
- What is the zone control system in driving
- Viewing angel
- Crt in computer graphics
- Shadow mask method
- Shear transformation in computer graphics
- Glsl asin
- Scan converting circle in computer graphics
- Equation of motion of a rotating rigid body
- Boundary fill algorithm in computer graphics
- Polygonal check and raster scan check are types of
- Polygon filling algorithms
- Raster scan display advantages and disadvantages
- Computer graphics
- Limitations of dda algorithm
- Cs 418 interactive computer graphics
- Cs 418 interactive computer graphics
- Hidden surface removal algorithm in computer graphics
- Achromatic light in computer graphics
- Interactive input
- Uniform scaling in computer graphics
- Uniform scaling in computer graphics
- Fundamentals of computer graphics
- Logical input devices in computer graphics
- Fundamentals of computer graphics
- Points and lines in computer graphics ppt
- Circle drawing algorithm in computer graphics ppt
- Dda algorithm in computer graphics
- Keyframe animation in computer graphics
- Solid examples
- Scan conversion in computer graphics
- 8 connected boundary fill algorithm
- Utah teapot vertex data
- Thick primitives in computer graphics
- Interaction in computer graphics
- Hierarchical modeling in computer graphics
- Rendering pipeline in computer graphics
- "(1, 2, 3, 4) sol."
- Srgp in computer graphics
- Geometric transformation in computer graphics
- Midpoint line drawing algorithm
- Uniform scaling in computer graphics
- Computer
- Input techniques in computer graphics
- Sutherland hodgman algorithm in computer graphics
- Amber
- Warping in multimedia
- Uniform scaling in computer graphics
- Scanline fill algorithm
- Boundary fill 4(x-1,y, fillcolor,________)
- What is object lines?
- Attributes of output primitives in computer graphics
- Objectives of computer graphics
- Cmyk in computer graphics