Graphics Pipeline Clipping

Slides:



Advertisements
Similar presentations
Computer Graphics - Rasterization -
Advertisements

9.1 Si23_03 SI23 Introduction to Computer Graphics Lecture 9 – Clipping.
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.
Computer Graphics Inf4/MSc 1 Computer Graphics Lecture 7 Scanline algorithm and polygon clipping Taku Komura.
Rezanje črt in poligonov. World window & viewport window viewport screen window world window.
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.
1 Clipping. 2 Transformation Sequence X Y Z X Y Z X Y Z X Y Z Object Coords. Eye Coords. Clip Coords. Normalized Device Coords. Screen Coords. Implementation:
Clipping Lines Lecture 7 Wed, Sep 10, The Graphics Pipeline From time to time we will discuss the graphics pipeline. The graphics pipeline is the.
Line Clipping Algorithms. A Cases for Clipping Lines E B H C G J I clip rectangle 2Prepared by Narendra V G CSE MIT.
Computer Graphics Viewing.
Clipping CSE 403 Computer Graphics Cohen Sutherland Algorithm (Line)
Introduction to Computer Graphics Chapter 6 – 2D Viewing Pt 2 1.
Vertices and Fragments I CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
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.
2-Dimension Viewing and Clipping
Windowing and clipping
Clipping: Clipping is a process of dividing an object into visible and invisible positions and displaying the visible portion and discarding the invisible.
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.
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
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.
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
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.
Graphics Graphics & Graphical Programming Lecture 23 - Viewing & Clipping.
Lecture 9 From Vertices to Fragments. Objectives Introduce basic implementation strategies Clipping Rasterization hidden-surface removal.
Computer Graphics Lecture 14 CLIPPING I Taqdees A. Siddiqi
Computer Graphic 2 D Viewing.
Computer Graphics Clipping.
Introduction to Computer Graphics with WebGL
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
3D rezanje 3D Clipping view frustrum clipping planes clipped.
Concepts, algorithms for clipping
Implementation I Ed Angel
WINDOWING AND CLIPPING
Computer Graphics : Viewing In 2D
Clipping Computer Graphics Cohen Sutherland Algorithm (Line)
CSCE 441 Computer Graphics: Clipping Lines Jinxiang Chai
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.
Segment Clipping Simple algorithm. For each segment compute the intersection with the four sides of the rectangle, and then determine which sub-segment.
© University of Wisconsin, CS559 Fall 2004
3D rezanje 3D Clipping view frustrum clipping planes clipped.
CS U540 Computer Graphics Prof. Harriet Fell Spring 2007
Clipping Clipping Sutherland-Hodgman Clipping
CS U540 Computer Graphics Prof. Harriet Fell Spring 2007
Computer Graphics Viewing. 2 of 30 Viewing in 2D Window in world coordinates. 45  250  Viewport in Device coords 250 x 250 Pixels.
Clipping University of British Columbia CPSC 314 Computer Graphics
Implementation I Ed Angel Professor Emeritus of Computer Science
CS U540 Computer Graphics Prof. Harriet Fell Spring 2007
COMPUTER GRAPHICS Clipping
Presentation transcript:

Graphics Pipeline Clipping CMSC 435/634

Graphics Pipeline Object-order approach to rendering Transformations Vertex components of shading Vertex Processing Clipping Find the visible parts of primitives Rasterization Break primitives into fragments/pixels Fragment Processing Fragment components of shading Visibility & Blending Which do we see, how do they combine?

Why Clip? Window sides Near Far Draw less Some rasterization algorithms need everything on screen Near Don’t divide by 0 Don’t divide by negative z Far Constrain Z range

Clipping & Culling Cull: decide not to draw an object at all Clip: slice to keep just the visible parts Trivial Reject: Entirely off-screen Trivial Accept: Entirely on screen

Clipping Lines Lines intersecting a rectangular clip region are always clipped into a single line segment Clip against one window edge at a time E F C D D’ C D’ G H A B A B H’ H’ G’ I J G’ J’ I’ Clip Rectangle

Clipping Endpoints For a point at (x,y) to be inside the clipping rectangle xmin ≤ x ≤ xmax, ymin ≤ y ≤ ymax

Clipping Conditions Both endpoints are inside (AB) One endpoint in, another end outside (CD) Both outside (EF, GH, IJ) May or may not be in, further calculations needed

Cohen-Sutherland Line Clipping First, endpoint pairs are checked for trivial acceptance If not, region checks are performed in order to trivially reject certain lines If both x pairs are <0 or >1, then it lies outside (EF) If both y pairs are <0 or >1, then it too lies outside

Cohen-Sutherland Line Clipping Create bit code for each endopint Each region is assigned a 4-bit code (outcode) 1st bit – above top edge y > ymax 2nd bit – below bottom edge y < ymin 3rd bit – right of right edge x > xmax 4th bit – left of left edge x < xmin

Efficient Computation of Bit-Code Compute each bit First bit is the sign bit of ymax – y Second bit is y – ymin Third bit is the sign bit of xmax – x Forth bit is x – xmin

Bit-Code Trivial Rejects and Accepts If both bit codes are zero – trivial accept If endpoints are both outside of same edge, they will share that bit This can easily be computed as a logical and operation – trivial reject if non-zero result If not, then need to split line at clip edge, discard portion outside, continue testing

Cohen-Sutherland Line Clipping Algorithm code1 = outcode from endpoint1 code2 = outcode from endpoint2 if (code1 == 0 && code2 == 0) then trivial_accept else if (code1 & code2 != 0) then trivial_reject else clip against left clip against right clip against bottom clip against top if (anything is left) then accept clipped segment

Homogeneous Clipping Works for 3D planes If point is inside clipping plane: Point on line: Intersection:

Polygon Clipping Many cases (new edges, discarded edges) Multiple polygons may result after clipping a single polygon

Sutherland-Hodgman Polygon Clipping Divide and conquer Simple problem is to clip polygon against a single infinite clip edge Sequence of 4 clips against clipping rectangle

Sutherland-Hodgman Polygon Clipping Algorithm moves around the polygon from vn to v1 and then on back to vn At each step Check (vi to vi+1) line against the clip edge Add zero, one, or two vertices to the output

Sutherland-Hodgman Polygon Clipping At each step, 1 of 4 possible cases arises 1) Edge is completely inside clip boundary, so add vertex p to the output list 2) Intersection i is output as vertex because it intersects with boundary 3) Both vertices are outside boundary, so neither is output 4) Intersection i and vertex p both added to output list

Sutherland-Hodgman Algorithm Sutherland-Hodgman(array)‏ vertex S = array[ length(array) - 1 ] for ( j = 0 ; j < length(array) ; j++ ) do vertex P = array[ j ] if ( P is inside clip plane ) then if ( S is inside clip plane ) then /* case 1 */ Output( P ) else /* case 2 */ Output( ComputeIntersection( S, P, clip plane ) )‏ Output( P )‏ else if ( S is inside clip plane ) then /* case 2 */ Output( ComputeIntersection( P, S, clip plane ) )‏ else /* case 3 */ no op S = P