Viewing and Modeling
|
|
- Janis Daniels
- 5 years ago
- Views:
Transcription
1 Viewing and Modeling Computer Science Department The Universit of Texas at Austin
2 A Simplified Graphics ipeline Application Vertex batching & assembl Triangle assembl Triangle clipping NDC to window space Triangle rasterization Fragment shading Depth testing Depth buffer Color update Framebuffer
3 A few more steps expanded Application Vertex batching & assembl Vertex transformation Lighting Texture coordinate generation Triangle assembl User defined clipping Back face culling View frustum clipping NDC to window space Triangle rasterization Fragment shading erspective divide Depth testing Depth buffer Color update Framebuffer
4 Conceptual Vertex Transformation glvertex* AI commands object-space coordinates (x o, o,z o,w o ) Modelview matrix ee-space coordinates (x e, e,z e,w e ) (x e, e,z e,w e ) User-defined clip planes clipped ee-space coordinates (x e, e,z e,w e ) rojection matrix clip-space coordinates (x c, c,z c,w c ) View-frustum clip planes clipped clip-space coordinates (x c, c,z c,w c ) erspective division normalized device coordinates (NDC) (x n, n,z n,/w c ) Viewport + Depth Range transformation window-space coordinates (x w, w,z w,/w c ) to primitive rasterization
5 ipeline View modelview transformation nonsingular projection transformation clipping homogeneous for perspective perspective division 4D 3D projection 3D 2D
6 Computer Viewing There are three aspects of the viewing process, all of which are implemented in the pipeline, ositioning the camera Setting the model-view matrix Selecting a lens Setting the projection matrix Clipping Setting the view volume
7 The World and Camera Frames When we work with representations, we work with n- tuples or arras of scalars Changes in frame are then defined b 4 x 4 matrices In OpenGL, the base frame that we start with is the world frame Eventuall we represent entities in the camera frame b changing the world representation using the model-view matrix Initiall these frames are the same (M=I)
8 Vertex Transformation Object-space vertex position transformed b a general linear projective transformation Expressed as a 4x4 matrix = o o o o c c c c w z x m m m m m m m m m m m m m m m m w z x
9 The OpenGL Camera In OpenGL, initiall the object and camera frames are the same Default model-view matrix is an identit The camera is located at origin and points in the negative z direction OpenGL also specifies a default view volume that is a cube with sides of length 2 centered at the origin Default projection matrix is an identit
10 Moving the Camera If objects are on both sides of z=, we must move camera frame!!!! " # $ $ $ $ % & d M =
11 Moving the Camera Frame If we want to visualize object with both positive and negative z values we can either Move the camera in the positive z direction Translate the camera frame Move the objects in the negative z direction Translate the world frame Both of these views are equivalent and are determined b the model-view matrix Want a translation (gltranslatef(.,.,-d);) d >
12 Translate Transform rototpe gltranslatef(glfloat x, GLfloat, GLfloat z) ost-concatenates this matrix z x
13 gltranslatef Matrix Modelview specification glloadidentit(); gltranslatef(,,-4) x translate=, translate=, z translate=-4 oint at (,,) would move to (,,-4) Down the negative Z axis Matrix 4 = z x the translation vector
14 General Camera Motion We can position the camera anwhere b a sequence of rotations and translations Example: side view Move camera to the origin Rotate the camera Model-view matrix C = RT
15 OpenGL code Remember that last transformation specified is first to be applied glmatrixmode(gl_modelview) glloadidentit(); glrotatef(9.,.,.,.); gltranslatef(.,., -d);
16 A Better Viewing Matrix rimar OpenGL libraries Look at Transform Link with lglut for GLUT Concept Link with lglu for GLU Given the following Link with lgl for OpenGL a 3D world-space ee position a 3D world-space center of view position (looking at ), and an 3D world-space up vector Then an affine (non-projective) 4x4 matrix can be constructed For a view transform mapping world-space to ee-space A read implementation The OpenGL Utilit librar (GLU) provides it glulookat(gldouble eex, GLdouble ee, GLdouble eez, GLdouble atx, GLdouble atz, GLdouble atz, GLdouble upx, GLdouble up, GLdouble upz);
17 glulookat glulookat(eex, ee, eez, atx, at, atz, upx, up, upz)
18 Look At in ractice Consider our prior view situation Instead of an arbitrar view we just translated b 4 in negative Z direction gltranslatef(,,4) What this means in Look At parameters (eex,ee,eez) = (,,4) (atx,at,atz) = (,,) (upx,up,upz) = (,,) Not surprising both are just translates in Z since the Look At parameters alread have use looking down the negative Z axis gltranslatef(,,-4) 4 Same matrix; same transform glulookat(,,4,,,,,,) 4
19 The Look At Algorithm Vector math Z = ee at Z = normalize(z) /* normalize means Z / length(z) */ Y = up X = Y Z /* means vector cross product! */ Y = Z X /* orthgonalize */ X = normalize(x) Y = normalize(y) Then build the following affine 4x4 matrix X x Yx Z x X Y Z X Y Z z z z X ee Y ee Z ee Warning: Algorithm is prone to failure if normalize divides b zero (or ver nearl does) So. Don t let Z or up be zero length vectors 2. Don t let Z and up be coincident vectors
20 Look At Examples glulookat(,,4,,,,,,); // ee (x,,z) // at (x,,z) // up (x,,z) Same as the gltranslatef(,,-4) as expected glulookat(,2.5,,,,,,,); // ee (x,,z) // at (x,,z) // up (x,,z) Similar to original, but just a little off angle due to slightl perturbed ee vector
21 Look At Major Ee Changes glulookat(-2.5,,,,,,,,); Ee is above the scene // ee (x,,z) // at (x,,z) // up (x,,z) glulookat(-2.5,-,,,,,,,); Ee is below the scene // ee (x,,z) // at (x,,z) // up (x,,z)
22 Look At Changes to AT and U glulookat(,,4, 2,-3,,,,); // ee (x,,z) // at (x,,z) // up (x,,z) Original ee position, but at position shifted glulookat(,,4,,,,,,); Ee is below the scene // ee (x,,z) // at (x,,z) // up (x,,z)
23 The LookAt Function The GLU librar contains the function glulookat to form the required modelview matrix through a simple interface Note the need for setting an up direction Still need to initialize Can concatenate with modeling transformations Example: isometric view of cube aligned with axes glmatrixmode(gl_modelview): glloadidentit(); glulookat(.,.,.,.,.,.,.,...);
24 Other Viewing AIs The LookAt function is onl one possible AI for positioning the camera Others include View reference point, view plane normal, view up (HIGS, GKS-3D) Yaw, pitch, roll Elevation, azimuth, twist Direction angles
25 Two Transforms in Sequence OpenGL thinks of the projective transform as reall two 4x4 matrix transforms FIRST object-space to ee-space x z w e e e e = x z w o o o o 6 Multipl-Add operations SECOND ee-space to clip-space x z w c c c c = x z w e e e e Another 6 Multipl-Add operations
26 Modelview-rojection Transform Matrixes can associate (combine) Combination of the modelview and projection matrix = modelview-projection matrix or often simpl the matrix = 2 3 Matrix multiplication is associative (but not commutative) A(BC) = (AB)C, but ABC CBA concatenation is 64 Multipl-Add operations, done b OpenGL driver
27 Specifing the Transforms Specified in two parts First the projection glmatrixmode(gl_rojection); glloadidentit(); glfrustum(-4, +4, // left & right -3, +3, // top & bottom 5, 8); // near & far Second the model-view glmatrixmode(gl_modelview); glloadidentit(); gltranslatef(,, -4); So objects centered at (,,) would be at (,,-4) in ee-space Resulting projection matrix Resulting modelview matrix
28 Modelview-rojection Matrix Transform composition via matrix multiplication = Resulting modelview-projection matrix
29 Now Draw Some Objects Draw a wireframe cube glcolor3f(,,); // red glutwirecube(6); 6x6x6 unit cube centered at origin (,,) Draw a teapot in the cube glcolor3f(,,); // blue glutsolidteapot(2.); centered at the origin (,,) handle and spout point down the X axis top and bottom in the Y axis As we d expect given a frustum transform, the cube is in perspective The teapot is too but more obvious to observe with a wireframe cube
30 What We ve Accomplished Simple perspective With glfrustum Establishes how ee-space maps to clip-space Simple viewing With gltranslatef Establishes how world-space maps to ee-space (,,4) (,,) All we reall did was wheel the camera 4 units up the Z axis No actual modeling transforms, just viewing Modeling would be rotating, scaling, or otherwise transform the objects with the view Arguabl the modelview matrix is reall just a view matrix in this example
31 Some Simple Modeling Tr some modeling transforms to move teapot But leave the cube alone for reference glushmatrix(); { gltranslatef(.5, -.5, ); glutsolidteapot(2.); } glopmatrix(); glushmatrix(); { glscalef(.5,.,.5); glutsolidteapot(2.); } glopmatrix(); glushmatrix(); { glrotatef(3,,,); glutsolidteapot(2.); } glopmatrix(); We bracket the modeling transform with glushmatrix/glopmatrix commands so the modeling transforms are localized to the particular object
32 Add Some Lighting Some lighting makes the modeling more intuitive glushmatrix(); { gltranslatef(.5, -.5, ); glutsolidteapot(2.); } glopmatrix(); glushmatrix(); { glscalef(.5,.,.5); glutsolidteapot(2.); } glopmatrix(); glushmatrix(); { glrotatef(3,,,); glutsolidteapot(2.); } glopmatrix(); We ve not discussed lighting et but per-vertex lighting allows a virtual light source to interact with the object s surface orientation and material properties
33 Modelview-rojection Matrix Let s consider the combined modelview matrix with the rotation glrotate(3,,,) defines a rotation matrix Rotating 3 degrees around an axis in the (,,) direction projection view model
34 Combining All Three Matrix-b-matrix multiplication is associative so VM = (V M) = ( V) M OpenGL keeps V and M together because ee-space is a convenient space for lighting " $ $ $ $ # " $ $ $ $ # 4 view % " ' $ ' $ ' $ ' $ & # % " ' $ ' $ ' $ ' $ & # model % ' ' ' ' & % ' ' ' ' & projection " $ $ $ $ # modelview-projection modelview % ' ' ' ' &
35 Object- to Clip-space = object object object object world world world world w z x w z x = world world world world ee ee ee ee w z x w z x 4 = ee ee ee ee clip clip clip clip w z x w z x = object object object object clip clip clip clip w z x w z x = object object object object ee ee ee ee w z x w z x = ee ee ee ee clip clip clip clip w z x w z x object-to-world-to-ee-to-clip object-to-ee-to-clip object-to-clip modelview projection projection modelview-projection model view
36 Complex Scene Example Each character, wall, ceiling, floor, and light have their own modeling transformation Universit of Texas at Austin CS354 - Computer Graphics
37 Representing Objects Interested in object s boundar Various approaches rocedural representations Often fractal Sierpinski gasket Fractal tree [hilip Winston] Explicit polgon (triangle) meshes B far, the most popular method Curved surface patches Often displacement mapped Implicit representation Blobb, volumetric Quake 2 ke frame triangle meshes Utah Teapot Blobb modeling in RenderMan
38 Focus on Triangle Meshes Easiest approach to representing object boundaries So what is a mesh and how should it be stored? Simplest view A set of triangles, each with its own 3 vertices Essentiall triangle soup Yet triangles in meshes share edges b design Sharing edges implies sharing vertices More sophisticated view Store single set of unique vertexes in arra Then each primitive (triangle) specifies 3 indices into arra of vertexes More compact Vertex data size >> index size Avoids redundant vertex data Separates topolog (how the mesh is connected) from its geometr (vertex positions and attributes) Connectivit can be deduced more easil Makes mesh processing algorithms easier Geometr data can change without altering the topolog
39 Consider a Tetrahedron Simplest closed volume Consists of 4 triangles and 4 vertices (and 4 edges) (x2,2,z2) v2 v3 (x3,3,z3) v (x,,z) v (x,,z) triangle list : v,v,v2 : v,v3,v2 2: v3,v,v2 3: v,v,v3 topolog vertex list : (x,,z) : (x,,z) 2: (x2,2,z2) 3: (x3,3,z3) geometr potentiall on-gu!
40 Benefits of Vertex Arra Approach Unique vertices are stored once Saves memor On CU, on disk, and on GU Matches OpenGL vertex arra model of operation And this matches the efficient GU mode of operation The GU can cache post-transformed vertex results b vertex index Saves retransformation and redundant vertex fetching Direct3D has the same model Allows vertex data to be stored on-gu for even faster vertex processing OpenGL supported vertex buffer objects for this
41 Next Lecture More about triangle mesh representation Scene graphs
CS354 Computer Graphics Viewing and Modeling
Slide Credit: Donald S. Fussell CS354 Computer Graphics Viewing and Modeling Qixing Huang February 21th 2018 Computer Viewing There are three aspects of the viewing process, all of which are implemented
More informationComputer Viewing Computer Graphics I, Fall 2008
Computer Viewing 1 Objectives Introduce mathematics of projection Introduce OpenGL viewing functions Look at alternate viewing APIs 2 Computer Viewing Three aspects of viewing process All implemented in
More information3D Viewing. With acknowledge to: Ed Angel. Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico
3D Viewing With acknowledge to: Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico 1 Classical Viewing Viewing plane projectors Classical
More informationOverview. Viewing and perspectives. Planar Geometric Projections. Classical Viewing. Classical views Computer viewing Perspective normalization
Overview Viewing and perspectives Classical views Computer viewing Perspective normalization Classical Viewing Viewing requires three basic elements One or more objects A viewer with a projection surface
More informationThree-Dimensional Graphics III. Guoying Zhao 1 / 67
Computer Graphics Three-Dimensional Graphics III Guoying Zhao 1 / 67 Classical Viewing Guoying Zhao 2 / 67 Objectives Introduce the classical views Compare and contrast image formation by computer with
More informationComputer Viewing. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science
Computer Viewing CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science 1 Objectives Introduce the mathematics of projection Introduce OpenGL viewing functions Look at
More informationAnnouncement. Project 1 has been posted online and in dropbox. Due: 11:59:59 pm, Friday, October 14
Announcement Project 1 has been posted online and in dropbox Due: 11:59:59 pm, Friday, October 14 Project 1: Interactive Viewing of Two Teapots How to create a teapot? Before OpenGL 3., glutsolidteapot
More informationIntroduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science Laboratory University of New Mexico 1 Computer Viewing
More informationOpenGL Transformations
OpenGL Transformations R. J. Renka Department of Computer Science & Engineering University of North Texas 02/18/2014 Introduction The most essential aspect of OpenGL is the vertex pipeline described in
More informationCOMP Computer Graphics and Image Processing. 5: Viewing 1: The camera. In part 1 of our study of Viewing, we ll look at ˆʹ U ˆ ʹ F ˆʹ S
COMP27112 Û ˆF Ŝ Computer Graphics and Image Processing ˆʹ U ˆ ʹ F C E 5: iewing 1: The camera ˆʹ S Toby.Howard@manchester.ac.uk 1 Introduction In part 1 of our study of iewing, we ll look at iewing in
More informationComputer Graphics. Chapter 10 Three-Dimensional Viewing
Computer Graphics Chapter 10 Three-Dimensional Viewing Chapter 10 Three-Dimensional Viewing Part I. Overview of 3D Viewing Concept 3D Viewing Pipeline vs. OpenGL Pipeline 3D Viewing-Coordinate Parameters
More informationComputer Viewing. CITS3003 Graphics & Animation. E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley
Computer Viewing CITS3003 Graphics & Animation E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 1 Objectives Introduce the mathematics of projection Introduce OpenGL viewing
More information1 Transformations. Chapter 1. Transformations. Department of Computer Science and Engineering 1-1
Transformations 1-1 Transformations are used within the entire viewing pipeline: Projection from world to view coordinate system View modifications: Panning Zooming Rotation 1-2 Transformations can also
More informationProjection: Mapping 3-D to 2-D. Orthographic Projection. The Canonical Camera Configuration. Perspective Projection
Projection: Mapping 3-D to 2-D Our scene models are in 3-D space and images are 2-D so we need some wa of projecting 3-D to 2-D The fundamental approach: planar projection first, we define a plane in 3-D
More informationLecture 5: Viewing. CSE Computer Graphics (Fall 2010)
Lecture 5: Viewing CSE 40166 Computer Graphics (Fall 2010) Review: from 3D world to 2D pixels 1. Transformations are represented by matrix multiplication. o Modeling o Viewing o Projection 2. Clipping
More information3D Viewing. CMPT 361 Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller
3D Viewing CMPT 361 Introduction to Computer Graphics Torsten Möller Reading Chapter 4 of Angel Chapter 6 of Foley, van Dam, 2 Objectives What kind of camera we use? (pinhole) What projections make sense
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 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 informationFundamental Types of Viewing
Viewings Fundamental Types of Viewing Perspective views finite COP (center of projection) Parallel views COP at infinity DOP (direction of projection) perspective view parallel view Classical Viewing Specific
More informationLecture 4: Viewing. Topics:
Lecture 4: Viewing Topics: 1. Classical viewing 2. Positioning the camera 3. Perspective and orthogonal projections 4. Perspective and orthogonal projections in OpenGL 5. Perspective and orthogonal projection
More informationSpring 2013, CS 112 Programming Assignment 2 Submission Due: April 26, 2013
Spring 2013, CS 112 Programming Assignment 2 Submission Due: April 26, 2013 PROJECT GOAL: Write a restricted OpenGL library. The goal of the project is to compute all the transformation matrices with your
More informationComputer Viewing and Projection. Overview. Computer Viewing. David Carr Fundamentals of Computer Graphics Spring 2004 Based on Slides by E.
INSTITUTIONEN FÖR SYSTEMTEKNIK LULEÅ TEKNISKA UNIVERSITET Computer Viewing and Projection David Carr Fundamentals of Computer Graphics Spring 24 Based on Slides by E. Angel Projection 1 L Overview Computer
More information3D Graphics for Game Programming (J. Han) Chapter II Vertex Processing
Chapter II Vertex Processing Rendering Pipeline Main stages in the pipeline The vertex processing stage operates on every input vertex stored in the vertex buffer and performs various operations such as
More informationCITSTUDENTS.IN VIEWING. Computer Graphics and Visualization. Classical and computer viewing. Viewing with a computer. Positioning of the camera
UNIT - 6 7 hrs VIEWING Classical and computer viewing Viewing with a computer Positioning of the camera Simple projections Projections in OpenGL Hiddensurface removal Interactive mesh displays Parallelprojection
More information3D Viewing. Introduction to Computer Graphics Torsten Möller. Machiraju/Zhang/Möller
3D Viewing Introduction to Computer Graphics Torsten Möller Machiraju/Zhang/Möller Reading Chapter 4 of Angel Chapter 13 of Hughes, van Dam, Chapter 7 of Shirley+Marschner Machiraju/Zhang/Möller 2 Objectives
More information6. Modelview Transformations
6. Modelview Transformations Transformation Basics Transformations map coordinates from one frame of reference to another through matri multiplications Basic transformation operations include: - translation
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 informationTransformation Pipeline
Transformation Pipeline Local (Object) Space Modeling World Space Clip Space Projection Eye Space Viewing Perspective divide NDC space Normalized l d Device Coordinatesd Viewport mapping Screen space Coordinate
More informationDescribe the Orthographic and Perspective projections. How do we combine together transform matrices?
Aims and objectives By the end of the lecture you will be able to Work with multiple transform matrices Describe the viewing process in OpenGL Design and build a camera control APIs Describe the Orthographic
More informationCHAPTER 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...........
More informationSurface Graphics. 200 polys 1,000 polys 15,000 polys. an empty foot. - a mesh of spline patches:
Surface Graphics Objects are explicitely defined by a surface or boundary representation (explicit inside vs outside) This boundary representation can be given by: - a mesh of polygons: 200 polys 1,000
More informationCS Computer Graphics: Transformations & The Synthetic Camera
CS 543 - Computer Graphics: Transformations The Snthetic Camera b Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) Introduction to Transformations A transformation changes an objects Size
More informationCOMS 4160: Problems on Transformations and OpenGL
COMS 410: Problems on Transformations and OpenGL Ravi Ramamoorthi 1. Write the homogeneous 4x4 matrices for the following transforms: Translate by +5 units in the X direction Rotate by 30 degrees about
More informationCS 432 Interactive Computer Graphics
CS 432 Interactive Computer Graphics Lecture 4 3D Viewing Matt Burlick - Drexel University - CS 432 1 Reading Angel Chapters 3-4 Red Book Chapter 5, Appendix E Matt Burlick - Drexel University - CS 432
More informationCSC Graphics Programming. Budditha Hettige Department of Statistics and Computer Science
CSC 307 1.0 Graphics Programming Department of Statistics and Computer Science Graphics Programming OpenGL 3D Drawing 2 3D Graphics Projections Getting 3D to 2D 3D scene 2D image 3 Projections Orthographic
More informationClassical and Computer Viewing. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico
Classical and Computer Viewing Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Planar Geometric Projections Standard projections project onto a plane Projectors
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 informationCS 428: Fall Introduction to. Viewing and projective transformations. Andrew Nealen, Rutgers, /23/2009 1
CS 428: Fall 29 Introduction to Computer Graphics Viewing and projective transformations Andrew Nealen, Rutgers, 29 9/23/29 Modeling and viewing transformations Canonical viewing volume Viewport transformation
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 informationViewing with Computers (OpenGL)
We can now return to three-dimension?', graphics from a computer perspective. Because viewing in computer graphics is based on the synthetic-camera model, we should be able to construct any of the classical
More informationOne or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface
Classical Viewing Viewing requires three basic elements One or more objects A viewer with a projection surface Projectors that go from the object(s) to the projection surface Classical views are based
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 informationAffine Transformations in 3D
Affine Transformations in 3D 1 Affine Transformations in 3D 1 Affine Transformations in 3D General form 2 Translation Elementary 3D Affine Transformations 3 Scaling Around the Origin 4 Along x-axis Shear
More informationCOMP Computer Graphics and Image Processing. a6: Projections. In part 2 of our study of Viewing, we ll look at. COMP27112 Toby Howard
Computer Graphics and Image Processing a6: Projections Tob.Howard@manchester.ac.uk Introduction In part 2 of our stud of Viewing, we ll look at The theor of geometrical planar projections Classes of projections
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 informationSUMMARY. CS380: Introduction to Computer Graphics Varying Variables Chapter 13. Min H. Kim KAIST School of Computing 18/04/26.
CS380: Introduction to Computer Graphics Varying Variables Chapter 3 Min H. Kim KAIST School of Computing Rasterization SUMMARY 2 Path from vertex to pixel 3 Clipping coordinates Eye coordinates (projected)
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 informationGL_MODELVIEW transformation
lecture 3 view transformations model transformations GL_MODELVIEW transformation view transformations: How do we map from world coordinates to camera/view/eye coordinates? model transformations: How do
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 informationCS 428: Fall Introduction to. Transformations in OpenGL + hierarchical modeling. Andrew Nealen, Rutgers, /21/2009 1
CS 428: Fall 2009 Introduction to Computer Graphics Transformations in OpenGL + hierarchical modeling 9/21/2009 1 Review of affine transformations Use projective geometry staple of CG Euclidean (x,z) (x,y,z)
More informationThe Viewing Pipeline adaptation of Paul Bunn & Kerryn Hugo s notes
The Viewing Pipeline adaptation of Paul Bunn & Kerryn Hugo s notes What is it? The viewing pipeline is the procession of operations that are applied to the OpenGL matrices, in order to create a 2D representation
More informationCOMP3421. Introduction to 3D Graphics
COMP3421 Introduction to 3D Graphics 3D coordinates 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 informationCSE 690: GPGPU. Lecture 2: Understanding the Fabric - Intro to Graphics. Klaus Mueller Stony Brook University Computer Science Department
CSE 690: GPGPU Lecture 2: Understanding the Fabric - Intro to Graphics Klaus Mueller Stony Brook University Computer Science Department Klaus Mueller, Stony Brook 2005 1 Surface Graphics Objects are explicitely
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 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 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 informationComputer Graphics. Chapter 7 2D Geometric Transformations
Computer Graphics Chapter 7 2D Geometric Transformations Chapter 7 Two-Dimensional Geometric Transformations Part III. OpenGL Functions for Two-Dimensional Geometric Transformations OpenGL Geometric Transformation
More informationGeometry: Outline. Projections. Orthographic Perspective
Geometry: Cameras Outline Setting up the camera Projections Orthographic Perspective 1 Controlling the camera Default OpenGL camera: At (0, 0, 0) T in world coordinates looking in Z direction with up vector
More informationGraphics and Visualization
International University Bremen Spring Semester 2006 Recap Representing graphic objects by homogenous points and vectors Using affine transforms to modify objects Using projections to display objects
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 informationInteractive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL
International Edition Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL Sixth Edition Edward Angel Dave Shreiner Interactive Computer Graphics: A Top-Down Approach with Shader-Based
More informationOpenGL. Toolkits.
http://www.opengl.org OpenGL Open Graphics Library Graphics API Delivered with UNIX, Win9x/2000/Me/Nt/Xp, Mac OS Direct3D (DirectX) is only Windows Utilizes the window system and event handling of the
More informationComputer Graphics. Basic 3D Programming. Contents
Computer Graphics Basic 3D Programming September 21, 2005 Sun-Jeong Kim 1 http://www.hallym.ac.kr/~sunkim/teach/2005/cga Contents Cameras and objects Perspective projections Orthographic projections Viewing
More informationComputer Viewing. Prof. George Wolberg Dept. of Computer Science City College of New York
Computer Viewing Prof. George Wolberg Dept. of Computer Science City College of New York Objectives Introduce the mathematics of projection Introduce OpenGL viewing functions Look at alternate viewing
More informationEvening s Goals. Mathematical Transformations. Discuss the mathematical transformations that are utilized for computer graphics
Evening s Goals Discuss the mathematical transformations that are utilized for computer graphics projection viewing modeling Describe aspect ratio and its importance Provide a motivation for homogenous
More informationChapter 5. Projections and Rendering
Chapter 5 Projections and Rendering Topics: Perspective Projections The rendering pipeline In order to view manipulate and view a graphics object we must find ways of storing it a computer-compatible way.
More informationCS4202: Test. 1. Write the letter corresponding to the library name next to the statement or statements that describe library.
CS4202: Test Name: 1. Write the letter corresponding to the library name next to the statement or statements that describe library. (4 points) A. GLUT contains routines that use lower level OpenGL commands
More informationFachhochschule Regensburg, Germany, February 15, 2017
s Operations Fachhochschule Regensburg, Germany, February 15, 2017 s Motivating Example s Operations To take a photograph of a scene: Set up your tripod and point camera at the scene (Viewing ) Position
More informationGetting Started. Overview (1): Getting Started (1): Getting Started (2): Getting Started (3): COSC 4431/5331 Computer Graphics.
Overview (1): Getting Started Setting up OpenGL/GLUT on Windows/Visual Studio COSC 4431/5331 Computer Graphics Thursday January 22, 2004 Overview Introduction Camera analogy Matrix operations and OpenGL
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 information7. 3D Viewing. Projection: why is projection necessary? CS Dept, Univ of Kentucky
7. 3D Viewing Projection: why is projection necessary? 1 7. 3D Viewing Projection: why is projection necessary? Because the display surface is 2D 2 7.1 Projections Perspective projection 3 7.1 Projections
More informationUsing GLU/GLUT Objects
Using GLU/GLUT Objects GLU/GLUT provides very simple object primitives glutwirecone glutwirecube glucylinder glutwireteapot GLU/GLUT Objects Each glu/glut object has its default size, position, and orientation
More informationUsing GLU/GLUT Objects. GLU/GLUT Objects. glucylinder() glutwirecone() GLU/GLUT provides very simple object primitives
Using GLU/GLUT Objects GLU/GLUT provides ver simple object primitives glutwirecone gluclinder glutwirecube GLU/GLUT Objects Each glu/glut object has its default sie, position, and orientation You need
More informationTransformations. Rotation and Scaling
Transformations In OpenGL, transformation are performed in the opposite order they are called 4 3 2 1 translate(1., 1.,.); rotatez(45.); scale(2., 2.,.); DrawSquare(.,., 1.); 4 3 2 1 scale(2., 2.,.); rotatez(45.);
More informationComputer Graphics. Bing-Yu Chen National Taiwan University
Computer Graphics Bing-Yu Chen National Taiwan University Introduction to OpenGL General OpenGL Introduction An Example OpenGL Program Drawing with OpenGL Transformations Animation and Depth Buffering
More informationGraphics Pipeline & APIs
Graphics Pipeline & APIs CPU Vertex Processing Rasterization Fragment Processing glclear (GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT); glpushmatrix (); gltranslatef (-0.15, -0.15, solidz); glmaterialfv(gl_front,
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 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 informationCSE 167: Lecture #4: Vertex Transformation. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012
CSE 167: Introduction to Computer Graphics Lecture #4: Vertex Transformation Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Project 2 due Friday, October 12
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 informationBasic Elements. Geometry is the study of the relationships among objects in an n-dimensional space
Basic Elements Geometry is the study of the relationships among objects in an n-dimensional space In computer graphics, we are interested in objects that exist in three dimensions We want a minimum set
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 information1. We ll look at: Types of geometrical transformation. Vector and matrix representations
Tob Howard COMP272 Computer Graphics and Image Processing 3: Transformations Tob.Howard@manchester.ac.uk Introduction We ll look at: Tpes of geometrical transformation Vector and matri representations
More information// double buffering and RGB glutinitdisplaymode(glut_double GLUT_RGBA); // your own initializations
#include int main(int argc, char** argv) { glutinit(&argc, argv); Typical OpenGL/GLUT Main Program // GLUT, GLU, and OpenGL defs // program arguments // initialize glut and gl // double buffering
More informationViewing Transformation
CS38: Computer Graphics Viewing Transformation Sung-Eui Yoon ( 윤성의 ) Course URL: http://sglab.kaist.ac.kr/~sungeui/cg/ Class Objectives Know camera setup parameters Understand viewing and projection processes
More informationThe Importance of Matrices in the DirectX API. by adding support in the programming language for frequently used calculations.
Hermann Chong Dr. King Linear Algebra Applications 28 November 2001 The Importance of Matrices in the DirectX API In the world of 3D gaming, there are two APIs (Application Program Interface) that reign
More information3D Graphics Pipeline II Clipping. Instructor Stephen J. Guy
3D Graphics Pipeline II Clipping Instructor Stephen J. Guy 3D Rendering Pipeline (for direct illumination) 3D Geometric Primitives 3D Model Primitives Modeling Transformation 3D World Coordinates Lighting
More informationIntroduction to OpenGL Transformations, Viewing and Lighting. Ali Bigdelou
Introduction to OpenGL Transformations, Viewing and Lighting Ali Bigdelou Modeling From Points to Polygonal Objects Vertices (points) are positioned in the virtual 3D scene Connect points to form polygons
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 informationCS 591B Lecture 9: The OpenGL Rendering Pipeline
CS 591B Lecture 9: The OpenGL Rendering Pipeline 3D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination Spring 2007 Rui Wang 3D Polygon Rendering Many applications
More informationGraphics Pipeline & APIs
3 2 4 Graphics Pipeline & APIs CPU Vertex Processing Rasterization Processing glclear (GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT); glpushmatrix (); gltranslatef (-0.15, -0.15, solidz); glmaterialfv(gl_front,
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 informationMORE OPENGL. Pramook Khungurn CS 4621, Fall 2011
MORE OPENGL Pramook Khungurn CS 4621, Fall 2011 SETTING UP THE CAMERA Recall: OpenGL Vertex Transformations Coordinates specified by glvertex are transformed. End result: window coordinates (in pixels)
More informationCS 543: Computer Graphics. Projection
CS 543: Computer Graphics Projection Robert W. Lindeman Associate Professor Interactive Media & Game Development Department of Computer Science Worcester Poltechnic Institute gogo@wpi.edu with lots of
More informationCSE528 Computer Graphics: Theory, Algorithms, and Applications
CSE528 Computer Graphics: Theor, Algorithms, and Applications Hong Qin State Universit of New York at Ston Brook (Ston Brook Universit) Ston Brook, New York 794--44 Tel: (63)632-845; Fa: (63)632-8334 qin@cs.sunsb.edu
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 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 informationCSCI E-74. Simulation and Gaming
CSCI E-74 Virtual and Augmented Reality for Simulation and Gaming Fall term 2017 Gianluca De Novi, PhD Lesson 3 General Introduction to OpenGL APIs and TRS Perspective Simulation Perspective simulation
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 informationName: [20 points] Consider the following OpenGL commands:
Name: 2 1. [20 points] Consider the following OpenGL commands: glmatrimode(gl MODELVIEW); glloadidentit(); glrotatef( 90.0, 0.0, 1.0, 0.0 ); gltranslatef( 2.0, 0.0, 0.0 ); glscalef( 2.0, 1.0, 1.0 ); What
More information