Triangle Fast Scan-Conversion Algorithm Report
|
|
- Catherine Norman
- 5 years ago
- Views:
Transcription
1 Triangle Fast Scan-Conversion Algorithm Report Jian Cui Jim X. Chen Xiaorong Zhou ABSTRACT To date, very little has been done to analyze the very importance of the distribution of the shape and size of triangles in the real world. We statistically analyzed various collected graphics application files and got the conclusion that most of the triangles scan-converted onto the screen are rather smaller ones. We thus come up with a new small triangle scan-conversion algorithm which fully takes this feature into consideration. This report gives detailed description of a new small triangle scan-conversion algorithm. It gives various experiments performed based on the new algorithm and the anlysis of the performance of the algorithm. Keywords Small triangle, scan-conversion, algorithm.. INTRODUCTION Many methods have been proposed to speed up the process of scan-converting triangles onto the raster plane. However, most of them neglect the fact that triangles are not randomly distributed across different sizes and shapes. We collected various graphics applications and analyzed over.4 million triangles drawn by these applications. The conclusion of the analysis testifies that most triangles are small ones. More specifically, almost 95% of triangles can be held in a 40 rectangle area. We thus come up with the new algorithm to speed up the process of drawing small triangles and compare the performance of our algorithm with the existing triangle scanconverting algorithm.. PREVIOUS ALGORITHMS There exists various algorithms to scan-convert triangles. Edge-walking and edge-equation are the two most popular algorithms.. Edge Walking Algorithm Figure : Edge walking algorithm. Figure shows an example of the edge walking algorithm. In the edge walking algorithm, it first sorts the vertices in both x and y values. Then it determines if the middle vertex (or breakpoint) lies on the left or right side of the triangle. If the triangle has an edge parallel to the scanline direction then there is no breakpoint. It then determines the left and right edge for scanline (or called spans). The algorithm will walk down the left and right edges filling the pixels in-between until either a breakpoint or the bottom vertex is reached. The edge walking algorithm generally is very fast. But it also has its own disadvantages. First, it is loaded with special cases, such as left and right breakpoints, or even no breakpoints. Second, because of the various cases, it is difficult to get it right when implementing it. Third, it requires computing fractional offsets when interpolating parameters across the triangle.. Edge Equation Algorithm As shown in figure, the edge equation algorithm first computes the edge equations from the three vertices. Then it orients the edge equations so that their positive-half spaces are in the triangle s interior. From the edge equations, it will get a bounding box. The algorithm then scan through pixel (x, y) in the bounding box and evaluate the edge equations. When all three equations with the same (x, y) are positive, it will draw the pixel.. FAST SMALL TRIANGLE SCAN-CONVERSION ALGORITHM
2 ... A 0 xb 0 yc A xb yc A xb yc 4 5 Triangle II Triangle I III Triangle Figure : Rectangle (w=, h=5) and the triangles inside it. Figure : Edge equation algorithm.. Basic Idea The basic idea of our algorithm fully incorporates our statistics analysis result. We use an w h rectangle area as a boundary. All the triangles which can be held inside the boundary are regarded as small triangle and will be scanconverted with our new algorithm. The ones beyond this boundary will be using the traditional scan-conversion algorithm. In our algorithm, we generate a pixel matrix array. Each matrix of the array which is in the size of (w h) is used to save the pixel image of a small triangle. In a predefined order, the array contains all the possible triangles that can be held inside this rectangle area. According to the same order, we generate an index method for the matrix array. When a program calls to draw a small triangle which is within the rectangle area onto the screen, we can use the index method to locate the position of the triangle in the matrix array and scan-convert the pixel matrix(pixel image of the triangle) directly into the frame buffer.. The Pixel Matrix Array In our algorithm, first we need to generate a pixel matrix array which contains all possible small triangles that fall into a specific w h rectangle area. When generating this array, we need to make sure: The pixel matrix array does cover all the possible small triangles within the given area. The pixel matrices stored in the array should follow certain order so that we can generate efficient index on the array... All Possible Triangles Inside a Rectangle Area A w h rectangle area can hold all triangles with their widths and heights equal to or less than w and h respectively. Figure shows a 5 rectangle area and several triangles it can hold. From the figure, we notice for each triangle falls inside the 5 rectangle area, there exists a rectangle that can hold it exactly. For example, triangle, and in Figure can be held exactly by rectangle I, II and III. So when we calculate the pixel matrix array for a specific w h rectangle area, the algorithm will first pick out all the rectangles with their width and height less than or equal to w and h respectively.,, represent the three vertices of a triangle. Figure 4: Situation. And for each of those rectangles, the algorithm will calculate the number of triangles that fit in these rectangles exactly. We use,, to represent the three vertices of a triangle. When we consider a triangle that can be held exactly by a w h rectangle area, there are five possible situations we need to consider. In situation (as shown in Figure 4), we have vertex and vertex fixed at the upper-left and bottom-right corner respectively. Vertex can locate at any position other than these two places. And we make the assumption that vertex will move from left to right, top to bottom. In situation (as shown in Figure 5), vertex still locates at the upper-left corner. But now vertex and vertex moves along the bottom and right edges of the rectangle respectively, except the pixel marked with a. Situation actually contains two possibilities(as shown in represent a position that cannot be,, represent the three vertices of a triangle. Figure 5: Situation.
3 ... represent a position that cannot be,, represent the three vertices of a triangle. Situation (a) represent a position that cannot be,, represent the three vertices of a triangle. Situation (b) Figure 6: Situation. represent a position that cannot be,, represent the three vertices of a triangle. Figure 7: Situation 4. Figure 6). In both possiblities, vertex will move along the upper edge in the rectangle area, except the upper-leftmost and upper-rightmost pixels. In situation (a), vertex is fixed at the bottom-rightmost corner of the rectangle and vertex will roam along the left edge of the rectangle except the upper-leftmost pixel. In situation (b), vertex will be stationary at the bottom-leftmost corner and vertex will travel along the right edge of the rectangle area, except for the two end pixels of the edge. In situation 4(as shown in Figure 7), vertex is fixed at the upper-rightmost corner of the rectangle. Vertex moves along the left edge except for the two end pixels. Vertex moves along the bottom edge except for the bottom-leftmost pixel. In situation 5(as shown in Figure 8), both vertex and vertex are stationary at the upper-rightmost and bottomleftmost positions respectively. Vertex can locate at any place except the first row and the pixel that has already been occupied by vertex.,, represent the three vertices of a triangle. Figure 8: Situation 5. With these 5 situations, we ve covered all the possible triangles within a certain rectangle area... Order of The Pixel Matrix in The Array When generating a pixel matrix array for a rectangle area with certain width and height, not only do we need to cover all the possiblities of the triangles inside the rectangle area, we also need to generate these matrix in a certain order, so we can later make a simple and clear index of all these matrices. Suppose we want to generate a pixel matrix array for a rectangle area with width w and height h. Figure 9 shows the pseudo code of the algorithm to generate the pixel matrix array. For each rectangle area with certain width and height, it generates the pixel matrices of all the possible triangles in five situations accordingly. 4. IMPLEMENTATION AND PERFORMANCE ALYSIS OF THE ALGORITHM 4. Implementation of The Algorithm The implementation of the algorithm is rather straight forward. Based on the nature of the algorithm, we first generate the pixel matrix array of a given rectangle with the width w and height h, using the idea shown in Figure 9. We also generate an index matrix I which has the exact same size as the rectangle area. Each value I[i][j] in the index matrix will represent how many triangles have been stored before this i j rectangle. When we execute the algorithm, we first read in the pixel matrix array and the index matrix. We then use the same data files as we used to do the statistics analysis as the input file to test the algorithm. Each time when we read in three vertices values of a triangle, we use the index file to locate the triangle in the matrix array. We then directly scan-convert the pixel matrix into the frame buffer. 4. Test data set We performed several experiments to compare the performance between our algorithm and the traditional edge equation algorithm. For each experiment, we use several different input test data sets.
4 Table : for (i=; i<=h; i) for (j=; j<=w; j) { // for each pair of (i,j) value, generate all the // possible situation of triangles from situation // to situation 5 accordingly. } // situation for (k=; k<=h; k) for (m=; m<=w; m) if (!(k==&&l== k==w&&l==h)) // draw a matrix with vertices, and // equal to (,), (w,h) and (k,m) // situation for (k=; k<h; k) for (m=; m<w; m) // draw a matrix with vertices, and // equal to (,), (m,h) and (w,k) // situation for (k=; k<w; k) { // situation (a) for (m=; m<=h; m) // draw a matrix with vertices, and // equal to (k,), (,m) and (w,h) // situation (b) for (m=; m<h; m) // draw a matrix with vertices, and // equal to (k,), (,h) and (w,m) } // situation 4 for (k=; k<h; k) for (m=; m<=w; m) // draw a matrix with vertices, and // equal to (w,), (,k) and (m,h) // situation 5 for (k=; k<=h; k) for (m=; m<=w; m) if (!(m==&&k==h) // draw a matrix with vertices, and // equal to (w,), (,h) and (m,k) Figure 9: Pseudo code for generating the pixel matrix array. Our algorithm VS Edge equation algorithm. Algorithm Used Data Set I Data Set II Our algorithm Edge equation algo The first test data set is merely the small triangles that are automatically generated using the psudo code shown in Figure 9 within the specific rectangle area. For a 5 rectangle area, there will be 5 triangles. Along with the pixel matrix array of the triangles, we also generate the coordinates values of the three vertices of the triangles. Because this data set is rather small compared to the other two data set, we repeat it 000 times and generate a larger data set. The second test data set contains all the small triangles of all the graphics applications we ve collected over the internet. From our statistics result, we found out that a 5 rectangle area can hold 67.7% triangles of all,44,858 triangles. This data set will contain 956 triangles. All the experiments are done on a Pentium III GHz PC with 84M memory. The results are shown in Table. 4. Out algorithm VS Edge Equation Algorithm We compared our algorithm with the edge equation algorithm. We run each test data set 0 times and use the average as the result. The result is shown in Table. All results are counted in millisecond (ms). 5. CONCLUSIONS It is rather disappointing to see that our algorithm can t beat OpenGL, or even the edge equation algorithm. We analyze our code and find out two possible reasons reasulting in this rather disappointing performance. Our indexing algorithm is too complicated. As you may see, each triangle has three vertices, and each vertex can locate at either the hightest, lowest, or in the middle left or middle right. Not to mention two vertices can locate at the same horizontal line or ever all the three vertices will form a horizontal line. With these many situations to consider, and with our certain ways of generating the matrix array, it makes the indexing algorithm really complicate. The way we implemented the algorithm may cause the performance of the algorithm to suffer. We store the pixel matrix of each triangle as a small bitmap. After we retrieve the bitmap of a small triangle, we use OpenGL s glbitmap function to directly send the bitmap of the small triangle to the framebuffer. As we were doing our experiments, we noticed that several articles on the internet had pointed out that glbitmap is a rather slow function and its performance relies on hardware, especially the video card, very much. In the near future, we will try to solve the above two problems. We will first try to come up with a new pixel ma-
5 trix array generating algorithm and new indexing algorithm. The pixel matrix array generating algorithm we use now is complete. It has been minimized so it doesn t have any redundancy or duplications in the pixel matrix array. But this also makes it difficult to understand and makes our indexing algorithm become complicate. We want to think other ways to allow some redundancy or duplication, but will get much better performance. Then we want to try other ways of implementing the algorithm. For example, we noticed that OpenGL s texture mapping functions are much faster than its bitmap functions. We will try those options and choose the one that suits our algorithm best.
Rasterization. COMP 575/770 Spring 2013
Rasterization COMP 575/770 Spring 2013 The Rasterization Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to
More informationTriangle 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
More information2D 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
More informationPolygon 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
More informationChapter 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
More informationInstitutionen 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
More informationScan Conversion of Polygons. Dr. Scott Schaefer
Scan Conversion of Polygons Dr. Scott Schaefer Drawing Rectangles Which pixels should be filled? /8 Drawing Rectangles Is this correct? /8 Drawing Rectangles What if two rectangles overlap? 4/8 Drawing
More informationRasterizing triangles
Rasterizing triangles We know how to project the vertices of a triangle in our model onto pixel centers. To draw the complete triangle, we have to decide which pixels to turn on. For now, let s assume
More informationCS4620/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
More informationCS 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
More informationRasterization, 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
More information6-1 THE STANDARD NORMAL DISTRIBUTION
6-1 THE STANDARD NORMAL DISTRIBUTION The major focus of this chapter is the concept of a normal probability distribution, but we begin with a uniform distribution so that we can see the following two very
More information2D 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?
More informationMeasuring Triangles. 1 cm 2. 1 cm. 1 cm
3 Measuring Triangles You can find the area of a figure by drawing it on a grid (or covering it with a transparent grid) and counting squares, but this can be very time consuming. In Investigation 1, you
More informationEinfü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
More informationChapter 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
More informationCSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation
CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2013 Announcements Project 2 due Friday, October 11
More informationIntroduction Rasterization Z-buffering Shading. Graphics 2012/2013, 4th quarter. Lecture 09: graphics pipeline (rasterization and shading)
Lecture 9 Graphics pipeline (rasterization and shading) Graphics pipeline - part 1 (recap) Perspective projection by matrix multiplication: x pixel y pixel z canonical 1 x = M vpm per M cam y z 1 This
More informationCS 325 Computer Graphics
CS 325 Computer Graphics 02 / 06 / 2012 Instructor: Michael Eckmann Today s Topics Questions? Comments? Antialiasing Polygons Interior points Fill areas tiling halftoning dithering Antialiasing Aliasing
More informationCS602 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
More informationClipping & Culling. Lecture 11 Spring Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling
Clipping & Culling Trivial Rejection Outcode Clipping Plane-at-a-time Clipping Backface Culling Lecture 11 Spring 2015 What is Clipping? Clipping is a procedure for spatially partitioning geometric primitives,
More informationScan Converting Triangles
Scan Converting Triangles Why triangles? Rasterizing triangles Interpolating parameters Post-triangle rendering Comp 236 Spring 2005 Primitive Rasterization 2-D SAMPLING problem Which pixels (samples)
More informationCS184 : Foundations of Computer Graphics Professor David Forsyth Final Examination
CS184 : Foundations of Computer Graphics Professor David Forsyth Final Examination (Total: 100 marks) Figure 1: A perspective view of a polyhedron on an infinite plane. Cameras and Perspective Rendering
More informationScalar Field Visualization I
Scalar Field Visualization I What is a Scalar Field? The approximation of certain scalar function in space f(x,y,z). Image source: blimpyb.com f What is a Scalar Field? The approximation of certain scalar
More informationCSE 167: Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012
CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #2 due this Friday, October
More informationE.Order of Operations
Appendix E E.Order of Operations This book describes all the performed between initial specification of vertices and final writing of fragments into the framebuffer. The chapters of this book are arranged
More informationCOMP30019 Graphics and Interaction Scan Converting Polygons and Lines
COMP30019 Graphics and Interaction Scan Converting Polygons and Lines Department of Computer Science and Software Engineering The Lecture outline Introduction Scan conversion Scan-line algorithm Edge coherence
More informationComputer Graphics. Chapter 4 Attributes of Graphics Primitives. Somsak Walairacht, Computer Engineering, KMITL 1
Computer Graphics Chapter 4 Attributes of Graphics Primitives Somsak Walairacht, Computer Engineering, KMITL 1 Outline OpenGL State Variables Point Attributes Line Attributes Fill-Area Attributes Scan-Line
More informationTopic #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
More informationCS184 : Foundations of Computer Graphics Professor David Forsyth Final Examination (Total: 100 marks)
CS184 : Foundations of Computer Graphics Professor David Forsyth Final Examination (Total: 100 marks) Cameras and Perspective Figure 1: A perspective view of a polyhedron on an infinite plane. Rendering
More informationOpenGL: Open Graphics Library. Introduction to OpenGL Part II. How do I render a geometric primitive? What is OpenGL
OpenGL: Open Graphics Library Introduction to OpenGL Part II CS 351-50 Graphics API ( Application Programming Interface) Software library Layer between programmer and graphics hardware (and other software
More informationNotes on Assignment. Notes on Assignment. Notes on Assignment. Notes on Assignment
Notes on Assignment Notes on Assignment Objects on screen - made of primitives Primitives are points, lines, polygons - watch vertex ordering The main object you need is a box When the MODELVIEW matrix
More informationCS Exam 1 Review Problems Fall 2017
CS 45500 Exam 1 Review Problems Fall 2017 1. What is a FrameBuffer data structure? What does it contain? What does it represent? How is it used in a graphics rendering pipeline? 2. What is a Scene data
More informationGraphics Pipeline 2D Geometric Transformations
Graphics Pipeline 2D Geometric Transformations CS 4620 Lecture 8 1 Plane projection in drawing Albrecht Dürer 2 Plane projection in drawing source unknown 3 Rasterizing triangles Summary 1 evaluation of
More informationScan Conversion- Polygons
Scan Conversion- olgons Flood Fill Algorithm Chapter 9 Scan Conversion (part ) Drawing olgons on Raster Displa Input polgon with rasterized edges = (x,) point inside Goal: Fill interior with specified
More informationThe Traditional Graphics Pipeline
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
More informationScanline Rendering 2 1/42
Scanline Rendering 2 1/42 Review 1. Set up a Camera the viewing frustum has near and far clipping planes 2. Create some Geometry made out of triangles 3. Place the geometry in the scene using Transforms
More informationComputer Graphics. Attributes of Graphics Primitives. Somsak Walairacht, Computer Engineering, KMITL 1
Computer Graphics Chapter 4 Attributes of Graphics Primitives Somsak Walairacht, Computer Engineering, KMITL 1 Outline OpenGL State Variables Point Attributes t Line Attributes Fill-Area Attributes Scan-Line
More informationVisibility: 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
More informationGraphics Hardware and Display Devices
Graphics Hardware and Display Devices CSE328 Lectures Graphics/Visualization Hardware Many graphics/visualization algorithms can be implemented efficiently and inexpensively in hardware Facilitates interactive
More information1 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
More informationComputer Graphics II
Computer Graphics II Autumn 2017-2018 Outline Visible Surface Determination Methods (contd.) 1 Visible Surface Determination Methods (contd.) Outline Visible Surface Determination Methods (contd.) 1 Visible
More informationConstant Time Queries on Uniformly Distributed Points on a Hemisphere
Constant Time Queries on Uniformly Distributed Points on a Hemisphere Mel Slater Department of Computer Science University College London, UK Abstract A set of uniformly distributed points on a hemisphere
More informationCS488 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
More informationShading Techniques Denbigh Starkey
Shading Techniques Denbigh Starkey 1. Summary of shading techniques 2 2. Lambert (flat) shading 3 3. Smooth shading and vertex normals 4 4. Gouraud shading 6 5. Phong shading 8 6. Why do Gouraud and Phong
More informationRASTERIZING 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
More informationCS 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
More informationLecture 4. Viewing, Projection and Viewport Transformations
Notes on Assignment Notes on Assignment Hw2 is dependent on hw1 so hw1 and hw2 will be graded together i.e. You have time to finish both by next monday 11:59p Email list issues - please cc: elif@cs.nyu.edu
More informationPipeline and Rasterization. COMP770 Fall 2011
Pipeline and Rasterization COMP770 Fall 2011 1 The graphics pipeline The standard approach to object-order graphics Many versions exist software, e.g. Pixar s REYES architecture many options for quality
More informationBasic Combinatorics. Math 40210, Section 01 Fall Homework 4 Solutions
Basic Combinatorics Math 40210, Section 01 Fall 2012 Homework 4 Solutions 1.4.2 2: One possible implementation: Start with abcgfjiea From edge cd build, using previously unmarked edges: cdhlponminjkghc
More information(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
More informationVisible Surface Detection. (Chapt. 15 in FVD, Chapt. 13 in Hearn & Baker)
Visible Surface Detection (Chapt. 15 in FVD, Chapt. 13 in Hearn & Baker) 1 Given a set of 3D objects and a viewing specifications, determine which lines or surfaces of the objects should be visible. A
More informationGame Architecture. 2/19/16: Rasterization
Game Architecture 2/19/16: Rasterization Viewing To render a scene, need to know Where am I and What am I looking at The view transform is the matrix that does this Maps a standard view space into world
More informationAn angle that has a measure less than a right angle.
Unit 1 Study Strategies: Two-Dimensional Figures Lesson Vocab Word Definition Example Formed by two rays or line segments that have the same 1 Angle endpoint. The shared endpoint is called the vertex.
More informationComputing Visibility. Backface Culling for General Visibility. One More Trick with Planes. BSP Trees Ray Casting Depth Buffering Quiz
Computing Visibility BSP Trees Ray Casting Depth Buffering Quiz Power of Plane Equations We ve gotten a lot of mileage out of one simple equation. Basis for D outcode-clipping Basis for plane-at-a-time
More informationHidden 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
More informationSurface shading: lights and rasterization. Computer Graphics CSE 167 Lecture 6
Surface shading: lights and rasterization Computer Graphics CSE 167 Lecture 6 CSE 167: Computer Graphics Surface shading Materials Lights Rasterization 2 Scene data Rendering pipeline Modeling and viewing
More informationMore on Coordinate Systems. Coordinate Systems (3) Coordinate Systems (2) Coordinate Systems (5) Coordinate Systems (4) 9/15/2011
Computer Graphics using OpenGL, Chapter 3 Additional Drawing Tools More on Coordinate Systems We have been using the coordinate system of the screen window (in pixels). The range is from 0 (left) to some
More informationRasterization. CS4620/5620: Lecture 12. Announcements. Turn in HW 1. PPA 1 out. Friday lecture. History of graphics PPA 1 in 4621.
CS4620/5620: Lecture 12 Rasterization 1 Announcements Turn in HW 1 PPA 1 out Friday lecture History of graphics PPA 1 in 4621 2 The graphics pipeline The standard approach to object-order graphics Many
More informationPipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11
Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION
More informationCould you make the XNA functions yourself?
1 Could you make the XNA functions yourself? For the second and especially the third assignment, you need to globally understand what s going on inside the graphics hardware. You will write shaders, which
More informationDiscrete Techniques. 11 th Week, Define a buffer by its spatial resolution (n m) and its depth (or precision) k, the number of
Discrete Techniques 11 th Week, 2010 Buffer Define a buffer by its spatial resolution (n m) and its depth (or precision) k, the number of bits/pixel Pixel OpenGL Frame Buffer OpenGL Buffers Color buffers
More informationBuffers, Textures, Compositing, and Blending. Overview. Buffers. David Carr Virtual Environments, Fundamentals Spring 2005 Based on Slides by E.
INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Buffers, Textures, Compositing, and Blending David Carr Virtual Environments, Fundamentals Spring 2005 Based on Slides by E. Angel Compositing,
More informationRasterization. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 16
Rasterization CS 4620 Lecture 16 1 Announcements A3 due on Thu Will send mail about grading once finalized 2 Pipeline overview you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX
More informationHidden-Surface Removal.
Hidden-Surface emoval. Here we need to discover whether an object is visible or another one obscures it. here are two fundamental approaches to remove the hidden surfaces: ) he object-space approach )
More informationThe Traditional Graphics Pipeline
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
More informationCS 112 The Rendering Pipeline. Slide 1
CS 112 The Rendering Pipeline Slide 1 Rendering Pipeline n Input 3D Object/Scene Representation n Output An image of the input object/scene n Stages (for POLYGON pipeline) n Model view Transformation n
More informationPipeline Operations. CS 4620 Lecture 14
Pipeline Operations CS 4620 Lecture 14 2014 Steve Marschner 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives
More informationScalar Field Visualization. Some slices used by Prof. Mike Bailey
Scalar Field Visualization Some slices used by Prof. Mike Bailey Scalar Fields The approximation of certain scalar function in space f(x,y,z). Most of time, they come in as some scalar values defined on
More informationThe graphics pipeline. Pipeline and Rasterization. Primitives. Pipeline
The graphics pipeline Pipeline and Rasterization CS4620 Lecture 9 The standard approach to object-order graphics Many versions exist software, e.g. Pixar s REYES architecture many options for quality and
More informationThe Traditional Graphics Pipeline
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
More informationLast class. A vertex (w x, w y, w z, w) - clipping is in the - windowing and viewport normalized view volume if: - scan conversion/ rasterization
Lecture 6 Last class Last lecture (clip coordinates): A vertex (w x, w y, w z, w) - clipping is in the - windowing and viewport normalized view volume if: - scan conversion/ rasterization normalized view
More informationScalar Field Visualization I
Scalar Field Visualization I What is a Scalar Field? The approximation of certain scalar function in space f(x,y,z). Image source: blimpyb.com f What is a Scalar Field? The approximation of certain scalar
More informationIncremental 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
More informationEXAMINATIONS 2016 TRIMESTER 2
EXAMINATIONS 2016 TRIMESTER 2 CGRA 151 INTRODUCTION TO COMPUTER GRAPHICS Time Allowed: TWO HOURS CLOSED BOOK Permitted materials: Silent non-programmable calculators or silent programmable calculators
More informationCOMP 175 COMPUTER GRAPHICS. Ray Casting. COMP 175: Computer Graphics April 26, Erik Anderson 09 Ray Casting
Ray Casting COMP 175: Computer Graphics April 26, 2018 1/41 Admin } Assignment 4 posted } Picking new partners today for rest of the assignments } Demo in the works } Mac demo may require a new dylib I
More informationSlide 1 / 96. Linear Relations and Functions
Slide 1 / 96 Linear Relations and Functions Slide 2 / 96 Scatter Plots Table of Contents Step, Absolute Value, Piecewise, Identity, and Constant Functions Graphing Inequalities Slide 3 / 96 Scatter Plots
More informationRasterization. MIT EECS Frédo Durand and Barb Cutler. MIT EECS 6.837, Cutler and Durand 1
Rasterization MIT EECS 6.837 Frédo Durand and Barb Cutler MIT EECS 6.837, Cutler and Durand 1 Final projects Rest of semester Weekly meetings with TAs Office hours on appointment This week, with TAs Refine
More informationRasterization and Graphics Hardware. Not just about fancy 3D! Rendering/Rasterization. The simplest case: Points. When do we care?
Where does a picture come from? Rasterization and Graphics Hardware CS559 Course Notes Not for Projection November 2007, Mike Gleicher Result: image (raster) Input 2D/3D model of the world Rendering term
More informationReading. 18. Projections and Z-buffers. Required: Watt, Section , 6.3, 6.6 (esp. intro and subsections 1, 4, and 8 10), Further reading:
Reading Required: Watt, Section 5.2.2 5.2.4, 6.3, 6.6 (esp. intro and subsections 1, 4, and 8 10), Further reading: 18. Projections and Z-buffers Foley, et al, Chapter 5.6 and Chapter 6 David F. Rogers
More informationToday. Rendering pipeline. Rendering pipeline. Object vs. Image order. Rendering engine Rendering engine (jtrt) Computergrafik. Rendering pipeline
Computergrafik Today Rendering pipeline s View volumes, clipping Viewport Matthias Zwicker Universität Bern Herbst 2008 Rendering pipeline Rendering pipeline Hardware & software that draws 3D scenes on
More informationRasterization. CS4620 Lecture 13
Rasterization CS4620 Lecture 13 2014 Steve Marschner 1 The graphics pipeline The standard approach to object-order graphics Many versions exist software, e.g. Pixar s REYES architecture many options for
More informationMidterm 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
More informationCSE 167: Introduction to Computer Graphics Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015
CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 2 due tomorrow at 2pm Grading window
More informationPrime Time (Factors and Multiples)
CONFIDENCE LEVEL: Prime Time Knowledge Map for 6 th Grade Math Prime Time (Factors and Multiples). A factor is a whole numbers that is multiplied by another whole number to get a product. (Ex: x 5 = ;
More informationCS451Real-time Rendering Pipeline
1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does
More informationComputer Graphics Fundamentals. Jon Macey
Computer Graphics Fundamentals Jon Macey jmacey@bournemouth.ac.uk http://nccastaff.bournemouth.ac.uk/jmacey/ 1 1 What is CG Fundamentals Looking at how Images (and Animations) are actually produced in
More informationRendering Objects. Need to transform all geometry then
Intro to OpenGL Rendering Objects Object has internal geometry (Model) Object relative to other objects (World) Object relative to camera (View) Object relative to screen (Projection) Need to transform
More informationPolygon Partitioning. Lecture03
1 Polygon Partitioning Lecture03 2 History of Triangulation Algorithms 3 Outline Monotone polygon Triangulation of monotone polygon Trapezoidal decomposition Decomposition in monotone mountain Convex decomposition
More informationReading on the Accumulation Buffer: Motion Blur, Anti-Aliasing, and Depth of Field
Reading on the Accumulation Buffer: Motion Blur, Anti-Aliasing, and Depth of Field 1 The Accumulation Buffer There are a number of effects that can be achieved if you can draw a scene more than once. You
More informationFondamenti di Grafica 3D The Rasterization Pipeline.
Fondamenti di Grafica 3D The Rasterization Pipeline paolo.cignoni@isti.cnr.it http://vcg.isti.cnr.it/~cignoni Ray Casting vs. GPUs for Triangles Ray Casting For each pixel (ray) For each triangle Does
More informationAccepting that the simple base case of a sp graph is that of Figure 3.1.a we can recursively define our term:
Chapter 3 Series Parallel Digraphs Introduction In this chapter we examine series-parallel digraphs which are a common type of graph. They have a significant use in several applications that make them
More informationCSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling
CSE 167: Introduction to Computer Graphics Lecture #10: View Frustum Culling Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015 Announcements Project 4 due tomorrow Project
More informationHomework #2 and #3 Due Friday, October 12 th and Friday, October 19 th
Homework #2 and #3 Due Friday, October 12 th and Friday, October 19 th 1. a. Show that the following sequences commute: i. A rotation and a uniform scaling ii. Two rotations about the same axis iii. Two
More informationStudent Outcomes. Lesson Notes. Classwork. Opening Exercise (3 minutes)
Student Outcomes Students solve problems related to the distance between points that lie on the same horizontal or vertical line Students use the coordinate plane to graph points, line segments and geometric
More informationUnit 1, Lesson 1: Moving in the Plane
Unit 1, Lesson 1: Moving in the Plane Let s describe ways figures can move in the plane. 1.1: Which One Doesn t Belong: Diagrams Which one doesn t belong? 1.2: Triangle Square Dance m.openup.org/1/8-1-1-2
More informationChapter - 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
More informationShadows in the graphics pipeline
Shadows in the graphics pipeline Steve Marschner Cornell University CS 569 Spring 2008, 19 February There are a number of visual cues that help let the viewer know about the 3D relationships between objects
More informationLet s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render
1 There are two major classes of algorithms for extracting most kinds of lines from 3D meshes. First, there are image-space algorithms that render something (such as a depth map or cosine-shaded model),
More informationVolume Shadows Tutorial Nuclear / the Lab
Volume Shadows Tutorial Nuclear / the Lab Introduction As you probably know the most popular rendering technique, when speed is more important than quality (i.e. realtime rendering), is polygon rasterization.
More information