OpenGL 2D Viewing Pipeline

Slides:



Advertisements
Similar presentations
Computer Graphics Lecture 8 Arbitrary Viewing II: More Projection, Clipping and Mathematics of 3D Viewing.
Advertisements

CS 691 Computational Photography Instructor: Gianfranco Doretto 3D to 2D Projections.
Three Dimensional Viewing
Three-Dimensional Viewing Sang Il Park Sejong University Lots of slides are stolen from Jehee Lee’s.
Two-Dimensional Viewing Jehee Lee Seoul National University.
Viewing Doug James’ CG Slides, Rich Riesenfeld’s CG Slides, Shirley, Fundamentals of Computer Graphics, Chap 7 Wen-Chieh (Steve) Lin Institute of Multimedia.
Projection Projection - the transformation of points from a coordinate system in n dimensions to a coordinate system in m dimensions where m
Computer Graphics (fall 2009)
UBI 516 Advanced Computer Graphics Three Dimensional Viewing
Advanced Computer Graphics Three Dimensional Viewing
3D Viewing.
Viewing Angel Angel: Interactive Computer Graphics5E © Addison-Wesley
Graphics Graphics Korea University cgvr.korea.ac.kr 3D Viewing 고려대학교 컴퓨터 그래픽스 연구실.
OpenGL Geometric Transformations. OpenGL Matrix Stacks Stack processing –The top of the stack is the “current” matrix –glPushMatrix(); // Duplicate the.
Computer Graphics Bing-Yu Chen National Taiwan University.
Three-Dimensional Viewing Jehee Lee Seoul National University.
CS 325 Introduction to Computer Graphics 02 / 22 / 2010 Instructor: Michael Eckmann.
University of North Carolina at Greensboro
2003CS Hons RW778 Graphics1 Chapter 7: Three-Dimensional Viewing Chapter 5: Camera with parallel projection Chapter 5: Camera with parallel projection.
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
Three-Dimensional Viewing
Three-Dimensional Viewing Hearn & Baker Chapter 7
12/24/2015 A.Aruna/Assistant professor/IT/SNSCE 1.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Classical Viewing Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
Rendering Pipeline Fall, D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination.
CS552: Computer Graphics Lecture 11: Orthographic Projection.
CS 376 Introduction to Computer Graphics 02 / 21 / 2007 Instructor: Michael Eckmann.
Viewing Angel Angel: Interactive Computer Graphics5E © Addison-Wesley
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
3 DIMENSIONAL VIEWING Ceng 477 Introduction to Computer Graphics Computer Engineering METU.
Forward Projection Pipeline and Transformations CENG 477 Introduction to Computer Graphics.
Two-Dimensional Viewing Hearn & Baker Chapter 6
Chapter 11 Three-Dimensional Geometric and Modeling Transformations
Three Dimensional Viewing
Visible Surface Detection
Rendering Pipeline Fall, 2015.
Computer Graphics CC416 Week 14 3D Graphics.
University of North Carolina at Greensboro
Transformations contd.
Projection Our 3-D scenes are all specified in 3-D world coordinates
3D Viewing cgvr.korea.ac.kr.
Rendering Pipeline Aaron Bloomfield CS 445: Introduction to Graphics
Clipping Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006
Clipping Polygon Clipping Polygon : Area primitive
Computer Graphics Viewing
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
“Computer Science is no more about computers than astronomy is about telescopes.” Professor Edsger Dijkstra.
CENG 477 Introduction to Computer Graphics
Concepts, algorithms for clipping
3D Clipping.
WINDOWING AND CLIPPING
Three Dimensional Viewing
Lecture 13: Cameras and geometry
WINDOWING AND CLIPPING
Announcements Midterm out today Project 1 demos.
Lecture 13 Clipping & Scan Conversion
Joshua Barczak CMSC 435 UMBC
3D Graphics.
Chap 3 Viewing Pipeline Reading:
Viewing (Projections)
Viewing (Projections)
3D Viewing.
THREE-DIMENSIONAL VIEWING II
THREE-DIMENSIONAL VIEWING
Announcements Midterm out today Project 1 demos.
COMPUTER GRAPHICS Clipping
Presentation transcript:

OpenGL 2D Viewing Pipeline

Two-Dimensional Viewing Two dimensional viewing transformation From world coordinate scene description to device (screen) coordinates

Normalization and Viewport Transformation World coordinate clipping window Normalization square: usually [-1,1]x[-1,1] Device coordinate viewport

Clipping Remove portion of output primitives outside clipping window Two approaches Clip during scan conversion: Per-pixel bounds check Clip analytically, then scan-convert the modified primitives

Two-Dimensional Clipping Point clipping – trivial Line clipping Cohen-Sutherland Cyrus-beck Liang-Barsky Fill-area clipping Sutherland-Hodgeman Weiler-Atherton Curve clipping Text clipping

Polygon Fill-Area Clipping Polyline vs polygon fill-area Early rejection is useful Clipping Window Bounding box of polygon fill area

Sutherland-Hodgman Polygon Clipping Clip against 4 infinite clip edges in succession

Sutherland-Hodgman Polygon Clipping Accept a series of vertices (polygon) and outputs another series of vertices Four possible outputs

Sutherland-Hodgman Polygon Clipping The algorithm correctly clips convex polygons, but may display extraneous lines for concave polygons

Weiler-Atherton Polygon Clipping For an outside-to-inside pair of vertices, follow the polygon boundary For an inside-to-outside pair of vertices, follow the window boundary in a clockwise direction

Weiler-Atherton Polygon Clipping Polygon clipping using nonrectangular polygon clip windows

Text Clipping All-or-none text clipping All-or-non character clipping Using boundary box for the entire text All-or-non character clipping Using boundary box for each individual character Character clipping Vector font: Clip boundary polygons or curves Bitmap font: Clip individual pixels

Three-Dimensional Viewing Sang Il Park Sejong University Lots of slides are stolen from Jehee Lee’s

Viewing Pipeline

Virtual Camera Model Viewing Transformation Projection Transformation The camera position and orientation is determined Projection Transformation The selected view of a 3D scene is projected onto a view plane

General 3D Viewing Pipeline Modeling coordinates (MC) World coordinates (WC) Viewing coordinates (VC) Projection coordinates (PC) Normalized coordinates (NC) Device coordinates (DC)

Viewing-Coordinate Parameters View point (eye point or viewing position) View-plane normal vector N

Viewing-Coordinate Parameters Look-at point Pref View-up vector V N and V are specified in the world coordinates V should be perpendicular to N, but it can be difficult to a direction for V that is precisely perpendicular to N

Viewing-Coordinate Reference Frame The camera orientation is determined by the uvn reference frame u v n

World-to-Viewing Transformation Transformation from world to viewing coordinates Translate the viewing-coordinate origin to the world-coordinate origin Apply rotations to align the u, v, n axes with the world xw, yw, zw axes, respectively u v n

World-to-Viewing Transformation

Perspective Projection Pin-hold camera model Put the optical center (Center Of Projection) at the origin Put the image plane (Projection Plane) in front of the COP The camera looks down the negative z axis we need this if we want right-handed-coordinates This way the image is right-side-up

Parallel Projection Special case of perspective projection Distance from the COP to the PP is infinite Also called “parallel projection” What’s the projection matrix? Image World Slide by Steve Seitz

Taxonomy of Geometric Projections parallel perspective orthographic axonometric oblique trimetric cavalier cabinet dimetric isometric single-point two-point three-point

Orthographic Transformation Preserves relative dimension The center of projection at infinity The direction of projection is parallel to a principle axis Architectural and engineering drawings

Axonometric Transformation Orthogonal projection that displays more than one face of an object Projection plane is not normal to a principal axis, but DOP is perpendicular to the projection plane Isometric, dimetric, trimetric

Oblique Parallel Projections Projection plane is normal to a principal axis, but DOP is not perpendicular to the projection plane Only faces of the object parallel to the projection plane are shown true size and shape

Oblique Parallel Projections www.maptopia.com

Oblique Parallel Projections

Oblique Parallel Projections Typically, f is either 30˚ or 45˚ L1 is the length of the projected side edge Cavalier projections L1 is the same as the original length Cabinet projections L1 is the half of the original length

Oblique Parallel Projections Cavalier projections Cabinet projections

Perspective Projection Pin-hold camera model Put the optical center (Center Of Projection) at the origin Put the image plane (Projection Plane) in front of the COP The camera looks down the negative z axis we need this if we want right-handed-coordinates This way the image is right-side-up

Perspective Projection Projection equations Compute intersection with PP of ray from (x,y,z) to COP Derived using similar triangles (on board) We get the projection by throwing out the last coordinate:

Homogeneous coordinates Is this a linear transformation?

Homogeneous coordinates Trick: add one more coordinate: Converting from homogeneous coordinates homogeneous projection coordinates homogeneous viewing coordinates

Perspective Projection Projection is a matrix multiply using homogeneous coordinates: divide by third coordinate This is known as perspective projection The matrix is the projection matrix Can also formulate as a 4x4 divide by fourth coordinate

Perspective Projection The projection matrix can be much involved, if the COP is different from the origin of the uvn coordinates See the textbook for the detailed matrix

Traditional Classification of Projections Three principle axes of the object is assumed The front, top, and side face of the scene is apparent

Traditional Classification of Projections

Perspective-Projection View Volume Viewing frustum Why do we need near and far clipping plane ?

Normalizing Transformation Transform an arbitrary perspective-projection view volume into the canonical view volume Step 1: from frustum to parallelepiped

Normalizing Transformation Transform an arbitrary perspective-projection view volume into the canonical view volume Step 2: from parallelepiped to normalized

OpenGL 3D Viewing Functions Viewing-transformation function glMatrixMode(GL_MODELVIEW); gluLookAt(x0,y0,z0,xref,yref,zref,vx,vy,vz); Default: gluLookAt(0,0,0, 0,0,-1, 0,1,0); OpenGL orthogonal-projection function glMatrixMode(GL_PROJECTION); gluOrtho(xwmin,xwmax, ywmin,ywmax, dnear,dfar); Default: gluOrtho(-1,1, -1,1, -1,1); Note that dnear and dfar must be assigned positive values znear=-dnear and zfar=-dfar The near clipping plane is the view plane

OpenGL 3D Viewing Functions OpenGL perspective-projection function The projection reference point is the viewing-coordinate origin The near clipping plane is the view plane Symmetric: gluPerspective(theta,aspect,dnear,dfar) General: glFrustum(xwmin,xwmax,ywmin,ywmax,dnear,dfar)