# COMP30019 Graphics and Interaction Scan Converting Polygons and Lines

Size: px
Start display at page:

Transcription

1 COMP30019 Graphics and Interaction Scan Converting Polygons and Lines Department of Computer Science and Software Engineering The

2 Lecture outline Introduction Scan conversion Scan-line algorithm Edge coherence Bresenham s algorithm Edge coherence (revisited) Z buffering High Performance Visible Surface Detection

3 Scan conversion How are polygons and lines drawn onto a digital image? Aim: understanding polygonal filling and line drawing algorithms. Reading: Foley Sections 3.2 Scan converting lines and Section 3.5 Filling polygons. Additional reading: 3.3 Scan converting circles.

4 Inside or outside a polygon? Filling polygons requires a way of determining whether a point is inside or outside a polygon. See if you can think up a technique for determining whether you are inside or outside a two-dimensional polygon from a completely arbitrary point (imagine you have no way of knowing whether you are inside or out initially)? Hint: imagine you are standing at a point q and watching another point p that can reside at any vertex of polygon P.

5 Filling polygons using winding numbers Filling polygons requires a way of determining whether a point is inside or outside a polygon. One technique is known as winding numbers. Imagine you are standing at a point q while watching another point p traverse a polygon P counterclockwise (the point moves from vertex to vertex around the perimeter of the polygon). If q is inside, you would turn a full circle, 2π radians, if q is outside the sum of your total angular turn will be zero 0.

6 The winding number of q with respect to P is the number of revolutions point p makes around polygon P: the total signed angular turn divided by 2π. q P For polygon P, exterior points q have winding number 0: a total angular turn of 0.

7 Angle θ can be determined from dot or cross project v i v i+1 = v i v i+1 cosθ i and P[i+1] e v i v i+1 = v i v i+1 sinθ i P[i] V i+1 i v i q Angle θ i is the angle subtended by e from q

8 The odd-even test The odd-even test follow an arbitrary ray or along scan line and count the number of times a boundary is crossed, either an odd or even number of times.

9 Describe each of the two coloured lines and which direction they are going in and what happens to their parity. notice for the top most line starting outside and skimming the top of the polygon, it stays outside because the single pixel is a special case of a horizontal line (more in next slides).

10 Selection of inside model Let s now compare the winding-number model to the odd-even test model according to our desidera for issues in numerical methods (numerical precision and computational complexity). Winding numbers work in case when q lies on the perimeter of P, but the odd-even case needs to treat these as special case (e.g. when horizontal scan line intersects a horizontal polygonal edge). However, winding numbers require floating point numbers that is the winding angle will not always be 0 or 2π because of round-off error.

11 In terms of computational complexity, both algorithms are of order O(n) in the worst case, where n is the number of polygon vertices for winding numbers of pixels for the odd-even test. However, the winding-number algorithm depends critically on floating-point computations and trigonometric computations, which is means it is significantly slower on standard hardware (up to 20 times slower according to research by Haines in 1992). For filling polygons in images, the odd-even test is superior as it only requires a parity bit and can be easily implemented by stepping along the scan lines of image rows and columns.

12 Scan-line filling The scan-line method is an efficient way of filling-in polygons, based on the odd-even test by crossing segments. Segments are sorted to allow for an orderly progression that determines whether inside or outside.

13 Figure 1.14 (Rowe), using scan line to determine the interior points of a polygon B C F scan line D A Question: does scan-line filling work for non-simple and multiple-boundary polygons? E

14 The first intersection occurs when the scan line crosses edge AB, so the parity becomes odd at that point. The second intersection occurs with edge AF, so the parity becomes even. We can therefore say that points along the scan line between edges AB and AF are interior, points between edges AF and EF are exterior, and points between EF and DE are interior. Scan-line filing does work for both non-simple and multiple boundary polygons (provided you start scanning from outside.

15 Basic scan-line algorithm 1. Find intersections of scan lines with edges of polygon(s) 2. Sort the intersections by increasing x coordinate 3. fill in-between pixel extrema using odd-even parity rule

16 Pixel extrema (a) (b) Span extrema Other pixels in the span

17 Special cases 1. Given an intersection with an arbitrary, fractional x value, how do we determine which pixel on either side of the intersection is interior? 2. How do we deal with intersections at integer pixel coordinates? 3. How do we deal with shared vertices? 4. How do we deal with horizontal edges?

18 Special case solutions 1. If inside and approaching fraction intersection to the right round x coordinate down; else if outside round up. 2. If leftmost pixel (has integer coordinate) define as interior; else if right most coordinate (has integer coordinate) define to be exterior. 3. Count the y min vertex of an edge in parity but not the y max vertex (therefore vertex y max is only drawn if it is the y min vertex for the adjacent edge) For example vertex A in 3.14, is counted one in the parity calculation because it is the y min vertex for edge FA but the y max vertex for edge AB (Thus, both edges and spans are treated as intervals that are closed at their minimum value and open at their maximum value).

19 Horizontal edges G F I H E J C D A B

20 The bucket-sorted edge table right for the polygon on the left (Foley Figures 3.14 and 3.18) D F Scan line a b c d E C A B y coordinate l l l l l l l EF DE CD AB l FA l BC l l y max 3 7 x min m l

21 Active edge table for scan line 9 (above) and 10 (below) (Foley Figures 3.14 and 3.19) D F Scan line a b c d E C A B AET pointer FA y 1 max x m EF DE CD l 4 AET pointer DE (a) (b) CD l

22 Need to fill discreet pixel locations, but don t want to have to check all edges from all polygons for large scenes - would take too much computationally! Therefore sort edge locations based on x and y coordinates and use a hash-table like approach of retrieving them, relative to what location you are presently scanning (or filling). Foley s Figure 3.18 is shown along side figure 3.14 to indicate the associated bucket-sorted edge table generated (ahead of actual filling operation) for this polygon.

23 Scan-line polygon filling algorithm 1 Create a data structure for edges, containing the minimum and maximum y values (y min and y max, respectively) for each edge, and the x value corresponding to y min, called x min. 2 Create an edge table in which the edges are listed, sorted in ascending order by their y min value. Omit any horizontal edges from the table. 3 Set scan line value y scan to the minimum y min value for all edges (that is, to the lowest y value reached by the polygon). 4 Create an active edge table, containing all the edges currently intersected by the scan line. 5 Add to the active edge table (and delete from the master edge table) any edges whose y min value is equal to the current y scan.

24 Scan-line polygon filling algorithm 6 Sort the active edge table in ascending order on x. 7 Traverse active edge table, taking pairs of edges and drawing all pixels between x value for the first edge in a pair and the x value in the second edge in the same pair. 8 Move to the next scan line by incrementing y scan by 1. 9 Delete any edges from the active edge table if their y max value is equal to y scan. 10 Determine where scan line intersects edge (see edge coherence slide in next lecture). 11 While either master edge table or the active edge table has edges, goto step 5.

25 Define a data structure for representing an edge. It must be remembered that x min is not necessarily the minimum x value on the edge it is the x value that corresponds to the point with minimum y value. The edge table lists edges, as represented by the data structures defined in step 1. In practice, an array or linked list is used for the edge table. (Omitting horizontal edges, like in previous diagram, treat as a special outside case). This is easily done by taking the y min value from the first entry in the edge table, since the table was sorted on y min. We begin scanning the polygon at this point (only start scanning at top of polygon). Like the original edge table, this second active edge table is usually implemented as an array or linked list (only need to do this once).

26 Edges are therefore distributed between active edge table and master edge table (loops from step 11, so do this at beginning of each scan line). Sorting the edges in the active edge table means they are listed in the order that they are intersected by the scan line (as it travels left to right). Traversing active edge table For example, with the scan line positioned as shown in Fig 1.14, pixels along this line between edges AB and AF would be drawn from the first pair of edges in the active edge table, then pixels between EF and ED. (Note that the active edge table will always contain an even number of edges). Move to next scan line.

27 Delete edges from active edge table Note that we do not draw the pixel corresponding to the y max value before deleting the edge this is consistent with the rule ed in determining the parity of a pixel. Determine edge coherence Repeat algorithm by going back to step 5 and repeating, while either master edge table or the active edge table has edges.

28 Edge coherence Many edges that intersect scan line i also intersect scan line i + 1 Can incrementally calculate intersection x i+1 = x i + a m, where m is the slope of the edge Can avoid fractional arithmetic by computing an integer decision variable and checking only its sign to decide when to increment x (as we will see later in lecture)

29 Scan converting lines Involves turning on the correct pixels, either in display or in [ an ] x0 image. Assume line segment is described by its start point y [ ] 0 x1 and end point. y 1

30 First attempt Choose function y = mx + b, and use the following basic iterative algorithm that steps through the range of x values [x 0..x 1 ]: For each x compute corresponding (real) y value from the line equation. Round that y value to the nearest [ ] pixel (grid) position and x switch on, or set pixel at that position. y

31 Example: Drawing y = 7x + 2 (Rowe fig 1.4). (0,40) Increasing x Increasing y First, the problem that floating point arithmetic is computationally complex therefore slow to compute, particularly since this needs to be done very frequently, and Second, the problem of discretisation in determining which pixel to turn on, one or both?

32 The problem: a line with slope m > 1 will have gaps in it. Solution: m > 1 draw x as function of y m 1 draw y as function of x (as above)

33 Refinement Reduce line generation to one very special case, like 0 m 1 Handle all other cases as symmetries of the special case, by parameterised subroutines explicit transformations duplicating code Leads to kind of line generation algorithm where step is always 0 or 1. Further refinement: Bresenham s algorithm and variants only integer arithmetic, only addition/ subtraction.

34 Bresenham s algorithm Bresenham s insight was to step horizontally, accumulating error until error gets big enough to force a step upwards. For integer coordinates all quantities are ratios with 2 or x = x 1 x 0 in the denominator, multiplying everything by 2 x, makes everything integer. Essential insight: For integer coordinates, all quantities are ratios with 2 or x = x 1 x 0 in the denominator. Multiplying everything by 2 x, makes everything integer. Step horizontally, accumulating error, until error gets big enough to force a step upwards.

35 At each step, choose between two pixels based on the sign of the decision variable calculated in the previous iteration: then it updates the decision variable by adding the error to the old value, depending on the choice of pixel.

36 The recursive problem Assuming starting point (x 0, y 0 ) is provided, the recursive problem is given (x k, y k ) to find y value for subscript position x k + 1, y = m(x k + 1) + b y is either y k or y k + 1, assuming that algorithm is drawing line from left to right as in first case (positive slope < 1). Initially, y = mx k + b, next row we get y = m(x k + 1) + b and either y = y + k or y = y k + 1.

37 d 2 y k + 1 (x k, y k ) d 1 y k d 1 = y y k = m(x k + 1) + b y k d 2 = y k + 1 y = y k + 1 m(x k + 1) b d 1 d 2 = 2m(x k + 1) + 2b 2y k 1 The sign of the difference d 1 d 2 determines which pixel to choose: if difference is negative then y k is closer to actual line (y), if it is positive y k + 1 is closer. How are non-integer calculations eliminated?

38 Bresenham requires that the endpoints of line segments (x 0, y 0 ) and (x n, y n ) are provided, therefore the slope m can be expressed as a ratio of integers, m = y x, substitution gives d 1 d 2 = 2m(x k + 1) + 2b 2y k 1 x(d 1 d 2 ) = 2 yx k 2 xy k + [2 y + x(2b 1)] As x is always 1 and [2 y + x(2b 1)] does not depend on pixel index k, we can write C = 2 y + x(2b 1). The pixel choice parameter p k can now be defined as p k = x(d 1 d 2 ) = 2 yx k 2 xy k + C If p k is positive, we choose y k + 1; if negative, y k. Now how do we get rid of C?

39 The answer is to use recursion for calculating a series of p k values, the pixel choice at the next location is determined by p k+1, and C can be eliminated by subtraction, as follows p k = x(d 1 d 2 ) = 2 yx k 2 xy k + C p k+1 = 2 yx k+1 2 xy k+1 + C p k+1 p k = 2 y(x k+1 x k ) 2 x(y k+1 y k ) and since algorithm steps along x axis, x k+1 = x + k + 1, can recursively define a relationship for choosing pixels as p k+1 = p k + 2 y 2 x(y k+1 y k ) Note that all quantities in this equation are integers.

40 For initialisation, a starting value for the first pixel, p 0, is required, using equation (see earlier) x(d 1 d 2 ) = 2 yx k 2 xy k + [2 y + x(2b 1)] and using starting point of the line (x 0, y o ) and substituting the following for b b = y 0 mx 0 = y 0 ( y/ x)x 0 we obtain p 0 = 2 y x

41 Bresenham s algorithm 1. Provide endpoints (x 0, y 0 ) and (x n, y n ) of line. 2. Calculate constants 2 y and 2 y 2 x, where y = y n y 0 and x = x n x Plot the origin (x 0, y 0 ). 4. Calculate the pixel choice parameter p k, and if pk < 0, plot (x k + 1, y k ) and p k+1 = p k + 2 y otherwise plot (x k + 1, y k + 1) and p k+1 = p k + 2 y 2 x 5. Repeat step 4, until x n is reached.

42 Implementation of Bresenham s algorithm Implementation of Bresenham s algorithm for drawing lines based on mathematical equation y = mx + b for either (i) positive slope < 1 (only this case covered here) (ii) negative slope > 1, or (iii) positive slope 1. For the discrete case, subscript k is added to pixel x k, the equation for a line then becomes y = mx k + b however, in general y will not be an integer.

43 / / Bresenham s a l g o r i t h m f o r l i n e drawing void drawbresenhamline ( Graphics g, Point s t a r t, Point end ) { / / Implements case f o r slope < 1 i f ( m_slopelt1 ) { x = m_x0 + 1; y = m_y0 ; while ( x < m_x1) { i f ( m_param < 0) { m_param += m_twodeltay ; } else { m_param += m_twodydx ; y += m_slopesign ; } drawpixel ( g, x, y ) ; x ++; }

44 Edge coherence (revisited) In principle, finding the intersection of the point between a scan line and a polygon edge just involves substituting y = y scan into equation for a line and solving for s. However, it suffers from same problem as drawing lines, in that it involves floating point arithmetic. It turns out that there is a more efficient algorithm which allows us to calculate the x value on a scan line directly from the x value on the previous scan line (like Bresenham s algorithm), based on the edge coherence property of a polygon.

45 The idea behind coherence is that most geometric figures have regions where properties are relatively consistent. In edge coherence, this means that non-horizontal edge in a polygon will be intersected by more than one scan line and therefore should be able to generate intersection points iteratively, rather than using the line equation at each step. Suggests a recursive algorithm closely related to Bresenham s line drawing algorithm.

46 Edge coherence algorithm 1. When a scan line is added to the active edge table, initialise x to x min and the increment to 0. Calculate and store x and y. 2. When a scan line is increased by 1, add x to the increment. 3. If the magnitude of the slope is greater than or equal to 1, compare the magnitude of the increment with y. If it is less than y, leave x as it is. Otherwise, increase x by 1, and subtract (add) y to the increment if the increment is positive (negative). 4. If magnitude of slope is less than 1, determine number of pixels to increase x by dividing magnitude of increment by y (ignoring remainder). The remainder (positive if increment is positive, and negative if it is negative) becomes new value of the increment.

47 Z Buffer As well as pixel frame buffer, keep a parallel Z buffer, which at each point records the depth of corresponding pixel. The Z buffer is initialised to some representation of infinite depth. The frame buffer initialised to background colour then pixel writes take pixel value, x, y, and Z. Updates only take place at (x, y) only if new depth is closer.

48 Z Buffer Depth must be in camera coordinates, any order-preserving function of true depth will do (pseudo-depth is OK). Z buffer must have sufficient bits to resolve depth finely enough and may use some bits of frame buffer, if enough bits are available, and display lookup tables can be manipulated. Can use buffer with higher spatial resolution, and block-average down for antialiasing.

49 The z-buffer drawing (a) first and (b) second polygons = (a) = (b) Assume looking down the z axis. Depends on spatial resolution (must have sufficient bits to resolve depth finely enough).

50 Interpolation of z values along edges for scan lines y 1 y z 1 y z a = z 1 (z 1 z 2 ) 1 y s y 1 y 2 y s z a z p z b Scan line y z b = z 1 (z 1 z 3 ) 1 y s y 1 y 3 y 2 z 2 y 3 z 3 x b x p z p = z b (z b z a ) x b x a

51 Pros and cons of the z buffer + simple to implement. + implementable in hardware (generally is). + works for all kinds of objects (not just polyhedra). - extra storage needed for Z buffer. - many accesses to Z buffer and frame buffer bad for display through a communications link. - limited to space and depth resolution of buffers.

52 Properties of Z-buffers for each polygon or object in scene (piecewise Z buffering). (z-buffer) for each scan line (single-scan-line Z buffering If shading computation is time-consuming, a rough front-to back depth sort of objects to display closest one first improves efficiency (can use radix sort for this, at resolution of z-buffer). Don t calculate shading for hidden surfaces important if using Phong illumination model as we will see later.

53 Rendering pipeline for z-buffer (revisited) db traversal Modeling transformation Trivial accept/reject Lighting Viewing transformation Clipping Divide by W, map to 3D viewport Rasterization Display (Foley Figure 14.41)

54 Rendering pipeline for z-buffer - the steps See page 521 of Foley: db traversal & modelling transformation transform all (relatively defined) polygons or polygonal meshes to their correct location. Trivial accept/reject: Entirely outside & back face culling Lighting: calculate intensity (for vertices only: need to do in 3D before perspective projection) Viewing transformation: perspective transformation (e.g. perspective foreshortening). Clipping: clip to viewport (involves creation of new vertices on border). Map to viewport: Change of coordinate systems (Divide by W: based on homogeneous coordinate system). Rasterisation: scan-line drawing polygons (including z-buffering & shading interpolation)

55 Rendering pipeline for z-buffer and Phong shading db traversal Modeling transformation Trivial accept/reject Viewing transformation Clipping Divide by W, map to 3D viewport Rasterization (including lighting) Display Using the Phong illumination model, lighting cannot be calculated early in the pipeline why? (Foley Figure 14.42),

56 Rendering pipeline for z-buffer and Phong shading See pages of Foley: Viewing transformation: Need to calculate lighting after viewing transformation, why? because Phong illumination is dependent on viewer orientation. Clipping: because Phong shading interpolates surface normals, rather than intensities, the vertices cannot be lit early in the pipeline Rasterisation: lighting equation must be calculated for every pixel.

57 High performance visible surface determination Many methods and variations of visible surface determination are possible, which performs best depends on hardware available, and nature of graphics drawn, E.g. for a scene made of many small polygons, Z buffering might be best, for a scene made of a few large polygons, binary space partition techniques (BSPs) might be better. The Z-buffer idea can also be used for a variety of tasks, such as piecewise Z buffering (for example polygon-by polygon), or single-scan-line Z buffering (pixel-by-pixel).

58 Summary Polygons can be filled using a scan-line approach based on the odd-even to determine whether inside or outside. Efficient scan-line algorithms rely on bucket (hash) sorting edges and maintaining active-edge tables. This allows only edges of relevant polygons to be checked. Efficient line drawing algorithms typically utilise the edge coherence property to calculate the value of the pixel on the current scan line from the value on previous scan line. Bresenham s insight was how to rely only on integer operations, thus avoiding floating point arithmetic.

59 Summary Edge-coherence properties can be utilised in polygon filling algorithms, to decide whether x values in the active-edge table need incrementing (Can use same approach for drawing circles and ellipses) The Rendering pipeline, based on z-buffering, is the basis of Hidden surface removal OpenGL. Various techniques exist for high performance visible surface detection, including binary space partition (BSP) and piecewise (polygon-by-polygon) Z buffering and single-scane-line (pixel-by-pixel) buffering.

### Graphics and Interaction Rendering pipeline & object modelling

433-324 Graphics and Interaction Rendering pipeline & object modelling Department of Computer Science and Software Engineering The Lecture outline Introduction to Modelling Polygonal geometry The rendering

### Renderer Implementation: Basics and Clipping. Overview. Preliminaries. David Carr Virtual Environments, Fundamentals Spring 2005

INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Renderer Implementation: Basics and Clipping David Carr Virtual Environments, Fundamentals Spring 2005 Feb-28-05 SMM009, Basics and Clipping 1

### Incremental Form. Idea. More efficient if we look at d k, the value of the decision variable at x = k

Idea 1 m 0 candidates last pixel Note that line could have passed through any part of this pixel Decision variable: d = x(a-b) d is an integer d < 0 use upper pixel d > 0 use lower pixel Incremental Form

### Chapter 8: Implementation- Clipping and Rasterization

Chapter 8: Implementation- Clipping and Rasterization Clipping Fundamentals Cohen-Sutherland Parametric Polygons Circles and Curves Text Basic Concepts: The purpose of clipping is to remove objects or

### From Vertices to Fragments: Rasterization. Reading Assignment: Chapter 7. Special memory where pixel colors are stored.

From Vertices to Fragments: Rasterization Reading Assignment: Chapter 7 Frame Buffer Special memory where pixel colors are stored. System Bus CPU Main Memory Graphics Card -- Graphics Processing Unit (GPU)

### Graphics (Output) Primitives. Chapters 3 & 4

Graphics (Output) Primitives Chapters 3 & 4 Graphic Output and Input Pipeline Scan conversion converts primitives such as lines, circles, etc. into pixel values geometric description a finite scene area

### Scan Conversion. CMP 477 Computer Graphics S. A. Arekete

Scan Conversion CMP 477 Computer Graphics S. A. Areete What is Scan-Conversion? 2D or 3D objects in real world space are made up of graphic primitives such as points, lines, circles and filled polygons.

### Lecture outline Graphics and Interaction Scan Converting Polygons and Lines. Inside or outside a polygon? Scan conversion.

Lecture outine 433-324 Graphics and Interaction Scan Converting Poygons and Lines Department of Computer Science and Software Engineering The Introduction Scan conversion Scan-ine agorithm Edge coherence

### Announcements. Midterms graded back at the end of class Help session on Assignment 3 for last ~20 minutes of class. Computer Graphics

Announcements Midterms graded back at the end of class Help session on Assignment 3 for last ~20 minutes of class 1 Scan Conversion Overview of Rendering Scan Conversion Drawing Lines Drawing Polygons

### OpenGL Graphics System. 2D Graphics Primitives. Drawing 2D Graphics Primitives. 2D Graphics Primitives. Mathematical 2D Primitives.

D Graphics Primitives Eye sees Displays - CRT/LCD Frame buffer - Addressable pixel array (D) Graphics processor s main function is to map application model (D) by projection on to D primitives: points,

### FROM VERTICES TO FRAGMENTS. Lecture 5 Comp3080 Computer Graphics HKBU

FROM VERTICES TO FRAGMENTS Lecture 5 Comp3080 Computer Graphics HKBU OBJECTIVES Introduce basic implementation strategies Clipping Scan conversion OCTOBER 9, 2011 2 OVERVIEW At end of the geometric pipeline,

### COMP371 COMPUTER GRAPHICS

COMP371 COMPUTER GRAPHICS LECTURE 14 RASTERIZATION 1 Lecture Overview Review of last class Line Scan conversion Polygon Scan conversion Antialiasing 2 Rasterization The raster display is a matrix of picture

### COMP30019 Graphics and Interaction Rendering pipeline & object modelling

COMP30019 Graphics and Interaction Rendering pipeline & object modelling Department of Computer Science and Software Engineering The Lecture outline Introduction to Modelling Polygonal geometry The rendering

### Lecture outline. COMP30019 Graphics and Interaction Rendering pipeline & object modelling. Introduction to modelling

Lecture outline COMP30019 Graphics and Interaction Rendering pipeline & object modelling Department of Computer Science and Software Engineering The Introduction to Modelling Polygonal geometry The rendering

### Computer Graphics 7 - Rasterisation

Computer Graphics 7 - Rasterisation Tom Thorne Slides courtesy of Taku Komura www.inf.ed.ac.uk/teaching/courses/cg Overview Line rasterisation Polygon rasterisation Mean value coordinates Decomposing polygons

### Rasterization, or What is glbegin(gl_lines) really doing?

Rasterization, or What is glbegin(gl_lines) really doing? Course web page: http://goo.gl/eb3aa February 23, 2012 Lecture 4 Outline Rasterizing lines DDA/parametric algorithm Midpoint/Bresenham s algorithm

### Rasterization: Geometric Primitives

Rasterization: Geometric Primitives Outline Rasterizing lines Rasterizing polygons 1 Rasterization: What is it? How to go from real numbers of geometric primitives vertices to integer coordinates of pixels

### CS 248 Assignment 2 Polygon Scan Converter. CS248 Presented by Abe Davis Stanford University October 17, 2008

CS 248 Assignment 2 Polygon Scan Converter CS248 Presented by Abe Davis Stanford University October 17, 2008 Announcements First thing: read README.animgui. It should tell you everything you need to know

### (Refer Slide Time: 00:02:00)

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 18 Polyfill - Scan Conversion of a Polygon Today we will discuss the concepts

Last Time? The Traditional Graphics Pipeline Participating Media Measuring BRDFs 3D Digitizing & Scattering BSSRDFs Monte Carlo Simulation Dipole Approximation Today Ray Casting / Tracing Advantages? Ray

### 2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into

2D rendering takes a photo of the 2D scene with a virtual camera that selects an axis aligned rectangle from the scene. The photograph is placed into the viewport of the current application window. A pixel

### From Ver(ces to Fragments: Rasteriza(on

From Ver(ces to Fragments: Rasteriza(on From Ver(ces to Fragments 3D vertices vertex shader rasterizer fragment shader final pixels 2D screen fragments l determine fragments to be covered l interpolate

### UNIT 2 GRAPHIC PRIMITIVES

UNIT 2 GRAPHIC PRIMITIVES Structure Page Nos. 2.1 Introduction 46 2.2 Objectives 46 2.3 Points and Lines 46 2.4 Line Generation Algorithms 48 2.4.1 DDA Algorithm 49 2.4.2 Bresenhams Line Generation Algorithm

### Computer Graphics : Bresenham Line Drawing Algorithm, Circle Drawing & Polygon Filling

Computer Graphics : Bresenham Line Drawing Algorithm, Circle Drawing & Polygon Filling Downloaded from :www.comp.dit.ie/bmacnamee/materials/graphics/006- Contents In today s lecture we ll have a loo at:

### Polygon Filling. Can write frame buffer one word at time rather than one bit. 2/3/2000 CS 4/57101 Lecture 6 1

Polygon Filling 2 parts to task which pixels to fill what to fill them with First consider filling unclipped primitives with solid color Which pixels to fill consider scan lines that intersect primitive

Last Time? The Traditional Graphics Pipeline Reading for Today A Practical Model for Subsurface Light Transport, Jensen, Marschner, Levoy, & Hanrahan, SIGGRAPH 2001 Participating Media Measuring BRDFs

Final Projects Proposals due Thursday 4/8 Proposed project summary At least 3 related papers (read & summarized) Description of series of test cases Timeline & initial task assignment The Traditional Graphics

### Chapter 3. Sukhwinder Singh

Chapter 3 Sukhwinder Singh PIXEL ADDRESSING AND OBJECT GEOMETRY Object descriptions are given in a world reference frame, chosen to suit a particular application, and input world coordinates are ultimately

### Computer Graphics. - Rasterization - Philipp Slusallek

Computer Graphics - Rasterization - Philipp Slusallek Rasterization Definition Given some geometry (point, 2D line, circle, triangle, polygon, ), specify which pixels of a raster display each primitive

### Visibility: Z Buffering

University of British Columbia CPSC 414 Computer Graphics Visibility: Z Buffering Week 1, Mon 3 Nov 23 Tamara Munzner 1 Poll how far are people on project 2? preferences for Plan A: status quo P2 stays

### CSC Computer Graphics

// CSC. Computer Graphics Lecture Kasun@dscs.sjp.ac.lk Department of Computer Science University of Sri Jayewardanepura Polygon Filling Scan-Line Polygon Fill Algorithm Span Flood-Fill Algorithm Inside-outside

### Einführung in Visual Computing

Einführung in Visual Computing 186.822 Rasterization Werner Purgathofer Rasterization in the Rendering Pipeline scene objects in object space transformed vertices in clip space scene in normalized device

### Topic #1: Rasterization (Scan Conversion)

Topic #1: Rasterization (Scan Conversion) We will generally model objects with geometric primitives points, lines, and polygons For display, we need to convert them to pixels for points it s obvious but

### Scan Conversion. Drawing Lines Drawing Circles

Scan Conversion Drawing Lines Drawing Circles 1 How to Draw This? 2 Start From Simple How to draw a line: y(x) = mx + b? 3 Scan Conversion, a.k.a. Rasterization Ideal Picture Raster Representation Scan

### Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14 Scan Converting Lines, Circles and Ellipses Hello everybody, welcome again

### Overview. Pipeline implementation I. Overview. Required Tasks. Preliminaries Clipping. Hidden Surface removal

Overview Pipeline implementation I Preliminaries Clipping Line clipping Hidden Surface removal Overview At end of the geometric pipeline, vertices have been assembled into primitives Must clip out primitives

### graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time

### graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1

graphics pipeline computer graphics graphics pipeline 2009 fabio pellacini 1 graphics pipeline sequence of operations to generate an image using object-order processing primitives processed one-at-a-time

### Hidden surface removal. Computer Graphics

Lecture Hidden Surface Removal and Rasterization Taku Komura Hidden surface removal Drawing polygonal faces on screen consumes CPU cycles Illumination We cannot see every surface in scene We don t want

### CS 543: Computer Graphics. Rasterization

CS 543: Computer Graphics Rasterization Robert W. Lindeman Associate Professor Interactive Media & Game Development Department of Computer Science Worcester Polytechnic Institute gogo@wpi.edu (with lots

### Output Primitives Lecture: 3. Lecture 3. Output Primitives. Assuming we have a raster display, a picture is completely specified by:

Lecture 3 Output Primitives Assuming we have a raster display, a picture is completely specified by: - A set of intensities for the pixel positions in the display. - A set of complex objects, such as trees

### CEng 477 Introduction to Computer Graphics Fall 2007

Visible Surface Detection CEng 477 Introduction to Computer Graphics Fall 2007 Visible Surface Detection Visible surface detection or hidden surface removal. Realistic scenes: closer objects occludes the

### Werner Purgathofer

Einführung in Visual Computing 186.822 Visible Surface Detection Werner Purgathofer Visibility in the Rendering Pipeline scene objects in object space object capture/creation ti modeling viewing projection

### Hidden Surfaces II. Week 9, Mon Mar 15

University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2010 Tamara Munzner Hidden Surfaces II Week 9, Mon Mar 15 http://www.ugrad.cs.ubc.ca/~cs314/vjan2010 ews yes, I'm granting the request

### Department of Computer Sciences Graphics Fall 2003 (Lecture 2) Pixels

Pixels Pixel: Intensity or color sample. Raster Image: Rectangular grid of pixels. Rasterization: Conversion of a primitive s geometric representation into A set of pixels. An intensity or color for each

### Topics. From vertices to fragments

Topics From vertices to fragments From Vertices to Fragments Assign a color to every pixel Pass every object through the system Required tasks: Modeling Geometric processing Rasterization Fragment processing

### (Refer Slide Time: 00:03:51)

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 17 Scan Converting Lines, Circles and Ellipses Hello and welcome everybody

### Computer Graphics and GPGPU Programming

Computer Graphics and GPGPU Programming Donato D Ambrosio Department of Mathematics and Computer Science and Center of Excellence for High Performace Computing Cubo 22B, University of Calabria, Rende 87036,

### 8. Hidden Surface Elimination

8. Hidden Surface Elimination Identification and Removal of parts of picture that are not visible from a chosen viewing position. 1 8. Hidden Surface Elimination Basic idea: Overwriting Paint things in

### 2D Graphics Primitives II. Additional issues in scan converting lines. 1)Endpoint order. Want algorithms to draw the same pixels for each line

walters@buffalo.edu CSE 480/580 Lecture 8 Slide 1 2D Graphics Primitives II Additional issues in scan converting lines 1)Endpoint order Want algorithms to draw the same pixels for each line How handle?

### From Vertices To Fragments-1

From Vertices To Fragments-1 1 Objectives Clipping Line-segment clipping polygon clipping 2 Overview At end of the geometric pipeline, vertices have been assembled into primitives Must clip out primitives

### Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Rendering Pipeline Rendering Converting a 3D scene to a 2D image Rendering Light Camera 3D Model View Plane Rendering Converting a 3D scene to a 2D image Basic rendering tasks: Modeling: creating the world

### 4.5 VISIBLE SURFACE DETECTION METHODES

4.5 VISIBLE SURFACE DETECTION METHODES A major consideration in the generation of realistic graphics displays is identifying those parts of a scene that are visible from a chosen viewing position. There

### Visible-Surface Detection Methods. Chapter? Intro. to Computer Graphics Spring 2008, Y. G. Shin

Visible-Surface Detection Methods Chapter? Intro. to Computer Graphics Spring 2008, Y. G. Shin The Visibility Problem [Problem Statement] GIVEN: a set of 3-D surfaces, a projection from 3-D to 2-D screen,

r About the Tutorial To display a picture of any size on a computer screen is a difficult process. Computer graphics are used to simplify this process. Various algorithms and techniques are used to generate

### CS 130 Final. Fall 2015

CS 130 Final Fall 2015 Name Student ID Signature You may not ask any questions during the test. If you believe that there is something wrong with a question, write down what you think the question is trying

### CSCI 420 Computer Graphics Lecture 14. Rasterization. Scan Conversion Antialiasing [Angel Ch. 6] Jernej Barbic University of Southern California

CSCI 420 Computer Graphics Lecture 14 Rasterization Scan Conversion Antialiasing [Angel Ch. 6] Jernej Barbic University of Southern California 1 Rasterization (scan conversion) Final step in pipeline:

### Fall CSCI 420: Computer Graphics. 7.1 Rasterization. Hao Li.

Fall 2015 CSCI 420: Computer Graphics 7.1 Rasterization Hao Li http://cs420.hao-li.com 1 Rendering Pipeline 2 Outline Scan Conversion for Lines Scan Conversion for Polygons Antialiasing 3 Rasterization

### 8. Hidden Surface Elimination

-04-8 Hidden Surface Elimination To eliminate edges and surfaces not visible to the viewer Two categories: Object space methods: Image space methods: deal with object definitions directly Order the surfaces

### Lets assume each object has a defined colour. Hence our illumination model is looks unrealistic.

Shading Models There are two main types of rendering that we cover, polygon rendering ray tracing Polygon rendering is used to apply illumination models to polygons, whereas ray tracing applies to arbitrary

### Clipping. Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 2015

Clipping 1 Objectives Clipping lines First of implementation algorithms Clipping polygons (next lecture) Focus on pipeline plus a few classic algorithms 2 Clipping 2D against clipping window 3D against

### CSCI 4620/8626. Coordinate Reference Frames

CSCI 4620/8626 Computer Graphics Graphics Output Primitives Last update: 2014-02-03 Coordinate Reference Frames To describe a picture, the world-coordinate reference frame (2D or 3D) must be selected.

### EF432. Introduction to spagetti and meatballs

EF432 Introduction to spagetti and meatballs CSC 418/2504: Computer Graphics Course web site (includes course information sheet): http://www.dgp.toronto.edu/~karan/courses/418/fall2015 Instructor: Karan

### CHAPTER 1 Graphics Systems and Models 3

?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........

### Rasterization. Rasterization (scan conversion) Digital Differential Analyzer (DDA) Rasterizing a line. Digital Differential Analyzer (DDA)

CSCI 420 Computer Graphics Lecture 14 Rasterization Jernej Barbic University of Southern California Scan Conversion Antialiasing [Angel Ch. 6] Rasterization (scan conversion) Final step in pipeline: rasterization

### Computer Graphics (CS 543) Lecture 10: Rasterization and Antialiasing

Computer Graphics (CS 543) Lecture 10: Rasterization and Antialiasing Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Recall: Rasterization Rasterization (scan conversion)

### CS 248 Assignment 2 Polygon Scan Conversion. CS248 Presented by Michael Green Stanford University October 20, 2004

CS 248 Assignment 2 Polygon Scan Conversion CS248 Presented by Michael Green Stanford University October 20, 2004 Announcements First thing: read README.animgui.. It should tell you everything you need

### Identifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts

Visible Surface Detection Identifying those parts of a scene that are visible from a chosen viewing position, and only process (scan convert) those parts Two approaches: 1. Object space methods 2. Image

### Institutionen för systemteknik

Code: Day: Lokal: M7002E 19 March E1026 Institutionen för systemteknik Examination in: M7002E, Computer Graphics and Virtual Environments Number of sections: 7 Max. score: 100 (normally 60 is required

### CS 4204 Computer Graphics

CS 4204 Computer Graphics 3D Viewing and Projection Yong Cao Virginia Tech Objective We will develop methods to camera through scenes. We will develop mathematical tools to handle perspective projection.

### Tópicos de Computação Gráfica Topics in Computer Graphics 10509: Doutoramento em Engenharia Informática. Chap. 2 Rasterization.

Tópicos de Computação Gráfica Topics in Computer Graphics 10509: Doutoramento em Engenharia Informática Chap. 2 Rasterization Rasterization Outline : Raster display technology. Basic concepts: pixel, resolution,

### RASTERIZING POLYGONS IN IMAGE SPACE

On-Line Computer Graphics Notes RASTERIZING POLYGONS IN IMAGE SPACE Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University of California, Davis A fundamental

### CS488 2D Graphics. Luc RENAMBOT

CS488 2D Graphics Luc RENAMBOT 1 Topics Last time, hardware and frame buffer Now, how lines and polygons are drawn in the frame buffer. Then, how 2D and 3D models drawing into the frame buffer Then, more

### Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer

Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer The exam consists of 10 questions. There are 2 points per question for a total of 20 points. You

### 1 Introduction to Graphics

1 1.1 Raster Displays The screen is represented by a 2D array of locations called pixels. Zooming in on an image made up of pixels The convention in these notes will follow that of OpenGL, placing the

### Rendering. Basic Math Review. Rasterizing Lines and Polygons Hidden Surface Remove Multi-pass Rendering with Accumulation Buffers.

Rendering Rasterizing Lines and Polygons Hidden Surface Remove Multi-pass Rendering with Accumulation Buffers Basic Math Review Slope-Intercept Formula For Lines Given a third point on the line: P = (X,Y)

### From 3D World to 2D Screen. Hendrik Speleers

Hendrik Speleers Overview Synthetic camera Rendering pipeline World window versus viewport Clipping Cohen-Sutherland algorithm Rasterizing Bresenham algorithm Three different actors in a scene Objects:

### Triangle Rasterization

Triangle Rasterization Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 2/07/07 1 From last time Lines and planes Culling View frustum culling Back-face culling Occlusion culling

### Visible Surface Detection Methods

Visible urface Detection Methods Visible-urface Detection identifying visible parts of a scene (also hidden- elimination) type of algorithm depends on: complexity of scene type of objects available equipment

### Line Drawing. Introduction to Computer Graphics Torsten Möller / Mike Phillips. Machiraju/Zhang/Möller

Line Drawing Introduction to Computer Graphics Torsten Möller / Mike Phillips Rendering Pipeline Hardware Modelling Transform Visibility Illumination + Shading Perception, Color Interaction Texture/ Realism

### Chapter - 2: Geometry and Line Generations

Chapter - 2: Geometry and Line Generations In Computer graphics, various application ranges in different areas like entertainment to scientific image processing. In defining this all application mathematics

### CS4620/5620: Lecture 14 Pipeline

CS4620/5620: Lecture 14 Pipeline 1 Rasterizing triangles Summary 1! evaluation of linear functions on pixel grid 2! functions defined by parameter values at vertices 3! using extra parameters to determine

### Display Technologies: CRTs Raster Displays

Rasterization Display Technologies: CRTs Raster Displays Raster: A rectangular array of points or dots Pixel: One dot or picture element of the raster Scanline: A row of pixels Rasterize: find the set

### Computer Graphics. Lecture 9 Hidden Surface Removal. Taku Komura

Computer Graphics Lecture 9 Hidden Surface Removal Taku Komura 1 Why Hidden Surface Removal? A correct rendering requires correct visibility calculations When multiple opaque polygons cover the same screen

### 9. Visible-Surface Detection Methods

9. Visible-Surface Detection Methods More information about Modelling and Perspective Viewing: Before going to visible surface detection, we first review and discuss the followings: 1. Modelling Transformation:

### Pipeline Operations. CS 4620 Lecture 10

Pipeline Operations CS 4620 Lecture 10 2008 Steve Marschner 1 Hidden surface elimination Goal is to figure out which color to make the pixels based on what s in front of what. Hidden surface elimination

### Course Title: Computer Graphics Course no: CSC209

Course Title: Computer Graphics Course no: CSC209 Nature of the Course: Theory + Lab Semester: III Full Marks: 60+20+20 Pass Marks: 24 +8+8 Credit Hrs: 3 Course Description: The course coversconcepts of

### The Graphics Pipeline. Interactive Computer Graphics. The Graphics Pipeline. The Graphics Pipeline. The Graphics Pipeline: Clipping

Interactive Computer Graphics The Graphics Pipeline: The Graphics Pipeline Input: - geometric model - illumination model - camera model - viewport Some slides adopted from F. Durand and B. Cutler, MIT

### Realtime 3D Computer Graphics Virtual Reality

Realtime 3D Computer Graphics Virtual Reality From Vertices to Fragments Overview Overall goal recapitulation: Input: World description, e.g., set of vertices and states for objects, attributes, camera,

### CSCI 4620/8626. Computer Graphics Clipping Algorithms (Chapter 8-5 )

CSCI 4620/8626 Computer Graphics Clipping Algorithms (Chapter 8-5 ) Last update: 2016-03-15 Clipping Algorithms A clipping algorithm is any procedure that eliminates those portions of a picture outside

### Introduction to Computer Graphics (CS602) Lecture 05 Line Drawing Techniques

Introduction to Computer Graphics (CS602) Lecture 05 Line Drawing Techniques 5.1 Line A line, or straight line, is, roughly speaking, an (infinitely) thin, (infinitely) long, straight geometrical object,

### CS488. Visible-Surface Determination. Luc RENAMBOT

CS488 Visible-Surface Determination Luc RENAMBOT 1 Visible-Surface Determination So far in the class we have dealt mostly with simple wireframe drawings of the models The main reason for this is so that

### Digital Differential Analyzer Bresenhams Line Drawing Algorithm

Bresenham s Line Generation The Bresenham algorithm is another incremental scan conversion algorithm. The big advantage of this algorithm is that, it uses only integer calculations. Difference Between

### Computer Graphics. Bing-Yu Chen National Taiwan University

Computer Graphics Bing-Yu Chen National Taiwan University Visible-Surface Determination Back-Face Culling The Depth-Sort Algorithm Binary Space-Partitioning Trees The z-buffer Algorithm Scan-Line Algorithm

### CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo)

CS602 Midterm Subjective Solved with Reference By WELL WISHER (Aqua Leo) www.vucybarien.com Question No: 1 What are the two focusing methods in CRT? Explain briefly. Page no : 26 1. Electrostatic focusing

### Line Drawing. Foundations of Computer Graphics Torsten Möller

Line Drawing Foundations of Computer Graphics Torsten Möller Rendering Pipeline Hardware Modelling Transform Visibility Illumination + Shading Perception, Interaction Color Texture/ Realism Reading Angel

### MET71 COMPUTER AIDED DESIGN

UNIT - II BRESENHAM S ALGORITHM BRESENHAM S LINE ALGORITHM Bresenham s algorithm enables the selection of optimum raster locations to represent a straight line. In this algorithm either pixels along X