CSE 167: Introduction to Computer Graphics Lecture #3...
Transcript of CSE 167: Introduction to Computer Graphics Lecture #3...
![Page 1: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/1.jpg)
CSE 167:
Introduction to Computer Graphics
Lecture #3: Coordinate Systems
Jürgen P. Schulze, Ph.D.
University of California, San Diego
Spring Quarter 2015
![Page 2: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/2.jpg)
Announcements
� Project 2 due Friday at 1pm
� Homework 3 discussion on Monday at 4pm
2
![Page 3: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/3.jpg)
Lecture Overview
� Coordinate Transformation
� Typical Coordinate Systems
� Projection
3
![Page 4: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/4.jpg)
Coordinate System
� Given point p in homogeneous coordinates:
� Coordinates describe the point’s 3D position in a coordinate system with basis vectors x, y, z and origin o:
4
![Page 5: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/5.jpg)
Rectangular and Polar Coordinates
5
![Page 6: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/6.jpg)
Coordinate Transformation
New uvwq coordinate system
Goal: Find coordinates of pxyz in new uvwq coordinate system
6
Original xyzo coordinate system
![Page 7: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/7.jpg)
Coordinate Transformation
Express coordinates of xyzo reference frame
with respect to uvwq reference frame:
7
![Page 8: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/8.jpg)
Coordinate Transformation
Point p expressed in new uvwq reference frame:
8
![Page 9: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/9.jpg)
Coordinate Transformation
9
![Page 10: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/10.jpg)
Coordinate Transformation
Inverse transformation
� Given point Puvw w.r.t. reference frame uvwq:
� Coordinates Pxyz w.r.t. reference frame xyzo are calculated as:
10
![Page 11: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/11.jpg)
Lecture Overview
� Concatenating Transformations
� Coordinate Transformation
� Typical Coordinate Systems
� Projection
11
![Page 12: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/12.jpg)
Typical Coordinate Systems
� In computer graphics, we typically use at least three coordinate systems:
� World coordinate system
� Camera coordinate system
� Object coordinate system
World coordinates
Object
coordinates
Camera
coordinates
![Page 13: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/13.jpg)
World Coordinates
� Common reference frame for all objects in the scene
� No standard for coordinate system orientation
� If there is a ground plane, usually x/y is horizontal and z points up (height)
� Otherwise, x/y is often screen plane, z points out of the screen
World coordinates
Object
coordinates
Camera
coordinates
13
![Page 14: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/14.jpg)
Object Coordinates
� Local coordinates in which points and other object geometry are given
� Often origin is in geometric center, on the base, or in a corner of the object
� Depends on how object is generated or used.
World coordinates
Object
coordinates
Camera
coordinates
14
Source: http://motivate.maths.org
![Page 15: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/15.jpg)
Object Transformation
� The transformation from object to world coordinates is different for each object.
� Defines placement of object in scene.
� Given by “model matrix” (model-to-world transformation) M.
15
World coordinates
Object
coordinates
Camera
coordinates
![Page 16: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/16.jpg)
Camera Coordinate System
� Origin defines center of projection of camera
� x-y plane is parallel to image plane
� z-axis is perpendicular to image plane
World coordinates
Object
coordinates
Camera
coordinates
16
![Page 17: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/17.jpg)
Camera Coordinate System
� The Camera Matrix defines the transformation from camera to world coordinates
� Placement of camera in world
World coordinates
Object
coordinates
Camera
coordinates
17
![Page 18: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/18.jpg)
Camera Matrix
� Construct from center of projection e, look at d, up-vector up:
World coordinates
Camera
coordinates
18
![Page 19: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/19.jpg)
Camera Matrix
� Construct from center of projection e, look at d, up-vector up (up in camera coordinate system):
World coordinates
Camera
coordinates
19
![Page 20: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/20.jpg)
Camera Matrix
� z-axis
� x-axis
� y-axis
20
�� =� − �
� − �
�� =� × ��
� × ��
�� = �� × �� =�
�
� =�� �� �� �
0 0 0 1
![Page 21: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/21.jpg)
Transforming Object to Camera Coordinates
� Object to world coordinates: M
� Camera to world coordinates: C
� Point to transform: p
� Resulting transformation equation: p’ = C-1 M p
21
World coordinates
Object
coordinates
Camera
coordinates
![Page 22: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/22.jpg)
Tips for Notation
� Indicate coordinate systems with every point or matrix
� Point: pobject� Matrix: Mobject�world
� Resulting transformation equation:pcamera = (Ccamera�world)
-1 Mobject�world pobject� Helpful hint: in source code use consistent names
� Point: p_object or p_obj or p_o
� Matrix: object2world or obj2wld or o2w
� Resulting transformation equation:wld2cam = inverse(cam2wld);
p_cam = p_obj * obj2wld * wld2cam;
22
![Page 23: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/23.jpg)
Inverse of Camera Matrix
� How to calculate the inverse of the camera matrix C-1?
� Generic matrix inversion is complex and compute-intensive
� Affine transformation matrices can be inverted more easily
� Observation:
� Camera matrix consists of translation and rotation: T x R
� Inverse of rotation: R-1 = RT
� Inverse of translation: T(t)-1 = T(-t)
� Inverse of camera matrix: C-1 = R-1 xT-1
23
![Page 24: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/24.jpg)
Objects in Camera Coordinates
� We have things lined up the way we like them on screen
� x to the right
� y up
� -z into the screen
� Objects to look at are in front of us, i.e. have negative z values
� But objects are still in 3D
� Next step: project scene to 2D plane
24
![Page 25: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/25.jpg)
Lecture Overview
� Concatenating Transformations
� Coordinate Transformation
� Typical Coordinate Systems
� Projection
25
![Page 26: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/26.jpg)
Projection
� Goal:Given 3D points (vertices) in camera coordinates, determine corresponding image coordinates
� Transforming 3D points into 2D is called Projection
� OpenGL supports two types of projection:
� Orthographic Projection (=Parallel Projection)
� Perspective Projection
26
![Page 27: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/27.jpg)
� Can be done by ignoring z-coordinate
� Use camera space xy coordinates as image coordinates
� Project points to x-y plane along parallel lines
� Often used in graphical illustrations, architecture, 3D modeling
Orthographic Projection
27
![Page 28: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/28.jpg)
Perspective Projection
� Most common for computer graphics
� Simplified model of human eye, or camera lens (pinhole camera)
� Things farther away appear to be smaller
� Discovery attributed to Filippo Brunelleschi (Italian architect) in the early 1400’s
28
![Page 29: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/29.jpg)
Pinhole Camera
� San Diego, May 20th, 2012
29
![Page 30: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/30.jpg)
Perspective Projection
� Project along rays that converge in center of projection
2D image plane
Center of
projection
3D scene
30
![Page 31: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/31.jpg)
Perspective Projection
Parallel lines are
no longer parallel,
converge in one point
Earliest example:
La Trinitá (1427) by Masaccio31
![Page 32: CSE 167: Introduction to Computer Graphics Lecture #3 ...ivl.calit2.net/wiki/images/2/2c/03_CoordinateSystemsS15.pdf · Can be done by ignoring z-coordinate Use camera space xy coordinates](https://reader033.fdocuments.in/reader033/viewer/2022042005/5e6fad99642fd22b30176181/html5/thumbnails/32.jpg)
Video
� Professor Ravi Ramamoorthi on Perspective Projection
� http://www.youtube.com/watch?v=VpNJbvZhNCQ
32