CHAPTER 7 2D VIEWING CGMB214: Introduction to Computer Graphics.

Slides:



Advertisements
Similar presentations
Computer Graphics - Rasterization -
Advertisements

CGPage: 1 We can define a window as a rectangular region of the world coordinate space, and the viewport as a rectangular region of the device coordinate.
มุมมองใน 2 มิติ (2-D Viewing)
I N T R O D U C T I O N T O C O M P U T E R G R A P H I C S Andries van Dam September 30, D Clipping 1/14 Clipping (pages , )
Computer Graphics CLIPPING.
Objectives Define Clipping Various clipping methods. Line clipping methods.
Line clipping: Line clipping algorithm is method of eliminate lines of outside area of the object,so outside of object viewing is Removed. Typically, any.
CHAPTER 12 Height Maps, Hidden Surface Removal, Clipping and Level of Detail Algorithms © 2008 Cengage Learning EMEA.
Course Website: Computer Graphics 4: Viewing In 2D.
Two-Dimensional Viewing Jehee Lee Seoul National University.
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
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
1 CSCE 441 Computer Graphics: Clipping Lines Jinxiang Chai.
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,
2D Viewing. 2D viewing transformation is a mapping of world coordinate scene to device coordinates xw min xw max yw min yw max xv min xv max yv min yv.
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
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.
Two Dimensional Viewing
Objectives Introduce basic implementation strategies Clipping Scan conversion.
CS 480/680 Computer Graphics Shading in OpenGL Dr. Frederick C Harris, Jr. Fall 2013.
2 DIMENSIONAL VIEWING Ceng 477 Introduction to Computer Graphics Fall Computer Engineering METU.
CSE Real Time Rendering Week 9. Post Geometry Shaders Courtesy: E. Angel and D. Shreiner – Interactive Computer Graphics 6E © Addison-Wesley 2012.
Introduction to Computer Graphics Chapter 6 – 2D Viewing Pt 1 1.
Unit – IV 2D Viewing. 2 of 30 Contents Windowing Concepts The viewing pipeline viewing coordinate reference frame, window to view-port coordinate transformation,
EEL Introduction to Computer Graphics
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.
Graphics Graphics & Graphical Programming Lecture 23 - Viewing & Clipping.
A.Aruna/Assistant Professor/SNSCE
CS 376 Introduction to Computer Graphics 02 / 14 / 2007 Instructor: Michael Eckmann.
Computer Graphics CC416 Lecture 04: Bresenham Line Algorithm & Mid-point circle algorithm Dr. Manal Helal – Fall 2014.
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.
Two-Dimensional Viewing Hearn & Baker Chapter 6
Computer Graphics Lecture 14 CLIPPING I Taqdees A. Siddiqi
Computer Graphic 2 D Viewing.
Computer Graphics CC416 Week 13 Clipping.
Transformations contd.
Computer Graphics Shading in OpenGL
Two-Dimensional Viewing
Computer Graphics Viewing
2D Viewing & Clipping 한신대 류승택
Implementation I Ed Angel
Graphics Pipeline Clipping
WINDOWING AND CLIPPING
o عَلَّمَهُ الْبَيَانَ
Computer Graphics : Viewing In 2D
CSCE 441 Computer Graphics: Clipping Lines Jinxiang Chai
CSCE 441 Computer Graphics: Clipping Lines Jinxiang Chai
WINDOWING AND CLIPPING
Lecture 13 Clipping & Scan Conversion
Two Dimensional Viewing and Clipping.
Clipping Clipping Sutherland-Hodgman Clipping
Implementation I Ed Angel Professor Emeritus of Computer Science
COMPUTER GRAPHICS Clipping
Presentation transcript:

CHAPTER 7 2D VIEWING CGMB214: Introduction to Computer Graphics

Objective To be able to understand the procedures for displaying views a two dimensional picture on an output device

Two-Dimensional Viewing Co-ordinate Systems.  Cartesian – offsets along the x and y axis from (0.0)  Polar – rotation around the angle .  Graphic libraries mostly using Cartesian co-ordinates  Any polar co-ordinates must be converted to Cartesian co- ordinates  Four Cartesian co-ordinates systems in computer Graphics. 1. Modeling co-ordinates 2. World co-ordinates 3. Normalized device co-ordinates 4. Device co-ordinates

Modeling Coordinates Also known as local coordinate. Ex: where individual object in a scene within separate coordinate reference frames. Each object has an origin (0,0) So the part of the objects are placed with reference to the object’s origin. In term of scale it is user defined, so, coordinate values can be any size.

World Co-ordinates. The world coordinate system describes the relative positions and orientations of every generated objects. The scene has an origin (0,0). The object in the scene are placed with reference to the scenes origin. World co-ordinate scale may be the same as the modeling co-ordinate scale or it may be different. However, the coordinates values can be any size (similar to MC)

Normalized Device Co-ordinates Output devices have their own co-ordinates. Co-ordinates values: The x and y axis range from 0 to 1 All the x and y co-ordinates are floating point numbers in the range of 0 to 1 This makes the system independent of the various devices coordinates. This is handled internally by graphic system without user awareness.

Device Co-ordinates Specific co-ordinates used by a device. Pixels on a monitor Points on a laser printer. mm on a plotter. The transformation based on the individual device is handled by computer system without user concern.

Two-Dimensional Viewing Example:  Graphic program which draw an entire building by an architect but we only interested on the ground floor  Map of sales for entire region but we only like to know from certain region of the country.

Two-Dimensional Viewing When we interested to display certain portion of the drawing, enlarge the portion, windowing technique is used Technique for not showing the part of the drawing which one is not interested is called clipping An area on the device (ex. Screen) onto which the window will be mapped is called viewport. Window defines what to be displayed. A viewport defines where it is to be displayed. Most of the time, windows and viewports are usually rectangles in standard position(i.e aligned with the x and y axes). In some application, others such as general polygon shape and circles are also available However, other than rectangle will take longer time to process.

Viewing Transformation Viewing transformation is the mapping of a part of a world- coordinate scene to device coordinates. In 2D (two dimensional) viewing transformation is simply referred as the window-to-viewport transformation or the windowing transformation. Mapping a window onto a viewport involves converting from one coordinate system to another. If the window and viewport are in standard position, this just  involves translation and scaling.  if the window and/or viewport are not in standard, then extra transformation which is rotation is required.

Viewing Transformation x-world y-world window Normalised device world y-view x-view

Window-To-Viewport Coordinate Transformation Window-to-Viewport transformation

Window-To-Viewport Coordinate Transformation. XWmax YWmax XWmin YWmin XVmaxXVmin YVmax YVmin xw,yw xv,yv

Window-To-Viewport Coordinate Transformation xv - xv min= xw - xw min xv max - xv min xw max - xw min yv – yv min = yw - yw min yv max – yv min yw max - yw min From these two equations we derived xv = xv min + (xw – xw min )sx yv = yv min + (yw – yw min )sy where the scaling factors are sx = xv max – xv min sy = yv max - yv min xw max – xw min yw max – yw min

Window-To-Viewport Coordinate Transformation The sequence of transformations are: 1. Perform a scaling transformation using a fixed- point position of (xwmin,ywmin) that scales the window area to the size of the viewport. 2. Translate the scaled window area to the position of the viewport.

Window-To-Viewport Coordinate Transformation Relative proportions of objects are maintained if the scaling factors are the same (sx = sy). Otherwise, world objects will be stretched or contracted in either x or y direction when displayed on output device. How about character strings when map to viewport? maintains a constant character size (apply when standard character fonts cannot be changed). If character size can be changed, then windowed will be applied like other primitives. For characters formed with line segments, the mapping to viewport is carried through sequence of line transformations.

Viewport-to-Normalized Device Coordinate Transformation From normalized coordinates, object descriptions can be mapped to the various display devices When mapping window-to-viewport transformation is done to different devices from one normalized space, it is called workstation transformation.

The Viewing Pipeline

OpenGL 2D Viewing Functions To transform from world coordinate to screen coordinates, the appropriate matrix mode must be chosen  glMatrixMode (GL_PROJECTION);  glLoadIdentity( ); To define a 2D clipping window, we use OpenGL Utility function:  gluOrtho2D( xwmin, xwmax, ywmin, ywmax);  This function also perform normalization (NDC)

OpenGL 2D Viewing Functions To specify the viewport parameters in OpenGL, we use function  glViewport(xvmin, yvmin, vpWidth, vpHeight);

Clipping Operations  Procedures that identifies those portions of a picture that are either inside or outside a specified region of a space is referred to as clipping algorithm or clipping  The region against which an object is to clipped is called clip window before after

Clipping Operation Note: different graphic elements may require different clipping techniques. Character, need to include all or completely omit depending on whether or not its center lies within the window.

Clipping Application of clipping include:  Extracting part of defined scene for viewing.  Identifying visible surfaces in three-dimensional views.  Anti-aliasing line segments or object boundaries.  Creating objects using solid-modeling procedures.  Displaying a multiwindow environment.  Drawing and painting operations that allow parts of picture to be selected for copying, moving, erasing, or duplication.

Clipping Clipping algorithm can be applied in both world coordinate and normalized device coordinates In world coordinate:  only the contents of the window interior are mapped to device coordinates  world coordinate clipping removes those primitives outside the window from further consideration. Eliminating the unnecessary processing to transform In normalized device coordinate:  mapping is fully done from world to normalized device.  clipping will reduce calculations by allowing concatenation of viewing and geometric transformation matrices.

Clipping Algorithms Algorithms have been developed for clipping for the following primitives types: 1. Point Clipping. 2. Line Clipping (straight-line segments) 3. Area Clipping (polygons) 4. Curve Clipping 5. Text Clipping.

Point Clipping Assuming clip window is standard rectangle position, point P-(x,y) will be save for display if its satisfied: xw min <= x <= xw max yw min <= y <= yw max where the edges of the clip window (xw min, xw max, yw min, yw max ) can be either the world coordinate window boundaries or viewport boundaries.

Line Clipping Cohen-Sutherland Outcode Algorithm This algorithm quickly removes lines which entirely to one side of the clipping where both endpoints above, below, right or left. The advantage of the algorithm is, it uses bit operations for testing.

Cohen Sutherland A B C D E G F I K L M J S T H

Cohen Sutherland Bit convention 1  First bity > ymax  Second bity < ymin  Third bitx > xmax  Fourth bitx < xmin Bit convention 2 (1 through 4 from right to left)  bit 1 : left  bit 2 : right  bit 3 : below  bit 4 : above

Cohen Sutherland Segment endpoints are each given 4-bit binary codes.  The high order bit is set to 1 if the point above window  The next bit set to 1 if point is below window  The third and fourth indicate right or left of window. Testing result:  0000 if both endpoints are inside window.  if the line segment lies entirely on one side of the window, then both endpoints will have a 1 in the outcode bit position for that side. How?:  By taking AND operation. If NONZERO then line segment may be rejected. Ex: AB and CD

Cohen Sutherland (Problem?) Certain lines cannot be identified as completely inside or outside a clip window by doing AND test. Lines which completely outside the clip window can also produce AND So, process of discarding is required and intersection with boundary must be calculated (divide and conquer). Difficulty is when a line crossed one or more of the lines which contain the clipping boundary. Ex: EF and DJ

Cohen Sutherland (Solution) The point of intersection between the line segment and clipping lines may be used to break up the line segment. Intersection points with a clipping boundary can be calculated using the slope-intercept form of the line equation.

Cohen Sutherland (Solution) For a line with endpoint (x 1,y 1 ) to (x 2,y 2 )  Y coordinate of the intersection point with vertical boundary is obtained with y = y 1 + m(x-x 1 )  where x value is set either xw min or xw max and the slope of the line is m = ( y 2 – y 1 ) / ( x 2 – x 1 )  X coordinate of the intersection point with horizontal boundary is calculated by x = x 1 + (y-y 1 )/m  where y is set either to yw min or to yw max

Cohen Sutherland (Pseudocode) Brief outline of the algorithm.  First compute the outcodes for the two endpoints (p1 and p2).  Enter the loop, check whether both outcodes are zero  Both zero, then enter segment in display list.  If not both zero, perform the AND function. If nonzero, reject the line. If zero, subdivide the line segment. Repeat the loop.

Liang Barsky Line Clipping Parametric equation of a line segment (x 1,y 1 ) and (x 2,y 2 )  x = x 1 + u∆x  y = y 1 + u∆y  Where 0 <= u <=1  ∆x = x 2 – x 1  ∆y = y 2 –y 1  From point clipping, we have  xw min < = x <= xw max  Yw min <= y <= yw max  For line clipping, we derived  xw min < = x1 + u∆x <= xw max  yw min <= y1 + u∆y <= yw max

Liang-Barsky Line Clipping Based on these four equations, the following rules are introduced up k <= q k  where k = 1 (left boundary) 2 (right boundary) 3 (bottom boundary) 4 (top boundary) parameters p and q are defined as: p 1 = -∆x,q 1 = x 1 - xw min p 2 = ∆x,q 2 = xw max – x 1 p 3 = - ∆y,q 3 = y 1 - yw min p 4 =∆y,q 4 = yw max – y 1

Liang-Barsky Line Clipping If any line that is parallel to one of the clipping boundaries, p k = 0. If q k < 0 then line is completely outside the boundary. When p k < 0, the infinite extension of the line proceeds from the outside to the inside. If p k > 0, the line proceeds from the inside to the outside. For nonzero value of p k, we can calculate the value of u corresponds to the point where infinitely extended line intersects the extension boundary k as u = q k / p k u 1 (outside to inside) where its value ranges from 0 to r u 2 (inside to outside) where its value ranges from 1 to r. If u 1 > u 2, the line is completely outside the clip window and can be rejected

Liang Barsky vs Cohen Sutherland Liang-Barsky algorithm is more efficient than Cohen since intersection calculations are reduced. Liang-Barsky require only one division and window intersections of the line are computed only once. Cohen required repeated calculation even though the line may be completely outside the clip window.

Nicholl-Lee-Nicholl Line Clipping (NLN) Creating more regions around the clip window to avoid multiple clipping of an individual line segment. Different to Cohen where Cohen require multiple calculation along the path of a single line before an intersection on the clipping rectangle is locate or completely rejected. NLN eliminate extra calculations through new region created.

Nicholl-Lee-Nicholl Line Clipping (NLN) Compared to Cohen and Liang;  NLN perform fever comparisons and division. The trade-off is that NLN can only be applied two two-dimensional clipping only.

Nicholl-Lee-Nicholl Line Clipping (NLN) How its work?  First, need to determine the endpoints P 1 and P 2 from the possible nine regions.  Out of nine, NLN only interested on three regions.  If P 1 lies in any one of other six regions, symmetry transformation will be applied first.  Then, is to determine where P 2 is.  If P 1 is inside and P 2 is outside we will follow the first case where intersection with appropriate window boundary is carried out. Four regions of L,T,R,B which contains P 2 are introduced.  If P 1 and P 2 are inside the clipping rectangle, we save the entire line.

Nicholl-Lee-Nicholl Line Clipping (NLN) L (2,2)(6,2) (6,6) (2,6) P1 (1,4) LT LR LB P2 (6,7)

Nicholl-Lee-Nicholl Line Clipping (NLN) For example when P 2 is in region LT if Slope P 1 P TR < Slope P 1 P 2 < Slope P 1 P TL Or (Y T - Y 1 )/(X R – X 1) ) < (Y 2 - Y 1 )/(X 2 – X 1 ) < (Y T – Y 1 )/(X L – X 1 ) Ex:  (6-4)/(6-1) < (7-4)/(6-1) < (6-4)/(2-1)  2/5 < 3/5 < 2 And we clip the entire line if (Y T – Y 1 )(X 2 – X 1 ) < (X L – X 1 )(Y 2 – Y 1 )

Nicholl-Lee-Nicholl Line Clipping (NLN) From the parametric equations: x = x 1 + (x 2 – x 1 )u y = y 1 + (y 2 – y1)u An intersection position on the left boundary is x = x L with u = (x L – x 1 )/(x 2 – x 1 ) will give coordinate y = y 1 +((y 2 – y 1 )/(x 2 – x 1 )) * (x L – x 1 ) An intersection position on the top boundary has y = y T with u = (y T – y 1 )/(y 2 – y 1) will give coordinate x = x 1 +((x 2 – x 1 )/(y 2 – y 1 )) * (y T – y 1 )

Line Clipping Using Nonrectangular Clip Windows Some applications clip lines against arbitrarily shaped polygons. Liang and Cyrus-Beck algorithm can be extended to convex polygon windows. For concave polygon-clipping regions, we need to split the concave polygon into set of convex polygons. Circles or other curved-boundary clipping regions are also possible but slower because intersection calculations involve nonlinear curve equation. Line can be identified as completely inside if the distance for both endpoints of a line is less than or equal to the radius squared. If not, then intersection calculation is performed.