Rendering Pipeline Aaron Bloomfield CS 445: Introduction to Graphics

Slides:



Advertisements
Similar presentations
Three Dimensional Viewing
Advertisements

Three-Dimensional Viewing Sang Il Park Sejong University Lots of slides are stolen from Jehee Lee’s.
1 Projection. 2 Model Transform Viewing Transform Modelview Matrix world coordinates Pipeline Review Focus of this lecture.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Projections II Week 4,
Viewing and Projections
1 Jinxiang Chai CSCE 441 Computer Graphics. 2 Midterm Time: 10:10pm-11:20pm, 10/20 Location: HRBB 113.
1 Lecture 8 Clipping Viewing transformations Projections.
4.1si31_2001 SI31 Advanced Computer Graphics AGR Lecture 4 Projection Clipping Viewport Transformation.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer.
Rendering Pipeline Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally by Greg Humphreys)
Projection Projection - the transformation of points from a coordinate system in n dimensions to a coordinate system in m dimensions where m
MIT EECS 6.837, Durand and Cutler Graphics Pipeline: Projective Transformations.
CS559: Computer Graphics Lecture 9: Projection Li Zhang Spring 2008.
Graphics Graphics Korea University cgvr.korea.ac.kr 3D Viewing 고려대학교 컴퓨터 그래픽스 연구실.
Computer Graphics Bing-Yu Chen National Taiwan University.
CSC 461: Lecture 3 1 CSC461 Lecture 3: Models and Architectures  Objectives –Learn the basic design of a graphics system –Introduce pipeline architecture.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
1Computer Graphics Lecture 4 - Models and Architectures John Shearer Culture Lab – space 2
CAP4730: Computational Structures in Computer Graphics 3D Transformations.
Angel: Interactive Computer Graphics CSE 409: Computer Graphics Camera Transformations and Projection Acknowledgements: parts of information and pictures.
CS 325 Introduction to Computer Graphics 02 / 22 / 2010 Instructor: Michael Eckmann.
3D Polygon Rendering Pipeline 원본 – ( Thomas Funkhouser (Princeton.
University of North Carolina at Greensboro
CS 445 / 645 Introduction to Computer Graphics Lecture 10 Camera Models Lecture 10 Camera Models.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
Jinxiang Chai CSCE 441 Computer Graphics 3-D Viewing 0.
Chapters 5 2 March Classical & Computer Viewing Same elements –objects –viewer –projectors –projection plane.
Three-Dimensional Viewing
12/24/2015 A.Aruna/Assistant professor/IT/SNSCE 1.
1 Angel: Interactive Computer Graphics5E © Addison- Wesley 2009 Image Formation Fundamental imaging notions Fundamental imaging notions Physical basis.
Rendering Pipeline Fall, D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination.
Taxonomy of Projections FVFHP Figure Taxonomy of Projections.
Projections Angel: Interactive Computer Graphics.
Viewing and Projection
CS552: Computer Graphics Lecture 11: Orthographic Projection.
CS559: Computer Graphics Lecture 9: 3D Transformation and Projection Li Zhang Spring 2010 Most slides borrowed from Yungyu ChuangYungyu Chuang.
CS 376 Introduction to Computer Graphics 02 / 21 / 2007 Instructor: Michael Eckmann.
Viewing and Projection. The topics Interior parameters Projection type Field of view Clipping Frustum… Exterior parameters Camera position Camera orientation.
Chapter 1 Graphics Systems and Models Models and Architectures.
Viewing. Classical Viewing Viewing requires three basic elements - One or more objects - A viewer with a projection surface - Projectors that go from.
Computer Graphics Lecture 19 PROJECTIONS I Taqdees A. Siddiqi
Outline 3D Viewing Required readings: HB 10-1 to 10-10
Projection. Conceptual model of 3D viewing process.
Computer Graphics Projections.
PROJECTIONS PROJECTIONS 1. Transform 3D objects on to a 2D plane using projections 2 types of projections Perspective Parallel In parallel projection,
Chapter 11 Three-Dimensional Geometric and Modeling Transformations
Rendering Pipeline Fall, 2015.
University of North Carolina at Greensboro
Projection Our 3-D scenes are all specified in 3-D world coordinates
3D Viewing cgvr.korea.ac.kr.
CSCE 441 Computer Graphics 3-D Viewing
Viewing in 3D Chapter 6.
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.
Unit 4 3D Viewing Pipeline Part - 2
CENG 477 Introduction to Computer Graphics
Models and Architectures
Models and Architectures
Models and Architectures
Introduction to Computer Graphics with WebGL
Three Dimensional Viewing
OpenGL 2D Viewing Pipeline
Lecture 13: Cameras and geometry
Computer Graphics (Spring 2003)
Last Time Canonical view pipeline Projection Local Coordinate Space
3D Graphics.
Models and Architectures
Viewing (Projections)
Models and Architectures
Viewing (Projections)
PROJECTIONS KOYEL DATTA GUPTA.
Presentation transcript:

Rendering Pipeline Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally by Greg Humphreys)

3D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination

3D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination Quake II (Id Software)

3D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination

3D Rendering Pipeline This is a pipelined sequence of operations 3D Geometric Primitives Modeling Transformation Lighting This is a pipelined sequence of operations to draw a 3D primitive into a 2D image (this pipeline applies only for direct illumination) Viewing Transformation Projection Transformation Clipping Scan Conversion Image

of 3D rendering pipeline Example: OpenGL Modeling Transformation glBegin(GL_POLYGON); glVertex3f(0.0, 0.0, 0.0); glVertex3f(1.0, 0.0, 0.0); glVertex3f(1.0, 1.0, 1.0); glVertex3f(0.0, 1.0, 1.0); glEnd(); Viewing Transformation Lighting & Texturing Projection Transformation OpenGL executes steps of 3D rendering pipeline for each polygon Clipping Scan Conversion Image

3D Geometric Primitives 3D Rendering Pipeline 3D Geometric Primitives Modeling Transformation Transform into 3D world coordinate system Viewing Transformation Lighting & Texturing Projection Transformation Clipping Scan Conversion Image

3D Geometric Primitives 3D Rendering Pipeline 3D Geometric Primitives Modeling Transformation Transform into 3D world coordinate system Transform into 3D camera coordinate system Done with modeling transformation Viewing Transformation Lighting & Texturing Projection Transformation Clipping Scan Conversion Image

3D Geometric Primitives 3D Rendering Pipeline 3D Geometric Primitives Modeling Transformation Transform into 3D world coordinate system Transform into 3D camera coordinate system Done with modeling transformation Viewing Transformation Illuminate according to lighting and reflectance Apply texture maps Lighting & Texturing Projection Transformation Clipping Scan Conversion Image

3D Geometric Primitives 3D Rendering Pipeline 3D Geometric Primitives Modeling Transformation Transform into 3D world coordinate system Transform into 3D camera coordinate system Done with modeling transformation Viewing Transformation Illuminate according to lighting and reflectance Apply texture maps Lighting & Texturing Projection Transformation Transform into 2D screen coordinate system Clipping Scan Conversion Image

3D Geometric Primitives 3D Rendering Pipeline 3D Geometric Primitives Modeling Transformation Transform into 3D world coordinate system Transform into 3D camera coordinate system Done with modeling transformation Viewing Transformation Illuminate according to lighting and reflectance Apply texture maps Lighting & Texturing Projection Transformation Transform into 2D screen coordinate system Clipping Clip primitives outside camera’s view Scan Conversion Image

3D Geometric Primitives 3D Rendering Pipeline 3D Geometric Primitives Modeling Transformation Transform into 3D world coordinate system Transform into 3D camera coordinate system Done with modeling transformation Viewing Transformation Illuminate according to lighting and reflectance Apply texture maps Lighting & Texturing Projection Transformation Transform into 2D screen coordinate system Clipping Clip primitives outside camera’s view Scan Conversion Draw pixels (includes texturing, hidden surface, ...) Image

Camera Coordinates Canonical coordinate system Convention is right-handed (looking down -z axis) Convenient for projection, clipping, etc. Camera up vector maps to Y axis y Camera right vector maps to X axis Camera back vector maps to Z axis (pointing out of screen) z x

Viewing Transformation Mapping from world to camera coordinates Eye position maps to origin Right vector maps to X axis Up vector maps to Y axis Back vector maps to Z axis back up right x y z World View plane Camera

Viewing Transformations p(x,y,z) 3D Object Coordinates Modeling Transformation 3D World Coordinates Viewing Transformation Viewing Transformations 3D Camera Coordinates Projection Transformation 2D Screen Coordinates Window-to-Viewport Transformation 2D Image Coordinates p’(x’,y’)

Projection General definition: In computer graphics: Transform points in n-space to m-space (m<n) In computer graphics: Map 3D camera coordinates to 2D screen coordinates For perspective transformations, no two “rays” are parallel to each other

Taxonomy of Projections FVFHP Figure 6.10

Parallel Projection Center of projection is at infinity Direction of projection (DOP) same for all points DOP View Plane Angel Figure 5.4

Orthographic Projections DOP perpendicular to view plane Front Top Side Angel Figure 5.5

Oblique Projections DOP not perpendicular to view plane Cavalier (DOP  = 45o) Cabinet (DOP  = 63.4o) H&B Figure 12.24

Parallel Projection View Volume H&B Figure 12.30

Parallel Projection Matrix General parallel projection transformation:

Taxonomy of Projections FVFHP Figure 6.10

Perspective Projection Map points onto “view plane” along “projectors” emanating from “center of projection” (COP) Projectors Center of Projection View Plane Angel Figure 5.9

Perspective Projection How many vanishing points? The difference is how many of the three principle directions are parallel/orthogonal to the projection plane 3-Point Perspective 2-Point 1-Point Angel Figure 5.10

Perspective Projection View Volume Plane H&B Figure 12.30

Camera to Screen Remember: Object  Camera  Screen Just like raytracer “screen” is the z=d plane for some constant d Origin of screen coordinates is (0,0,d) Its x and y axes are parallel to the x and y axes of the eye coordinate system All these coordinates are in camera space now

Overhead View of Our Screen Yeah, similar triangles!

The Perspective Matrix This “division by z” can be accomplished by a 4x4 matrix too! What happens to the point (x,y,z,1)? What point is this in non-homogeneous coordinates?

Taxonomy of Projections FVFHP Figure 6.10

Perspective vs. Parallel Perspective projection Size varies inversely with distance - looks realistic Distance and angles are not (in general) preserved Parallel lines do not (in general) remain parallel Parallel projection Good for exact measurements Parallel lines remain parallel Angles are not (in general) preserved Less realistic looking

Classical Projections Angel Figure 5.3

Viewing in OpenGL OpenGL has multiple matrix stacks – trans-formation functions right-multiply the top of the stack Two most important stacks: GL_MODELVIEW and GL_PROJECTION Points get multiplied by the modelview matrix first, and then the projection matrix GL_MODELVIEW: Object->Camera GL_PROJECTION: Camera->Screen glViewport(0,0,w,h): Screen->Device

Summary Camera transformation Projection transformation Map 3D world coordinates to 3D camera coordinates Matrix has camera vectors as columns Projection transformation Map 3D camera coordinates to 2D screen coordinates Two types of projections: Parallel Perspective