SUMMARY. CS380: Introduction to Computer Graphics Varying Variables Chapter 13. Min H. Kim KAIST School of Computing 18/04/26.
|
|
- Rodger Ryan
- 5 years ago
- Views:
Transcription
1 CS380: Introduction to Computer Graphics Varying Variables Chapter 3 Min H. Kim KAIST School of Computing Rasterization SUMMARY 2
2 Path from vertex to pixel 3 Clipping coordinates Eye coordinates (projected) à clip coordinates à normalized device coordinates (NDCs) (reminder) Dividing clip coordinates (x c, y c,z c,w c ) by the w c (w c = ) component (the fourth component in the homogeneous coordinates) yields normalized device coordinates (NDCs). x n y n z n w n w n = x c y c z c w c s x 0 c x 0 0 s y c y 0 = f + n fn f n f n x e y e z e 4 2
3 Viewport matrix We need a transform that maps the lower left corner to [ 0.5, 0.5] t and upper right corner to [W 0.5, H 0.5] t The appropriate scale and shift can be done using the viewport matrix: x w y w z w W / (W ) / 2 = 0 H / 2 0 (H ) / / 2 / x n y n z n 5 Texture Viewport The abstract domain for textures is not the canonical square, but instead is the unit square. In this case the coordinate transformation matrix is: x w y w = W 0 0 / 2 0 H 0 / x t y t 6 3
4 Chapter 3 and Appendix B VARYING VARIABLES 7 Interpolation of varying variables In between the vertex and fragment shader, we need to interpolate the values of the varying variables. What is the desired interpolant, and how should we compute it. This is surprisingly subtle. 8 4
5 Texture mapping 9 Wrong representation of texture When texture coordinates (x t, y t ) are linearly interpolated in window coordinates, an incorrect image results. 0 5
6 Correct representation of texture How can we interpolate texture coordinates (x t, y t ) properly like this? Motivation: texture coordinates Let us map a square checkerboard image onto a quad We break up the quad and the image each into two triangles. We will associate [x t, y t ] t texture coordinates for each vertex. We desire that in the interior of a triangle, [x t, y t ] t should be determined as the unique interpolant functions over the triangle that are affine in (x o, y o,z o ) 2 6
7 Motivation: texture coordinates Even steps on the geometry should be even steps in the texture. If we use this interpolation and fetch the texture values, we should get an expected foreshortening effect. 3 Linear interpolation Suppose we simply used linear interpolation on the x t and y t functions on texture. Then, as we move by some fixed 2D vector displacement on the screen, the texture coordinates will be updated by some fixed 2D vector displacement in texture coordinates. In this case, all of the squares of the texture will map to equal size parallelograms. We will get an odd seam where the two triangles meet. 4 7
8 Affine functions in 2D We say a function v( ) is an affine function in the variables x and y if it is of the form: v(x, y)= ax +by +c for some constants a,b and c This can also be written as: x v = a b c y 5 Affine functions in 2D Also called linear but note the additive constant term. An affine function can be evaluated by plugging in x, y or by incremental evaluation along a line in x, y space. We already saw for example that z n is an affine function of x n, y n and so was a 3D edge function : z n = ax n + by n + c 6 8
9 Affine/linear interpolation in 2D v i If we are given, the values of v for three (non-collinear) points in the (x, y) 2D plane, say the vertices of a triangle, This determines an affine function v entire plane. x over the x2 v i x3 7 Affine/linear interpolation in 2D In this case, we say that v is the linear interpolant of the values at the three vertices. The process of evaluating the linear interpolant of three vertices is called linear interpolation. v i Given the one can use some simple matrix operations to solve for the constants [a,b,c]. x x2 v i x3 8 9
10 How do you interpolate values defined at vertices across the entire triangle? D Interpolation How do you interpolate values defined at vertices across the entire triangle? Solve a simpler problem first: x x 2 0
11 D Interpolation How do you interpolate values defined at vertices across the entire triangle? Solve a simpler problem first: 0 x t x 2 Want to define a value for every t [0,] 0 t D Interpolation How do we come up with this equation? Look at the picture! t
12 D Interpolation t The further t is from the red point, the more blue we want. D Interpolation t The further t is from the red point, the more blue we want. The further t is from the blue point, the more red we want. 2
13 D Interpolation t The further t is from the red point, the more blue we want. The further t is from the blue point, the more red we want. Percent blue = (length of blue segment)/(total length) D Interpolation t The further t is from the red point, the more blue we want. The further t is from the blue point, the more red we want. Percent blue = (length of blue segment)/(total length) Percent red = (length of red segment)/(total length) 3
14 D Interpolation t The further t is from the red point, the more blue we want. The further t is from the blue point, the more red we want. Percent blue = (length of blue segment)/(total length) Percent red = (length of red segment)/(total length) Value at t = (% blue)(value at blue) + (% red)(value at red) D Interpolation x 0 t The further t is from the red point, the more blue we want. The further t is from the blue point, the more red we want. Percent blue = t Percent red = -t Value at t = tx + (-t)x 2 x 2 4
15 2D Interpolation Now what about triangles? 2D Interpolation Now what about triangles? Just consider the geometry: x x 2 p What s the interpolated value at the point p? x 3 5
16 2D Interpolation x Last time (in D) we used ratios of lengths. x 2 p t x 3 2D Interpolation Now what about triangles? Just consider the geometry: What about ratios of areas (2D)? p 6
17 2D Interpolation Now what about triangles? Just consider the geometry: p If we color the areas carefully, the red area (for example) covers more of the triangle as p approaches the red point. 2D Interpolation Just like before: percent red = area of red triangle total area percent green = area of green triangle total area percent blue = area of blue triangle total area p 7
18 2D Interpolation p Just like before: percent red Value at p: = area of red triangle total area percent green = area of green triangle total area percent blue = area of blue triangle total area (% red)(value at red) + (% green)(value at green) + (% blue)(value at blue) 2D Interpolation Σ λ = i i Why? Look at the picture! x Just like before: percent red = percent green = A A A 2 A = λ = λ 2 barycentric coordinates percent blue = A 3 A = λ 3 x 2 A 3 A p A 2 Value at p: (A x + A x + A x )/A x 3 barycentric interpolation a.k.a. convex combination a.k.a. affine linear extension Now convert this to a bunch of ugly symbols if you want... just don t think about it that way! 8
19 Affine functions in 3D We say a function v is affine in variable x, y and z if it is of the form: v(x, y,z)= ax +by +cz +d Such a function can be uniquely determined by its values at the four vertices of a tetrahedron sitting in 3D. 37 Triangles in 3D Given a triangle in 3D, suppose we specify the value of a function at its three vertices. There may be many functions that are affine in (x, y,z) that agree with these three values. But all of these functions will agree when restricted to the plane of the triangle in 2D. As such, we can refer to this restricted function over the triangle as the linear interplant of the vertex values. 38 9
20 Interpolating colors of an object When we associate colors with vertices, it is natural to interpret our desired color field to be the unique interpolating function over the triangle that is affine in the object coordinates, (x o, y o,z o ), not in screen coordinates! During texture mapping, it is natural to interpret each of the texture coordinates, (x t, y t ), as the unique interpolating functions over the triangle that affine in (x o, y o,z o ). 39 Interpolating colors of an object As a rather self referential example, we can even think of each of the three object coordinates of a point on some triangle in 3D as affine functions in (x o, y o,z o ). For example, v(x o, y o,z o )= x o (when a = and b = c = d =0) For this reason, the default semantics of OpenGL is to interpolate all varying variables as functions over triangles that are affine in (x o, y o,z o )
21 Interpolating colors of an object As we will see, this is equivalent to a function being affine over eye coordinates, (x e, y e,z e ), but it is not equivalent to a function being affine over normalized device coordinates, (x n, y n,z n ), or window coordinates. 4 Going down If we have a function v that is affine in (x, y,z) when restricted to a triangle in 3D, Then we can use the fact that the triangle is flat to write v as a function that is affine in only two variables. Idea: write z as an affine function of (x, y) plug this into the affine expression for v. z = ex + fy + g v = ax +by +c(ex + fy + g)+d v = hx +iy + j 42 2
22 Going sideways Suppose we have some matrix expression of the form: x' x y' y z' w' = M for some 4-by-4 matrix M (where M does not even have to be an affine matrix). Then, just looking at the four rows independently, we see that x', y',z', and w' are all affine functions of (x, y,z). z 43 More sideways If we have a function v which is affine in (x, y,z), then, given the relation of the previous equation, we can see that v is also affine (x', y',z',w'). To see this, note that: v = a b c d v = a b c d x y z x' M y' z' w' x' y' z' w' = M x y z 44 22
23 More sideways v = e f g h x' y' z' w' So the property of affine-ness is in agreement between object or eye or clip coordinates, and also between normalized and window coordinates. 45 Not sideways The only time we have to be careful is when division is done. For example, given the relation: x' y' z' w' = M x y z vs. x'w' y'w' z'w' w' It will generally not be the case that a function v, which was affine in (x, y,z) will be affine in (x', y',z') or (x', y',z',w'). Our varying variables are not affine in NDC or windows coordinates. = M x y z 46 23
24 How to evaluate the varying variables Recall x n y n z n = PM Inverting our matrices, this implies that at each point on the triangle, we have the relation: x o y o z o x o y o z o = M P x n y n z n 47 How to evaluate the varying variables Now suppose that v is an affine function of (x o, y o,z o ). We also make use of the obvious fact that the constant function is also affine in (x o, y o,z o ) Thus for some (a,b,c,d), we have x o v a b c d = y o z o 48 24
25 How to evaluate the varying variables And therefore: v v = = a b c d e f g h i j k l x n M y P n w n z n x n w n y n w n z n For some appropriate values e l x o y o z o = M P x n w n y n w n z n 49 How to evaluate the varying variables Now divide both sides by and we get v Conclusion: = v e f g h i j k l and normalized device coordinates. x n y n z n are affine functions of 50 25
26 How to evaluate the varying variables going sideways we deduce that are affine functions of window coordinates (x. w, y w,z w ) v going down we can conclude: and are both affine function of (x w, y w ). Meaning that we can calculate their values at each pixel, just given their values at the vertices and linear interpolation. The above derivation can now be thrown away. v and 5 VV in OpenGL Now we can see how OpenGL can perform the correct rational linear interpolation to calculate v at each pixel. The vertex shader is run on each vertex, calculating clip coordinates and varying variables for each vertex. Clipping is run on each triangle; this may create new vertices. Linear interpolation in clip coordinates space is run to determine the clip coordinates and varying variable values for each such new vertex
27 VV in OpenGL For each vertex, and for each varying variable v, OpenGL creates an internal variable v. Additionally, for each vertex OpenGL creates one internal variable. w Min H. Kim (KAIST) Foundations of 3D Computer n Graphics, S. Gortler, MIT Press, VV in OpenGL For each vertex, division is done to obtain the normalized device coordinates. x n = x c w c, y n = y c w c,z n = z c w c, 54 27
28 VV in OpenGL For each vertex, the normalized device coordinates are transformed to window coordinates. The [x w, y w ] t coordinates are used to position the triangle on the screen. 55 For every interior pixel of the triangle, linear interpolation is used to obtain the interpolated values of v z. w, (for all v) and z w At each pixel, the interpolated value is used for z-buffering
29 VV in OpenGL At each pixel, and for all varying variables, division is done on the interpolated internal variables to obtain the correct answer: v = v w / n 57 VV in OpenGL The varying variables v is passed into the fragment shader
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
More informationOverview. By end of the week:
Overview By end of the week: - Know the basics of git - Make sure we can all compile and run a C++/ OpenGL program - Understand the OpenGL rendering pipeline - Understand how matrices are used for geometric
More informationSUMMARY. CS380: Introduction to Computer Graphics Projection Chapter 10. Min H. Kim KAIST School of Computing 18/04/12. Smooth Interpolation
CS38: Introduction to Computer Graphics Projection Chapter Min H. Kim KAIST School of Computing Smooth Interpolation SUMMARY 2 Cubic Bezier Spline To evaluate the function c(t) at any value of t, we perform
More informationCS 130 Exam I. Fall 2015
S 3 Exam I Fall 25 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 informationCS 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.
More informationS U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T
S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T Copyright 2018 Sung-eui Yoon, KAIST freely available on the internet http://sglab.kaist.ac.kr/~sungeui/render
More informationSUMMARY. CS380: Introduction to Computer Graphics Texture Mapping Chapter 15. Min H. Kim KAIST School of Computing 18/05/03.
CS380: Introduction to Computer Graphics Texture Mapping Chapter 15 Min H. Kim KAIST School of Computing Materials SUMMARY 2 1 Light blob from PVC plastic Recall: Given any vector w (not necessarily of
More informationFor each question, indicate whether the statement is true or false by circling T or F, respectively.
True/False For each question, indicate whether the statement is true or false by circling T or F, respectively. 1. (T/F) Rasterization occurs before vertex transformation in the graphics pipeline. 2. (T/F)
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 information- Rasterization. Geometry. Scan Conversion. Rasterization
Computer Graphics - The graphics pipeline - Geometry Modelview Geometry Processing Lighting Perspective Clipping Scan Conversion Texturing Fragment Tests Blending Framebuffer Fragment Processing - So far,
More informationComputer Graphics Seminar
Computer Graphics Seminar MTAT.03.305 Spring 2018 Raimond Tunnel Computer Graphics Graphical illusion via the computer Displaying something meaningful (incl art) Math Computers are good at... computing.
More informationThe 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
More informationDrawing Fast The Graphics Pipeline
Drawing Fast The Graphics Pipeline CS559 Fall 2015 Lecture 9 October 1, 2015 What I was going to say last time How are the ideas we ve learned about implemented in hardware so they are fast. Important:
More information3D Viewing. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 9
3D Viewing CS 46 Lecture 9 Cornell CS46 Spring 18 Lecture 9 18 Steve Marschner 1 Viewing, backward and forward So far have used the backward approach to viewing start from pixel ask what part of scene
More informationCS 4620 Program 3: Pipeline
CS 4620 Program 3: Pipeline out: Wednesday 14 October 2009 due: Friday 30 October 2009 1 Introduction In this assignment, you will implement several types of shading in a simple software graphics pipeline.
More informationCSE328 Fundamentals of Computer Graphics
CSE328 Fundamentals of Computer Graphics Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 794--44 Tel: (63)632-845; Fax: (63)632-8334 qin@cs.sunysb.edu
More informationCS 130 Exam I. Fall 2015
CS 130 Exam I 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
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 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 informationAnnouncements. Submitting Programs Upload source and executable(s) (Windows or Mac) to digital dropbox on Blackboard
Now Playing: Vertex Processing: Viewing Coulibaly Amadou & Mariam from Dimanche a Bamako Released August 2, 2005 Rick Skarbez, Instructor COMP 575 September 27, 2007 Announcements Programming Assignment
More informationShading Triangles. Lecture 37. Robb T. Koether. Hampden-Sydney College. Mon, Nov 30, 2015
Shading Triangles Lecture 37 Robb T. Koether Hampden-Sydney College Mon, Nov 30, 2015 Robb T. Koether (Hampden-Sydney College) Shading Triangles Mon, Nov 30, 2015 1 / 35 Outline 1 Shading Triangles Barycentric
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 informationViewing and Projection
CSCI 480 Computer Graphics Lecture 5 Viewing and Projection January 25, 2012 Jernej Barbic University of Southern California Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective
More informationRendering. 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
More informationCOMP3421. Vector geometry, Clipping
COMP3421 Vector geometry, Clipping Transformations Object in model co-ordinates Transform into world co-ordinates Represent points in object as 1D Matrices Multiply by matrices to transform them Coordinate
More informationCSE528 Computer Graphics: Theory, Algorithms, and Applications
CSE528 Computer Graphics: Theory, Algorithms, and Applications Hong Qin Stony Brook University (SUNY at Stony Brook) Stony Brook, New York 11794-2424 Tel: (631)632-845; Fax: (631)632-8334 qin@cs.stonybrook.edu
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 informationwindow World space (Object space)
Lecture. D Transformations 1 Reading Required: ffl Hearn and Baker, Sections.1.,.,.1.,. Optional: ffl Foley et al., Chapter.1. ffl David F. Rogers and J. Alan Adams, Mathematical Elements for Computer
More information6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17]
6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, 2011 9:05-12pm Two hand-written sheet of notes (4 pages) allowed NAME: 1 / 17 2 / 12 3 / 35 4 / 8 5 / 18 Total / 90 1 SSD [ /17]
More informationBarycentric Coordinates and Parameterization
Barycentric Coordinates and Parameterization Center of Mass Geometric center of object Center of Mass Geometric center of object Object can be balanced on CoM How to calculate? Finding the Center of Mass
More informationRasterization. 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 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 information3.1 Viewing and Projection
Fall 2017 CSCI 420: Computer Graphics 3.1 Viewing and Projection Hao Li http://cs420.hao-li.com 1 Recall: Affine Transformations Given a point [xyz] > form homogeneous coordinates [xyz1] > The transformed
More informationModule Contact: Dr Stephen Laycock, CMP Copyright of the University of East Anglia Version 1
UNIVERSITY OF EAST ANGLIA School of Computing Sciences Main Series PG Examination 2013-14 COMPUTER GAMES DEVELOPMENT CMPSME27 Time allowed: 2 hours Answer any THREE questions. (40 marks each) Notes are
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 information3D Viewing Episode 2
3D Viewing Episode 2 1 Positioning and Orienting the Camera Recall that our projection calculations, whether orthographic or frustum/perspective, were made with the camera at (0, 0, 0) looking down the
More informationSUMMARY. CS380: Introduction to Computer Graphics Ray tracing Chapter 20. Min H. Kim KAIST School of Computing 18/05/29. Modeling
CS380: Introduction to Computer Graphics Ray tracing Chapter 20 Min H. Kim KAIST School of Computing Modeling SUMMARY 2 1 Types of coordinate function Explicit function: Line example: Implicit function:
More informationComputer Graphics with OpenGL ES (J. Han) Chapter VII Rasterizer
Chapter VII Rasterizer Rasterizer The vertex shader passes the clip-space vertices to the rasterizer, which performs the following: Clipping Perspective division Back-face culling Viewport transform Scan
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 informationViewing and Modeling
Viewing and Modeling Computer Science Department The Universit of Texas at Austin A Simplified Graphics ipeline Application Vertex batching & assembl Triangle assembl Triangle clipping NDC to window space
More informationRobust Stencil Shadow Volumes. CEDEC 2001 Tokyo, Japan
Robust Stencil Shadow Volumes CEDEC 2001 Tokyo, Japan Mark J. Kilgard Graphics Software Engineer NVIDIA Corporation 2 Games Begin to Embrace Robust Shadows 3 John Carmack s new Doom engine leads the way
More information3D Viewing Episode 2
3D Viewing Episode 2 1 Positioning and Orienting the Camera Recall that our projection calculations, whether orthographic or frustum/perspective, were made with the camera at (0, 0, 0) looking down the
More informationAdvanced Lighting Techniques Due: Monday November 2 at 10pm
CMSC 23700 Autumn 2015 Introduction to Computer Graphics Project 3 October 20, 2015 Advanced Lighting Techniques Due: Monday November 2 at 10pm 1 Introduction This assignment is the third and final part
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 information1 Affine and Projective Coordinate Notation
CS348a: Computer Graphics Handout #9 Geometric Modeling Original Handout #9 Stanford University Tuesday, 3 November 992 Original Lecture #2: 6 October 992 Topics: Coordinates and Transformations Scribe:
More informationRay-Triangle and Ray-Quadrilateral Intersections in Homogeneous Coordinates
Ray-Triangle and Ray-Quadrilateral Intersections in Homogeneous Coordinates Pat Hanrahan Geometry Computing Group Minnesota Supercomputer Center Minneapolis, MN 55415 hanrahan@princeton.edu Experience
More informationINTRODUCTION TO COMPUTER GRAPHICS. It looks like a matrix Sort of. Viewing III. Projection in Practice. Bin Sheng 10/11/ / 52
cs337 It looks like a matrix Sort of Viewing III Projection in Practice / 52 cs337 Arbitrary 3D views Now that we have familiarity with terms we can say that these view volumes/frusta can be specified
More informationThe Graphics Pipeline and OpenGL I: Transformations!
! The Graphics Pipeline and OpenGL I: Transformations! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 2! stanford.edu/class/ee267/!! Albrecht Dürer, Underweysung der Messung mit
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 informationClipping. CSC 7443: Scientific Information Visualization
Clipping Clipping to See Inside Obscuring critical information contained in a volume data Contour displays show only exterior visible surfaces Isosurfaces can hide other isosurfaces Other displays can
More information3D Geometry and Camera Calibration
3D Geometry and Camera Calibration 3D Coordinate Systems Right-handed vs. left-handed x x y z z y 2D Coordinate Systems 3D Geometry Basics y axis up vs. y axis down Origin at center vs. corner Will often
More informationHomework #1. Displays, Image Processing, Affine Transformations, Hierarchical Modeling
Computer Graphics Instructor: Brian Curless CSE 457 Spring 215 Homework #1 Displays, Image Processing, Affine Transformations, Hierarchical Modeling Assigned: Thursday, April 9 th Due: Thursday, April
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 informationCOMP3421. Introduction to 3D Graphics
COMP3421 Introduction to 3D Graphics 3D coodinates Moving to 3D is simply a matter of adding an extra dimension to our points and vectors: 3D coordinates 3D coordinate systems can be left or right handed.
More informationLast week. Machiraju/Zhang/Möller
Last week Machiraju/Zhang/Möller 1 Overview of a graphics system Output device Input devices Image formed and stored in frame buffer Machiraju/Zhang/Möller 2 Introduction to CG Torsten Möller 3 Ray tracing:
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 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 informationPractical Shadow Mapping
Practical Shadow Mapping Stefan Brabec Thomas Annen Hans-Peter Seidel Max-Planck-Institut für Informatik Saarbrücken, Germany Abstract In this paper we propose several methods that can greatly improve
More informationCS 464 Review. Review of Computer Graphics for Final Exam
CS 464 Review Review of Computer Graphics for Final Exam Goal: Draw 3D Scenes on Display Device 3D Scene Abstract Model Framebuffer Matrix of Screen Pixels In Computer Graphics: If it looks right then
More informationINTRODUCTION TO COMPUTER GRAPHICS. cs123. It looks like a matrix Sort of. Viewing III. Projection in Practice 1 / 52
It looks like a matrix Sort of Viewing III Projection in Practice 1 / 52 Arbitrary 3D views } view volumes/frusta spec d by placement and shape } Placement: } Position (a point) } look and up vectors }
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 information3D Viewing. CS 4620 Lecture 8
3D Viewing CS 46 Lecture 8 13 Steve Marschner 1 Viewing, backward and forward So far have used the backward approach to viewing start from pixel ask what part of scene projects to pixel explicitly construct
More informationGEOMETRIC TRANSFORMATIONS AND VIEWING
GEOMETRIC TRANSFORMATIONS AND VIEWING 2D and 3D 1/44 2D TRANSFORMATIONS HOMOGENIZED Transformation Scaling Rotation Translation Matrix s x s y cosθ sinθ sinθ cosθ 1 dx 1 dy These 3 transformations are
More informationViewing and Projection
CSCI 480 Computer Graphics Lecture 5 Viewing and Projection Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective Projections [Geri s Game, Pixar, 1997] January 26, 2011
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 informationgraphics 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
More informationCS 4620 Midterm, March 21, 2017
CS 460 Midterm, March 1, 017 This 90-minute exam has 4 questions worth a total of 100 points. Use the back of the pages if you need more space. Academic Integrity is expected of all students of Cornell
More informationgraphics 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
More informationCS 325 Computer Graphics
CS 325 Computer Graphics 02 / 29 / 2012 Instructor: Michael Eckmann Today s Topics Questions? Comments? Specifying arbitrary views Transforming into Canonical view volume View Volumes Assuming a rectangular
More informationCS464 Oct 3 rd Assignment 3 Due 10/6/2017 Due 10/8/2017 Implementation Outline
CS464 Oct 3 rd 2017 Assignment 3 Due 10/6/2017 Due 10/8/2017 Implementation Outline Assignment 3 Skeleton A good sequence to implement the program 1. Start with a flat terrain sitting at Y=0 and Cam at
More informationCSE 167: Introduction to Computer Graphics Lecture #5: Projection. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017
CSE 167: Introduction to Computer Graphics Lecture #5: Projection Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements Friday: homework 1 due at 2pm Upload to TritonEd
More informationRasterization Overview
Rendering Overview The process of generating an image given a virtual camera objects light sources Various techniques rasterization (topic of this course) raytracing (topic of the course Advanced Computer
More informationTexture Mapping. Texture (images) lecture 16. Texture mapping Aliasing (and anti-aliasing) Adding texture improves realism.
lecture 16 Texture mapping Aliasing (and anti-aliasing) Texture (images) Texture Mapping Q: Why do we need texture mapping? A: Because objects look fake and boring without it. Adding texture improves realism.
More informationlecture 16 Texture mapping Aliasing (and anti-aliasing)
lecture 16 Texture mapping Aliasing (and anti-aliasing) Texture (images) Texture Mapping Q: Why do we need texture mapping? A: Because objects look fake and boring without it. Adding texture improves realism.
More informationobject (say a cube) will be made up of triangles, each with three vertices, each with known object coordinates.
hello world 3d: basic approach object (say a cube) will be made up of triangles, each with three vertices, each with known object coordinates. object coordinates of vertices will be put in an OpenGL buffer
More information09 - Designing Surfaces. CSCI-GA Computer Graphics - Fall 16 - Daniele Panozzo
9 - Designing Surfaces Triangular surfaces A surface can be discretized by a collection of points and triangles Each triangle is a subset of a plane Every point on the surface can be expressed as an affine
More informationToday. Parity. General Polygons? Non-Zero Winding Rule. Winding Numbers. CS559 Lecture 11 Polygons, Transformations
CS559 Lecture Polygons, Transformations These are course notes (not used as slides) Written by Mike Gleicher, Oct. 005 With some slides adapted from the notes of Stephen Chenney Final version (after class)
More informationPerspective Projection and Texture Mapping
Lecture 7: Perspective Projection and Texture Mapping Computer Graphics CMU 15-462/15-662, Spring 2018 Perspective & Texture PREVIOUSLY: - transformation (how to manipulate primitives in space) - rasterization
More informationHomework #1. Displays, Image Processing, Affine Transformations, Hierarchical Modeling
Computer Graphics Instructor: Brian Curless CSE 457 Spring 217 Homework #1 Displays, Image Processing, Affine Transformations, Hierarchical Modeling Assigned: Friday, April 7 th Due: Thursday, April 2
More informationCS 4620 Midterm, October 23, 2018 SOLUTION
1. [20 points] Transformations CS 4620 Midterm, October 23, 2018 SOLUTION (a) Describe the action of each of the following matrices, as transformations in homogeneous coordinates, in terms of rotation,
More informationMA 323 Geometric Modelling Course Notes: Day 21 Three Dimensional Bezier Curves, Projections and Rational Bezier Curves
MA 323 Geometric Modelling Course Notes: Day 21 Three Dimensional Bezier Curves, Projections and Rational Bezier Curves David L. Finn Over the next few days, we will be looking at extensions of Bezier
More informationN-Views (1) Homographies and Projection
CS 4495 Computer Vision N-Views (1) Homographies and Projection Aaron Bobick School of Interactive Computing Administrivia PS 2: Get SDD and Normalized Correlation working for a given windows size say
More informationDrawing Fast The Graphics Pipeline
Drawing Fast The Graphics Pipeline CS559 Spring 2016 Lecture 10 February 25, 2016 1. Put a 3D primitive in the World Modeling Get triangles 2. Figure out what color it should be Do ligh/ng 3. Position
More informationThe Graphics Pipeline and OpenGL I: Transformations!
! The Graphics Pipeline and OpenGL I: Transformations! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 2! stanford.edu/class/ee267/!! Logistics Update! all homework submissions:
More informationGeometry. Prof. George Wolberg Dept. of Computer Science City College of New York
Geometry Prof. George Wolberg Dept. of Computer Science City College of New York Objectives Introduce the elements of geometry -Scalars - Vectors - Points Develop mathematical operations among them in
More informationCS770/870 Fall 2015 Advanced GLSL
Expanded Graphics Pipeline CS770/870 Fall 2015 Advanced GLSL Geometry definition Shaders can actually be inserted in more places in pipeline Vertex and fragment shaders are most important Vertex shader
More informationLecture 2. Shaders, GLSL and GPGPU
Lecture 2 Shaders, GLSL and GPGPU Is it interesting to do GPU computing with graphics APIs today? Lecture overview Why care about shaders for computing? Shaders for graphics GLSL Computing with shaders
More informationRay Tracing Basics I. Computer Graphics as Virtual Photography. camera (captures light) real scene. photo. Photographic print. Photography: processing
Ray Tracing Basics I Computer Graphics as Virtual Photography Photography: real scene camera (captures light) photo processing Photographic print processing Computer Graphics: 3D models camera model (focuses
More informationBasics of Computational Geometry
Basics of Computational Geometry Nadeem Mohsin October 12, 2013 1 Contents This handout covers the basic concepts of computational geometry. Rather than exhaustively covering all the algorithms, it deals
More informationDrawing Fast The Graphics Pipeline
Drawing Fast The Graphics Pipeline CS559 Fall 2016 Lectures 10 & 11 October 10th & 12th, 2016 1. Put a 3D primitive in the World Modeling 2. Figure out what color it should be 3. Position relative to the
More informationCSC 305 The Graphics Pipeline-1
C. O. P. d y! "#"" (-1, -1) (1, 1) x z CSC 305 The Graphics Pipeline-1 by Brian Wyvill The University of Victoria Graphics Group Perspective Viewing Transformation l l l Tools for creating and manipulating
More informationIntroduction to Homogeneous coordinates
Last class we considered smooth translations and rotations of the camera coordinate system and the resulting motions of points in the image projection plane. These two transformations were expressed mathematically
More informationLecture 3 Sections 2.2, 4.4. Mon, Aug 31, 2009
Model s Lecture 3 Sections 2.2, 4.4 World s Eye s Clip s s s Window s Hampden-Sydney College Mon, Aug 31, 2009 Outline Model s World s Eye s Clip s s s Window s 1 2 3 Model s World s Eye s Clip s s s Window
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 informationS U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T
S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T Copyright 2018 Sung-eui Yoon, KAIST freely available on the internet http://sglab.kaist.ac.kr/~sungeui/render
More informationLast week. Machiraju/Zhang/Möller/Fuhrmann
Last week Machiraju/Zhang/Möller/Fuhrmann 1 Geometry basics Scalar, point, and vector Vector space and affine space Basic point and vector operations Sided-ness test Lines, planes, and triangles Linear
More informationViewing and Projection
15-462 Computer Graphics I Lecture 5 Viewing and Projection Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective Projections [Angel, Ch. 5.2-5.4] January 30, 2003 [Red
More informationHomogeneous Coordinates and Transformations of the Plane
2 Homogeneous Coordinates and Transformations of the Plane 2. Introduction In Chapter planar objects were manipulated by applying one or more transformations. Section.7 identified the problem that the
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 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 information