University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Viewing/Projections I.

Slides:



Advertisements
Similar presentations
MAT 594CM S2010Fundamentals of Spatial ComputingAngus Forbes Overview Goals of the course: 1. to introduce real-time 3D graphics programming with openGL.
Advertisements

Graphics Pipeline.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Display Lists, Viewing.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Viewing/Projections IV.
Transformations II Week 2, Wed Jan 17
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Projections II Week 4,
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Viewing/Projections III.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Lighting/Shading I Week.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Viewing/Projections II.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Transformations II Week.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Viewing/Projections III.
University of British Columbia CPSC 314 Computer Graphics May-June 2005 Tamara Munzner Viewing, Projections.
Transformations IV Week 3, Wed Jan 23
Based on slides created by Edward Angel
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Transformations V Week.
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Viewing and Projections Wed 17 Oct 2003 project 1 recap: display lists viewing.
Computer Graphics (Fall 2008) COMS 4160, Lecture 3: Transformations 1
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Transformations III Week.
Viewing Doug James’ CG Slides, Rich Riesenfeld’s CG Slides, Shirley, Fundamentals of Computer Graphics, Chap 7 Wen-Chieh (Steve) Lin Institute of Multimedia.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Viewing/Projections I.
University of British Columbia CPSC 414 Computer Graphics © Tamara Munzner 1 Viewing and Projections Mon 22 Sep 2003 project 1 solution demo recap: projections.
CHAPTER 7 Viewing and Transformations © 2008 Cengage Learning EMEA.
COMP 175: Computer Graphics March 24, 2015
Viewing and Projections
CS 480/680 Computer Graphics Representation Dr. Frederick C Harris, Jr. Fall 2012.
Transformations Dr. Amy Zhang.
OpenGL Matrices and Transformations Angel, Chapter 3 slides from AW, Red Book, etc. CSCI 6360.
Computer Graphics World, View and Projection Matrices CO2409 Computer Graphics Week 8.
2003CS Hons RW778 Graphics1 Chapter 5: Transforming Objects 5.2 Introduction to Transformations 5.2 Introduction to Transformations –Affine transformations.
Foundations of Computer Graphics (Fall 2012) CS 184, Lectures 13,14: Reviews Transforms, OpenGL
OpenGL Conclusions OpenGL Programming and Reference Guides, other sources CSCI 6360/4360.
CAP4730: Computational Structures in Computer Graphics 3D Transformations.
Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2010 Tamara Munzner Lighting/Shading I Week.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2013 Tamara Munzner Rasterization.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
Chapters 5 2 March Classical & Computer Viewing Same elements –objects –viewer –projectors –projection plane.
©2005, Lee Iverson Lee Iverson UBC Dept. of ECE EECE 478 Viewing and Projection.
Graphics CSCI 343, Fall 2015 Lecture 16 Viewing I
Viewing
Rendering Pipeline Fall, D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Viewing/Projections IV.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016 Tamara Munzner Math Basics Week 1, Fri.
Foundations of Computer Graphics (Spring 2012) CS 184, Lecture 3: Transformations 1
Coordinate Systems Lecture 1 Fri, Sep 2, The Coordinate Systems The points we create are transformed through a series of coordinate systems before.
CS559: Computer Graphics Lecture 9: 3D Transformation and Projection Li Zhang Spring 2010 Most slides borrowed from Yungyu ChuangYungyu Chuang.
OpenGL LAB III.
Viewing. Classical Viewing Viewing requires three basic elements - One or more objects - A viewer with a projection surface - Projectors that go from.
3D Ojbects: Transformations and Modeling. Matrix Operations Matrices have dimensions: Vectors can be thought of as matrices: v=[2,3,4,1] is a 1x4 matrix.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Viewing/Projections I.
Transformations University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016 Tamara Munzner.
Final Review I University of British Columbia
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016
Transformations V, Viewing I Week 3, Fri Jan 22
Rendering Pipeline Aaron Bloomfield CS 445: Introduction to Graphics
3D Computer Graphics (3080/GV10) Week 5-6 Tutorial 3
CSCE 441 Computer Graphics 3-D Viewing
Modeling 101 For the moment assume that all geometry consists of points, lines and faces Line: A segment between two endpoints Face: A planar area bounded.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016
CSC461: Lecture 19 Computer Viewing
Viewing/Projections I Week 3, Fri Jan 25
Transformations 6 University of British Columbia
Transformations 3 University of British Columbia
Viewing II Week 4, Mon Jan 25
Transformations IV Week 3, Wed Jan 20
Viewing III Week 4, Wed Jan 27
Viewing/Projections I Week 3, Fri Jan 25
Transformations IV Week 3, Wed Jan 23
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016
Presentation transcript:

University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Viewing/Projections I Week 3, Fri Jan 24

2 Reading for This and Next 2 Lectures FCG Chapter 7 Viewing FCG Section Windowing Transforms RB rest of Chap Viewing RB rest of App Homogeneous Coords

3 Review: Display Lists precompile/cache block of OpenGL code for reuse usually more efficient than immediate mode exact optimizations depend on driver good for multiple instances of same object but cannot change contents, not parametrizable good for static objects redrawn often display lists persist across multiple frames interactive graphics: objects redrawn every frame from new viewpoint from moving camera can be nested hierarchically snowman example: 3x performance improvement, 36K polys

4 Review: Normals polygon: assume vertices ordered CCW when viewed from visible side of polygon normal for a vertex specify polygon orientation used for lighting supplied by model (i.e., sphere), or computed from neighboring polygons

5 Review: Transforming Normals cannot transform normals using same matrix as points nonuniform scaling would cause to be not perpendicular to desired plane! given M, what should Q be? inverse transpose of the modelling transformation

6 Viewing

7 Using Transformations three ways modelling transforms place objects within scene (shared world) affine transformations viewing transforms place camera rigid body transformations: rotate, translate projection transforms change type of camera projective transformation

8 Rendering Pipeline Scene graph Object geometry Modelling Transforms Viewing Transform Projection Transform

9 Scene graph Object geometry Modelling Transforms Viewing Transform Projection Transform Rendering Pipeline result all vertices of scene in shared 3D world coordinate system

10 Scene graph Object geometry Modelling Transforms Viewing Transform Projection Transform Rendering Pipeline result scene vertices in 3D view (camera) coordinate system

11 Scene graph Object geometry Modelling Transforms Viewing Transform Projection Transform Rendering Pipeline result 2D screen coordinates of clipped vertices

12 Viewing and Projection need to get from 3D world to 2D image projection: geometric abstraction what eyes or cameras do two pieces viewing transform: where is the camera, what is it pointing at? perspective transform: 3D to 2D flatten to image

13 Rendering Pipeline Geometry Database Geometry Database Model/View Transform. Model/View Transform. Lighting Perspective Transform. Perspective Transform. Clipping Scan Conversion Scan Conversion Depth Test Depth Test Texturing Blending Frame- buffer Frame- buffer

14 Rendering Pipeline Geometry Database Geometry Database Model/View Transform. Model/View Transform. Lighting Perspective Transform. Perspective Transform. Clipping Scan Conversion Scan Conversion Depth Test Depth Test Texturing Blending Frame- buffer Frame- buffer

15 OpenGL Transformation Storage modeling and viewing stored together possible because no intervening operations perspective stored in separate matrix specify which matrix is target of operations common practice: return to default modelview mode after doing projection operations glMatrixMode(GL_MODELVIEW); glMatrixMode(GL_PROJECTION);

16 Coordinate Systems result of a transformation names convenience armadillo: leg, head, tail standard conventions in graphics pipeline object/modelling world camera/viewing/eye screen/window raster/device

17 Projective Rendering Pipeline OCS - object/model coordinate system WCS - world coordinate system VCS - viewing/camera/eye coordinate system CCS - clipping coordinate system NDCS - normalized device coordinate system DCS - device/display/screen coordinate system OCS O2W VCS CCS NDCS DCSmodelingtransformationviewingtransformation projectiontransformation viewporttransformation perspective divide objectworld viewing device normalized device clipping W2VV2C N2D C2N WCS

18 Viewing Transformation OCS WCS VCSmodelingtransformationviewingtransformation OpenGL ModelView matrix objectworld viewing y x VCS Peye z y x WCS y z OCS image plane

19 Basic Viewing starting spot - OpenGL camera at world origin probably inside an object y axis is up looking down negative z axis why? RHS with x horizontal, y vertical, z out of screen translate backward so scene is visible move distance d = focal length can use rotate/translate/scale to move camera demo: Nate Robins tutorial transformations

20 Viewing in Project 1 where is camera in template code? 5 units back, looking down -z axis

21 Convenient Camera Motion rotate/translate/scale not intuitive arbitrary viewing position eye point, gaze/lookat direction, up vector

22 Convenient Camera Motion rotate/translate/scale not intuitive arbitrary viewing position eye point, gaze/lookat direction, up vector Peye Pref up view eye lookat y z x WCS

23 From World to View Coordinates: W2V translate eye to origin rotate view vector (lookat – eye) to w axis rotate around w to bring up into vw-plane y z x WCS v u VCS Peye w Pref up view eye lookat

24 OpenGL Viewing Transformation gluLookAt(ex,ey,ez,lx,ly,lz,ux,uy,uz) postmultiplies current matrix, so to be safe: glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(ex,ey,ez,lx,ly,lz,ux,uy,uz) // now ok to do model transformations demo: Nate Robins tutorial projection

25 Deriving W2V Transformation translate eye to origin y z x WCS v u VCS Peye w Pref up view eye lookat

26 Deriving W2V Transformation rotate view vector (lookat – eye) to w axis w: normalized opposite of view/gaze vector g y z x WCS v u VCS Peye w Pref up view eye lookat

27 Deriving W2V Transformation rotate around w to bring up into vw -plane u should be perpendicular to vw-plane, thus perpendicular to w and up vector t v should be perpendicular to u and w y z x WCS v u VCS Peye w Pref up view eye lookat

28 Deriving W2V Transformation rotate from WCS xyz into uvw coordinate system with matrix that has rows u, v, w reminder: rotate from uvw to xyz coord sys with matrix M that has columns u,v,w rotate from xyz coord sys to uvw coord sys with matrix M T that has rows u,v,w

29 Deriving W2V Transformation M=RT

30 Moving the Camera or the World? two equivalent operations move camera one way vs. move world other way example initial OpenGL camera: at origin, looking along -z axis create a unit square parallel to camera at z = -10 translate in z by 3 possible in two ways camera moves to z = -3 Note OpenGL models viewing in left-hand coordinates camera stays put, but world moves to -7 resulting image same either way possible difference: are lights specified in world or view coordinates?

31 World vs. Camera Coordinates W a = (1,1) W a b = (1,1) C1 = (5,3) W c = (1,1) C2 = (1,3) C1 = (5,5) W C1 b C2 c