10/10/02 (c) 2002 University of Wisconsin, CS 559 Last Time Finished viewing: Now you know how to: –Define a region of space that you wish to view – the.

Slides:



Advertisements
Similar presentations
Rezanje črt in poligonov. World window & viewport window viewport screen window world window.
Advertisements

CS 352: Computer Graphics Chapter 7: The Rendering Pipeline.
Computer Graphics Lecture 8 Arbitrary Viewing II: More Projection, Clipping and Mathematics of 3D Viewing.
CHAPTER 12 Height Maps, Hidden Surface Removal, Clipping and Level of Detail Algorithms © 2008 Cengage Learning EMEA.
CS 551 / 645: Introductory Computer Graphics Clipping Lines and Polygons.
3/2/04© University of Wisconsin, CS559 Spring 2004 Last Time General Perspective –Methods for specifying the view volume As a set of clip planes As a field.
David Breen, William Regli and Maxim Peysakhov
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)
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:
Two-Dimensional Viewing Jehee Lee Seoul National University.
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,
Introduction to Computer Graphics Chapter 6 – 2D Viewing Pt 2 1.
March 1, 2009Dr. Muhammed Al-Mulhem1 ICS 415 Computer Graphics Clipping Dr. Muhammed Al-Mulhem March 1, 2009 Dr. Muhammed Al-Mulhem March 1, 2009.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Interpolation Clipping.
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.
Visibility culling – Clipping. The visibility problem What polygons are visible? There are few visible polygons. –Avoid redundant processing Three classes.
1 Clipping and Hidden Surfaces CS-184: Computer Graphics Prof. James O’Brien.
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,
Now Playing: California Stars Billy Bragg & Wilco from Mermaid Avenue
Graphics Pipeline Clipping CMSC 435/634. Graphics Pipeline Object-order approach to rendering Sequence of operations – Vertex processing – Transforms.
2/26/04© University of Wisconsin, CS559 Spring 2004 Last Time General Orthographic Viewing –Specifying cameras in world coordinates –Building world  view.
CS 325 Introduction to Computer Graphics 03 / 03 / 2010 Instructor: Michael Eckmann.
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.
CS 376 Introduction to Computer Graphics 02 / 12 / 2007 Instructor: Michael Eckmann.
3/4/04© University of Wisconsin, CS559 Spring 2004 Last Time Clipping Lines –Cohen-Sutherland: The use of outcodes and early reject/accept tests –Liang-Barsky:
02/26/02 (c) 2002 University of Wisconsin, CS 559 Last Time Canonical view pipeline Orthographic projection –There was an error in the matrix for taking.
CS 325 Introduction to Computer Graphics 03 / 08 / 2010 Instructor: Michael Eckmann.
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.
2/24/04© University of Wisconsin, CS559 Spring 2004 Last Time 3D Transformations –Most are natural extensions of 2D transforms –Rotations can be represented.
10/15/02 (c) 2002 University of Wisconsin, CS559 Last Time Clipping.
CSE Real Time Rendering Week 9. Post Geometry Shaders Courtesy: E. Angel and D. Shreiner – Interactive Computer Graphics 6E © Addison-Wesley 2012.
CS-378: Game Technology Lecture #2.2: Clipping and Hidden Surfaces Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney,
Windows, Viewports, and Clipping
1 Visiblity: Culling and Clipping Computer Graphics COMP 770 (236) Spring 2009 January 21 & 26: 2009.
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)
10/19/04© University of Wisconsin, CS559 Fall 2004 Last Time Clipping –Why we care –Sutherland-Hodgman –Cohen-Sutherland –Intuition for Liang-Barsky Homework.
Implementation of a Renderer Consider Programs are processd by the system line & polygon, outside the view volume Efficiently Understanding of the implementation.
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.
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.
Chapter 71 Computer Graphics - Chapter 7 From Vertices to Fragments Objectives are: How your program are processed by the system that you are using, Learning.
Two-Dimensional Viewing Hearn & Baker Chapter 6
Transformations contd.
CS 551 / 645: Introductory Computer Graphics
Concepts, Algorithms for line clipping
Clipping Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006
3D rezanje 3D Clipping view frustrum clipping planes clipped.
3D Clipping.
Graphics Pipeline Clipping
Computer Graphics : Viewing In 2D
Lecture 13 Clipping & Scan Conversion
Joshua Barczak CMSC 435 UMBC
Last Time 2D and 3D Transformations
© University of Wisconsin, CS559 Fall 2004
(c) 2002 University of Wisconsin, CS559
3D rezanje 3D Clipping view frustrum clipping planes clipped.
Clipping Clipping Sutherland-Hodgman Clipping
Clipping University of British Columbia CPSC 314 Computer Graphics
COMPUTER GRAPHICS Clipping
Presentation transcript:

10/10/02 (c) 2002 University of Wisconsin, CS 559 Last Time Finished viewing: Now you know how to: –Define a region of space that you wish to view – the view volume –Transform points in a world coordinate system into this space –Transform a view volume a generic view volume – canonical view volume Using orthographic or perspective projection –Put a canonical view volume onto the screen

10/10/02 (c) 2002 University of Wisconsin, CS 559 Today Clipping

10/10/02 (c) 2002 University of Wisconsin, CS 559 Clipping Parts of the geometry to be rendered may lie outside the view volume –View volume maps to memory addresses –Out-of-view geometry generates invalid addresses –Geometry outside the view volume also behaves very strangely under perspective projection Triangles can be split into two pieces, for instance Clipping removes parts of the geometry that are outside the view Best done in canonical space before perspective divide –Before dividing out the homogeneous coordinate

10/10/02 (c) 2002 University of Wisconsin, CS 559 Clipping Points are trivial to clip - just check which side of the clip planes they are on Many algorithms for clipping lines exist –You need one for the 2 nd project Two main algorithms for clipping polygons exist –Sutherland-Hodgman –Weiler

10/10/02 (c) 2002 University of Wisconsin, CS 559 Clipping Points A point is inside the view volume if it is on the “inside” of all the clipping planes –The normals to the clip planes are considered to point inward, toward the visible region Now we see why clipping is done in canonical view space –For instance, to check against the left plane: –X coordinate in 3D must be > -1 –In homogeneous screen space, same as: x screen > -w screen In general, a point, p, is “inside” a plane if: –You represent the plane as n x x+n y y+n z z+d=0, with (n x,n y,n z ) pointing inward –And n x p x +n y p y +n z p z +d>0

10/10/02 (c) 2002 University of Wisconsin, CS 559 Sutherland-Hodgman Clip Clip the polygon against each edge of the clip region in turn –Clip polygon each time to line containing edge –Only works for convex clip regions (Why?)

10/10/02 (c) 2002 University of Wisconsin, CS 559 Sutherland-Hodgman Clip To clip a polygon to a line/plane: –Consider the polygon as a list of vertices –One side of the line/plane is considered inside the clip region, the other side is outside –We are going to rewrite the polygon one vertex at a time – the rewritten polygon will be the polygon clipped to the line/plane –Check start vertex: if “inside”, emit it, otherwise ignore it –Continue processing vertices as follows…

10/10/02 (c) 2002 University of Wisconsin, CS 559 Sutherland-Hodgman (3) Look at the next vertex in the list, and the edge from the last vertex to the next. If the –polygon edge crosses the clip line/plane going from out to in: emit crossing point, next vertex –polygon edge crosses clip line/plane going from in to out: emit crossing –polygon edge goes from out to out: emit nothing –polygon edge goes from in to in: emit next vertex

10/10/02 (c) 2002 University of Wisconsin, CS 559 Sutherland-Hodgman (4) InsideOutside s p Output p InsideOutside s p Output i InsideOutside s p No output InsideOutside s p Output i and p i i

10/10/02 (c) 2002 University of Wisconsin, CS 559 Inside-Outside Testing Lines/planes store a vector pointing toward the outside of the clip region – the outward pointing normal –Could re-define for inward pointing Dot products give inside/outside information Note that x is any point on the clip line/plane OutsideInside n s f i x

10/10/02 (c) 2002 University of Wisconsin, CS 559 Finding Intersection Pts Use the parametric form for the edge between two points, x 1 and x 2 : For planes of the form x=a: Similar forms for y=a, z=a Solution for general plane can also be found

10/10/02 (c) 2002 University of Wisconsin, CS 559 Inside/Outside in Screen Space In canonical screen space, clip planes are x s =±1, y s =±1, z s =±1 Inside/Outside reduces to comparisons before perspective divide

10/10/02 (c) 2002 University of Wisconsin, CS 559 Hardware Sutherland-Hodgman Suitable for hardware implementation –Only need the clip edge, the endpoints of the current edge, and the last output point –Polygon edges are output as they are found, and passed right on to the next clip region edge Clip Top Vertices in Clip Right Clip Bottom Clip Left Clipped vertices out Clip Far Clip Near

10/10/02 (c) 2002 University of Wisconsin, CS 559 Other Ways to Reject If a polygonal object is closed, then no back-facing face is visible –Front-facing faces must occlude all back-facing ones –Reject back-facing polygons in view space Transform face normal and check –OpenGL supports optional back-face culling (and front-face culling too) Bounding volumes enclosing many polygons can be checked against the view volume –Done in software in world or view space Visibility can reject whole chunks of geometry without even looking at them

10/10/02 (c) 2002 University of Wisconsin, CS 559 Clipping In General Apart from clipping to the view volume, clipping is a basic operation in many other algorithms –Special purpose rendering might use different clipping (project 2) –Breaking space up into chunks –2D drawing and windowing –Modeling May require more complex geometry than rectangular boxes

10/10/02 (c) 2002 University of Wisconsin, CS 559 Additional Clipping Planes Useful for doing things like cut-away views –Use a clip plane to cut off part of the object –Only works if piece to be left behind is convex OpenGL allows you to do it Also one way to use OpenGL to identify objects in a region of space (uses the selection mechanism)

10/10/02 (c) 2002 University of Wisconsin, CS 559 Clipping Lines Lines can also be clipped by Sutherland-Hodgman –Slower than necessary, unless you already have hardware Better algorithms exist –Cohen-Sutherland –Liang-Barsky –Nicholl-Lee-Nicholl (we won’t cover this one – only good for 2D)

10/10/02 (c) 2002 University of Wisconsin, CS 559 Cohen-Sutherland (1) Works basically the same as Sutherland-Hodgman –Was developed earlier Clip line against each edge of clip region in turn –If both endpoints outside, discard line and stop –If both endpoints in, continue to next edge (or finish) –If one in, one out, chop line at crossing pt and continue Works in both 2D and 3D for convex clipping regions

10/10/02 (c) 2002 University of Wisconsin, CS 559 Cohen-Sutherland (2)

10/10/02 (c) 2002 University of Wisconsin, CS 559 Cohen-Sutherland (3) Some cases lead to premature acceptance or rejection –If both endpoints are inside all edges –If both endpoints are outside one edge General rule of clipping – if a fast test can cover many cases, do it first

10/10/02 (c) 2002 University of Wisconsin, CS 559 Cohen-Sutherland - Details Only need to clip line against edges where one endpoint is out Use outcode to record endpoint in/out wrt each edge. One bit per edge, 1 if out, 0 if in. Trivial reject: –outcode(x1) & outcode(x2)!=0 Trivial accept: –outcode(x1) | outcode(x2)==0 Which edges to clip against? –outcode(x1) ^ outcode(x2)

10/10/02 (c) 2002 University of Wisconsin, CS 559 Liang-Barsky Clipping Parametric clipping - view line in parametric form and reason about the parameter values More efficient, as not computing the coordinate values at irrelevant vertices Works for rectilinear clip regions in 2D or 3D Clipping conditions on parameter: Line is inside clip region for values of t such that (for 2D):

10/10/02 (c) 2002 University of Wisconsin, CS 559 Liang-Barsky (2) Infinite line intersects clip region edges when: where Note: Left edge is 1, right edge is 2, top edge is 3, bottom is 4

10/10/02 (c) 2002 University of Wisconsin, CS 559 Liang-Barsky (3) When p k <0, as t increases line goes from outside to inside - entering When p k >0, line goes from inside to outside – leaving When p k =0, line is parallel to an edge (clipping is easy) If there is a segment of the line inside the clip region, sequence of infinite line intersections must go: enter, enter, leave, leave

10/10/02 (c) 2002 University of Wisconsin, CS 559 Liang-Barsky (4) Enter Leave Enter Leave Enter Leave

10/10/02 (c) 2002 University of Wisconsin, CS 559 Liang-Barsky - Algorithm Compute entering t values, which are q k /p k for each p k <0 Compute leaving t values, which are q k /p k for each p k >0 Parameter value for small t end of line is:t small = max(0, entering t’s) Parameter value for large t end of line is: t large =min(1, leaving t’s) if t small <t large, there is a line segment - compute endpoints by substituting t values Improvement (and actual Liang-Barsky): –compute t’s for each edge in turn (some rejects occur earlier like this)

10/10/02 (c) 2002 University of Wisconsin, CS 559 General Liang-Barsky Liang-Barsky works for any convex clip region –Compute intersection t for all clip lines/planes and label them as entering or exiting –Parameter value for small t end of line is:t small = max(0, entering t’s) –Parameter value for large t end of line is: t large =min(1, leaving t’s) –if t small <t large, there is a line segment - compute endpoints by substituting t values