INF3320 Computer Graphics and Discrete Geometry
|
|
- Poppy Williams
- 5 years ago
- Views:
Transcription
1 INF3320 Computer Graphics and Discrete Geometry Transforms (part II) Christopher Dyken and Martin Reimers Page 1
2 Transforms (part II) Real Time Rendering book: Transforms (Chapter 4) The Red Book: Viewing (Chapter 3) Homogeneous Coordinates... (Appendix F) Page 2
3 Recap Page 3
4 Vertex transforms Page 4
5 Last time - highlights Coordinate systems Homogenous coordinates and transforms OpenGL matrix stacks Modelview transforms Page 5
6 Modelview transforms Transform vertex coordinates to camera coordinate system Page 6
7 Recap model transforms Two ways to think of model transforms: move local (drawing) coordinate system (read top-down) move objects in global coordinate-system (read bottom-up) glutwiresphere(1.0, 20, 16); /* draw sun */ glrotatef ( year, 0.0, 1.0, 0.0); gltranslatef (2.0, 0.0, 0.0); glrotatef ( day, 0.0, 1.0, 0.0); glutwiresphere(0.2, 10, 8); /* draw smaller planet */ Example on page 173 Page 7
8 Creating Transform Matrices Page 8
9 Designing transforms Example: rotation aound a point Page 9
10 OpenGL Mathematics - the glm templates C++ header-only templates for OpenGL mathematics Math utilities, Vectors, Matrices, Transformations Based on C/GLSL, can use in C++, shaders, CUDA etc Replacements for deprecated functionality (e.g. matrix stacks) E.g make and use a homogenous translation matrix: #include <glm/glm.hpp> //vec3, vec4, ivec4, mat4 glm::mat4 translation = glm::translate(glm::mat4(1.0f), glm::vec3(1.0f, 0.0f, 0.0f)); glm::vec4 point = glm::vec4(1.0f, 0.0f, 0.0f,1.0f)); glm::vec4 translated_point = translation*point; Page 10
11 Displace p with the vector t, p = p + t Translation p z Translation transform matrix x x T (x, y, z) = y z T 1 (x, y, z) = y z OpenGL gltranslate(x,y,z) multiplies the current matrix with T (x, y, z) glm::translate(mat,vec) multiplies mat (matrix) with T (vec) Page 11 t y p x
12 Rotation Rotation in the xy plane: R z (θ) Describe p in polar coordinates, p = [ x, y ] T = ρ [ cos(φ), sin(φ) ] T p is found by adding θ to the angle p = ρ [ cos(φ + θ), sin(φ + θ) ] T y p φ+θ and if we expand the expressions and substitute, we get x = x cos(θ) y sin(θ), y = x sin(θ) + y sin(θ) which in matrix form is [ ] [ ] [ ] x cos(θ) sin(θ) x y = sin(θ) cos(θ) y φ θ p x Page 12
13 Rotation about the x-axis (in the yz-plane) R x (θ) = 0 cos θ sin θ 0 0 sin θ cos θ 0 glrotate(θ, 1, 0, 0) Rotation about the y-axis (in the zx-plane) cos θ 0 sin θ 0 R y (θ) = sin θ 0 cos θ 0 glrotate(θ, 0, 1, 0) Rotation about the z-axis (in the xy-plane) cos θ sin θ 0 0 R z (θ) = sin θ cos θ glrotate(θ, 0, 0, 1) Page 13
14 Rotation θ radians about an arbitrary axis r = [a x, a y, a z ] One strategy is to decompose the operation to simpler operations: 1. Rotate about the x-axis s.t. r = R x (φ x )r is in the y =0-plane: φ x = ([0, a y, a z ], z) 2. rotate about the y-axis s.t. R y (φ y )r is in the x = 0 plane: φ y = ([a x, 0, [a y, a z ] ], z) 3. perform the intended rotation about the z-axis: R z (θ) 4. undo the rotation about the y-axis (R y ( φ y )) 5. undo the rotation about the x-axis (R x ( φ x )) which gives the rotation matrix R r (θ) = R x ( φ x )R y ( φ y )R z (θ)r y (φ y )R x (φ x ). Page 14
15 Rotation θ radians about an arbitrary axis r = [r x, r y, r z ] Another strategy is to change basis: 1. Find an orthonormal basis (r, s, t) for R 3 2. Change basis: M = [r, s, t] T 3. Rotate around x-axis: R x (θ) 4. Change back to cardinal basis: M T = M 1 which gives the rotation matrix R r (θ) = M T R x (θ)m Page 15
16 Direct expression for arbitrary rotation about unit vector r cos θ+(1 cos θ)r 2 x (1 cos θ)r x r y r x sin θ (1 cos θ)r x r z+r y sin θ R r(θ)= (1 cosθ)r x r y+r z sin θ cos θ+(1 cos θ)ry 2 (1 cos θ)r y r z r x sin θ (1 cos θ)r x r z r y sin θ (1 cos θ)r y r z+r x sin θ cos θ+(1 cos θ)rz 2 OpenGL glrotate*(θ, r x, r y, r z ) multiplies current matrix with R r (θ) glm function rotate(m,θ,v) does the same job on M Inverse of a rotation R(θ) 1 = R(θ) T = R( θ) Convention: rotation is clockwise wrt direction Page 16
17 Rigid body transforms Transforms that preserve lengths, angles and handedness M Consists of translations and rotations only Rigid body transforms can be written on the form [ ] R t M = 0 T 1 Simple inverse M 1 = [ R T R T ] t 0 T 1 Two rigid transforms = rigid transform Page 17
18 Scale Scale the coordinates by s = (s x, s y, s z ) Scale transformation matrices s x /s x S(s) = 0 s y s z 0, S(s) 1 = 0 1/s y /s z ( ) i.e. S 1 (s x, s y, s z ) = S( 1 s x, 1 s y, 1 s z ) OpenGL glscale(s x, s y, s z ) multiplies the current matrix with S(s x, s y, s z ) glm::scale(m,s) does the same job on the matrix M Page 18
19 Uniform scale If s x = s y = s z, we scale uniformly. On the right, s = (2, 2, 2) Non-uniform scale Otherwise, we scale non-uniformly. On the right, s = (1, 2, 1) Page 19
20 Scale along an arbitrary direction We can scale along any axis by combining scale and rotation: R z (45 ) S(1, 2, 1) R z ( 45 ) p = R z ( 45 )S(1, 2, 1)R z (45 )p Page 20
21 Shear We shear a shape by adding some of one component onto another. Shear of x by y We add sy to the x coordinate, x = x + sy, y = y, z = z. H xy In matrix form, this is 1 s 0 0 H xy (s) = , s 0 0 H 1 xy (s) = OpenGL Use e.g. glmultmatrix*() to set up shear Page 21
22 Euler transforms Page 22
23 Euler angles In R 2, we combine two rotations by adding the angles Euler transform: combine three rotations in R 3 head/yaw (around y axis) pitch (around x axis) roll (around z axis) Yields a composite rotation, E(h, p, r) = R z (r)r x (p)r y (h) Rotations are generally non-commutative! Other orderings of Euler angle rotations exists as well... Page 23
24 Gimbal lock happens when one axis is rotated to the direction of another = the rotation gets locked... (loose a degree of freedom) R z (r)r x (π/2)r y (h) = R x (π/2)r y (r + h) = R z (r + h)r x (π/2) Euler angles can go into Gimbal lock (so can aeroplane instruments!) Page 24
25 Quaternions Page 25
26 Quaternions The 4D generalization of complex numbers (2D). Complex numbers can describe rotations in R 2. Similarly, quaternions can describe rotations in R 3... and avoids the problems of Euler angles... Page 26
27 Quick re-cap on complex numbers A complex number=point in the complex plane: p = ρ(cos(θ), sin(θ)) = ρe iθ = ρ(cos θ + i sin θ) Im p φ θ+φ p The imaginary unit i has the property i 2 = 1 To rotate φ radians, simply multiply p with r = e iφ θ Re p = pr = ρe iθ e iφ = ρe i(θ+φ) = any rotation achieved with complex number r = 1 Page 27
28 Quaternion definition and properties A quaternion can be regarded a 4-dimensional complex number ˆp = q x i + q y j + q z k + q w (1) where the i, j, and k have the following properties: i 2 = j 2 = k 2 = 1, and ij = k = ji, jk = i = kj, ki = j = ik (2) We often use vector notation for quaternions, ˆp = [ ] T [ q x, q y, q z, q w = q T ] T, q w where q and q w represents the imaginary and real parts respectively Page 28
29 Quaternion properties Quaternions can be added and subtracted The product of two quaternions can be found by writing them on the form (1) and simplify using (2). ˆpˆq = [ The norm of ˆp, p w q + q w p + p q }{{} imaginary part n(ˆp) = ˆp =, p w q w p q }{{} real part q 2 w + q q. ] Quaternion multiplicative identity [0, 1] The conjugate of a quaternion: [q, q w ] = [ q, q w ] The inverse of a quaternion is (from ˆpˆp 1 = [0, 1]) ˆp 1 = 1 ˆp 2 ˆp Page 29
30 Unit quaternions and rotations A unit quaternion is a quaternion for which ˆq = 1 ˆq 1 = ˆq for unit quaternions Unit quaternions can represent arbitrary R 3 rotations: Rotation of 2φ around the unit vector v can be represented by ˆr = [ sin(φ)v, cos(φ) ] T with a homogeneous point p transformed by R v (2φ)p = ˆrpˆr The product of two unit quaternions is a unit quaternion To concatinate rotations ˆqˆrpˆr ˆq = ĉpĉ, ĉ = ˆqˆr The simplicity of the latter is a big advantage! Page 30
31 Rotation matrix from a unit quaternion Given the unit quaternion ˆq = (q x, q y, q z, q w ), the corresponding rotation matrix is given by 1 2(q y q y +q z q z ) 2(q x q y q z q w ) 2(q x q z +q y q w ) R = 2(q x q y +q z q w ) 1 2(q x q x +q z q z ) 2(q y q z q x q w ) 2(q x q z q y q w ) 2(q y q z +q x q w ) 1 2(q x q x +q y q y ) Finding a quaternion from a rotation matrix is slightly more complicated A rotation matrix is orthogonal: R 1 = R T Recall: homogeneous rotation matrix: [ ] R 0 M = 0 T. 1 Page 31
32 Concatenating rotations Two (or more) consecutive rotations can be combined (concatenated) into one new rotation. We can find this new rotation in several ways: 1. Multiply the rotation matrices for each rotation. Because of round-off errors, the matrices become more and more non-orthogonal. Can be fixed by Gram-Schmidt orthogonalization. 2. Multiply the quaternions for each rotation. Round-off errors make the quaternions become less and less unitary. Can be fixed by normalization, i.e. ˆq = 1 ˆq ˆq Normalizing a quaternion is a lot cheaper than orthogonalizing a matrix! Page 32
33 Other uses of quaternions Interpolation between directions / rotations, spherical linear interpolation Rotation that takes one vector s to another vector t 1 2(1 + e) ˆq = [ (s t), ] 2(1 + e) 2 where e = s t Page 33
34 Transforms in glm glm provides quaternions (and Euler angles) All operations like length, normalize, cross, dot, etc, lots of utilities glm::gtc::quaternions glm::gtx::quaternions. Example: glm::quat Q = glm::angleaxis(90.0f, glm::vec3(0, 0, 1)); glm::vec3 euler = glm::gtx::quaternion::eularangles(q); Page 34
35 Projective transforms Page 35
36 Map view volume into canonical view volume Page 36
37 Projection transform Map view volume into canonical view volume [ 1, 1] 3 View volumes are defined by the modelview and projection transforms Objects outside the view volume will be invisible Mapped (x, y, z) represent screen (x, y) and depth (z) coordinates respectively For this we need projections... Page 37
38 Projection types Two types of projections are used in graphics: Orthographic (Orthographic camera model) Perspective (Pinhole camera model) Page 38
39 Orthographic projections Orthographic projections works like an inifinite tele-lens To project a point onto the z = 0 plane: (x, y, z ) = (x, y, 0), Can be performed with 4 4 matrix x x y z = y BUT: Maps all points to the z = 0 plane, also negative z Need to instead map points in a view volume to [ 1, 1] 3 Page 39
40 Specify a view volume by x min, x max, y min, y max, z min, z max Ortographic (affine) transformation by two steps: 1. Translate the center of the view volume to the origin, 2. Scale to cube [ 1, 1] 3, T ( x min+x max 2, y min+y max 2, z min+z max 2 S ( 2 x max x min, 2 y max y min, 2 z max z min ), ), The mapping is thus 2 x max x min 0 0 x min+x max x max x min 2 0 P = ST = y max y min 0 y min+y max y max y min z max z min z min+z max z max z min Page 40
41 Orthogonal projections in OpenGL OpenGL: glortho(xmin,xmax,ymin,ymax,near,far) sets up the GL_PROJECTION matrix P Also, the utility library provides gluortho2d(xmin,xmax,ymin,ymax) which is equivalent with glortho(xmin,xmax,ymin,ymax,-1,1) call glmatrixmode(gl_projection) before projections!!!! Page 41
42 Perspective projection Assume that eye-point at the origin, looking along the negative z-axis, y is up and the projection plane is parallel to the xy-plane positioned at z = d for some d > 0. The projection of p = (x, y, z) is q = (x, y, z ) = ( dx z, dy z, d) Perspective projection is clearly non-affine Page 42
43 Homogeneous matrices can represent perspective projections: A homogeneous point can be arbitrary scaled for any w 0, (x, y, z, 1) is the same point as (wx, wy, wz, w) We can recover the representation (x, y, z, 1) by perspective division, i.e. dividing the coordinates by w We can therefore write the projection as x x y z = y z 0 } 0 1/d {{ 0 1 }}{{} z/d P p division dx/z dy/z dz/z } 1 {{ } p Provides the correct perspective projection but sends all points into the plane z = d. Need to map the view volume injectively to [ 1, 1] 3 Page 43
44 Perspective projection matrix The scalars (l, r, b, t, n, f ) specify a view frustum, with front face corners at (l, b, n) and (r, t, n) and back-face at depth z = f The perspective projection matrix reads P p = 2n r+l r l 0 r l 0 2n t+b 0 t b t b f +n f n 2fn f n With perspective division, maps near/far planes to z = 1 and z = 1 Page 44
45 Perspective projections in OpenGL OpenGL: glfrustum(l,r,b,t,n,f) determines the view frustum and perspective projection matrix P Notice that n and f are positive, however, the near and far planes are at z = n and z = f. An alternative is a function in the utility library, gluperspective(fovy,aspect,near,far) fovy is the field of view in the y direction, aspect is the aspect ratio (width/height) of the window. call glmatrixmode(gl_projection) before projections!!!! glm has similar functions: glm::frustum, glm::perspective etc Page 45
46 Viewport transformation After transformations given by modelview matrix projection matrix perspective division visible geometry has normalized device coordinates in [ 1, 1] 3 Use glviewport(x,y,w,h) to set pixel rectangle to draw in. Use the same aspect-ratio as the frustum to avoid distortion, i.e. w h = r l t b The viewport transformation yields window coordinates and depth (user determined interval e.g. [0, 1]) Page 46
47 Vertex-processing by glm mat4 Projection = glm::perspective(45.0f, 1.33f, 0.1f, 100.f); glm::mat4 ViewTranslate = glm::translate(glm::mat4(1.0f), trans); glm::mat4 ViewRotateX = glm::rotate(viewtranslate, rotate.x, glm::vec3(1.0f, 0.0f, 0.0f)); glm::mat4 View = glm::rotate(viewrotatex, rotate.y, glm::vec3(0.0f, 1.0f, 0.0f)); glm::mat4 Model = glm::scale(glm::mat4(1.0f),glm::vec3(0.5f)); glm::mat4 MVP = Projection * View * Model; glloadmatrixf(value_ptr(mvp)); Page 47
48 The last slide Today: more transformations, Euler angles, quaternions, projections Page 48
49 The last slide Today: more transformations, Euler angles, quaternions, projections Transformations are easy to get wrong... Many ways to get a black screen Remember glmatrixmode Check obvious bugs, e.g. drawing black on black Visualize the model and camera Understand modelview transforms now (or tomorrow)! Next time: Visual appearance Page 49
1 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 informationTransformations: 2D Transforms
1. Translation Transformations: 2D Transforms Relocation of point WRT frame Given P = (x, y), translation T (dx, dy) Then P (x, y ) = T (dx, dy) P, where x = x + dx, y = y + dy Using matrix representation
More informationCS 445 / 645 Introduction to Computer Graphics. Lecture 21 Representing Rotations
CS 445 / 645 Introduction to Computer Graphics Lecture 21 Representing Rotations Parameterizing Rotations Straightforward in 2D A scalar, θ, represents rotation in plane More complicated in 3D Three scalars
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 informationGraphics and Interaction Transformation geometry and homogeneous coordinates
433-324 Graphics and Interaction Transformation geometry and homogeneous coordinates Department of Computer Science and Software Engineering The Lecture outline Introduction Vectors and matrices Translation
More informationCOMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates
COMP30019 Graphics and Interaction Transformation geometry and homogeneous coordinates Department of Computer Science and Software Engineering The Lecture outline Introduction Vectors and matrices Translation
More informationVisual Recognition: Image Formation
Visual Recognition: Image Formation Raquel Urtasun TTI Chicago Jan 5, 2012 Raquel Urtasun (TTI-C) Visual Recognition Jan 5, 2012 1 / 61 Today s lecture... Fundamentals of image formation You should know
More informationTransformations. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico
Transformations Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico Angel: Interactive Computer Graphics 4E Addison-Wesley 25 1 Objectives
More information2D and 3D Transformations AUI Course Denbigh Starkey
2D and 3D Transformations AUI Course Denbigh Starkey. Introduction 2 2. 2D transformations using Cartesian coordinates 3 2. Translation 3 2.2 Rotation 4 2.3 Scaling 6 3. Introduction to homogeneous coordinates
More informationCS612 - Algorithms in Bioinformatics
Fall 2017 Structural Manipulation November 22, 2017 Rapid Structural Analysis Methods Emergence of large structural databases which do not allow manual (visual) analysis and require efficient 3-D search
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 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 information3D Kinematics. Consists of two parts
D Kinematics Consists of two parts D rotation D translation The same as D D rotation is more complicated than D rotation (restricted to z-ais) Net, we will discuss the treatment for spatial (D) rotation
More informationComputer Graphics Geometric Transformations
Computer Graphics 2016 6. Geometric Transformations Hongxin Zhang State Key Lab of CAD&CG, Zhejiang University 2016-10-31 Contents Transformations Homogeneous Co-ordinates Matrix Representations of Transformations
More informationLecture 4. Viewing, Projection and Viewport Transformations
Notes on Assignment Notes on Assignment Hw2 is dependent on hw1 so hw1 and hw2 will be graded together i.e. You have time to finish both by next monday 11:59p Email list issues - please cc: elif@cs.nyu.edu
More informationCSE528 Computer Graphics: Theory, Algorithms, and Applications
CSE528 Computer Graphics: Theory, Algorithms, and Applications Hong Qin Stony Brook University (SUNY at Stony Brook) Stony Brook, New York 11794-2424 Tel: (631)632-845; Fax: (631)632-8334 qin@cs.stonybrook.edu
More informationCSE328 Fundamentals of Computer Graphics
CSE328 Fundamentals of Computer Graphics Hong Qin State University of New York at Stony Brook (Stony Brook University) Stony Brook, New York 794--44 Tel: (63)632-845; Fax: (63)632-8334 qin@cs.sunysb.edu
More information3D Mathematics. Co-ordinate systems, 3D primitives and affine transformations
3D Mathematics Co-ordinate systems, 3D primitives and affine transformations Coordinate Systems 2 3 Primitive Types and Topologies Primitives Primitive Types and Topologies 4 A primitive is the most basic
More informationTransformations. CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science
Transformations CS 537 Interactive Computer Graphics Prof. David E. Breen Department of Computer Science 1 Objectives Introduce standard transformations - Rotation - Translation - Scaling - Shear Derive
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 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 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 informationToday. Today. Introduction. Matrices. Matrices. Computergrafik. Transformations & matrices Introduction Matrices
Computergrafik Matthias Zwicker Universität Bern Herbst 2008 Today Transformations & matrices Introduction Matrices Homogeneous Affine transformations Concatenating transformations Change of Common coordinate
More informationQuaternions & Rotation in 3D Space
Quaternions & Rotation in 3D Space 1 Overview Quaternions: definition Quaternion properties Quaternions and rotation matrices Quaternion-rotation matrices relationship Spherical linear interpolation Concluding
More informationCS354 Computer Graphics Rotations and Quaternions
Slide Credit: Don Fussell CS354 Computer Graphics Rotations and Quaternions Qixing Huang April 4th 2018 Orientation Position and Orientation The position of an object can be represented as a translation
More informationTransforms. COMP 575/770 Spring 2013
Transforms COMP 575/770 Spring 2013 Transforming Geometry Given any set of points S Could be a 2D shape, a 3D object A transform is a function T that modifies all points in S: T S S T v v S Different transforms
More informationLast week. Machiraju/Zhang/Möller/Fuhrmann
Last week Machiraju/Zhang/Möller/Fuhrmann 1 Geometry basics Scalar, point, and vector Vector space and affine space Basic point and vector operations Sided-ness test Lines, planes, and triangles Linear
More informationLecture 5: Transforms II. Computer Graphics and Imaging UC Berkeley CS184/284A
Lecture 5: Transforms II Computer Graphics and Imaging UC Berkeley 3D Transforms 3D Transformations Use homogeneous coordinates again: 3D point = (x, y, z, 1) T 3D vector = (x, y, z, 0) T Use 4 4 matrices
More informationCGT520 Transformations
CGT520 Transformations Bedrich Benes, Ph.D. Purdue University Department of Computer Graphics GLM A concise library for transforms and OpenGL mathematics All overloaded, predefined, optimized glm (OpenGL
More informationObjectives. transformation. General Transformations. Affine Transformations. Notation. Pipeline Implementation. Introduce standard transformations
Objectives Transformations CS Interactive Computer Graphics Prof. David E. Breen Department of Computer Science Introduce standard transformations - Rotation - Translation - Scaling - Shear Derive homogeneous
More informationTransformation Algebra
Transformation Algebra R. J. Renka Department of Computer Science & Engineering University of North Texas 0/07/205 Linear Transformations A point with Cartesian coordinates (x, y, z) is taken to be a column
More informationNotes on Assignment. Notes on Assignment. Notes on Assignment. Notes on Assignment
Notes on Assignment Notes on Assignment Objects on screen - made of primitives Primitives are points, lines, polygons - watch vertex ordering The main object you need is a box When the MODELVIEW matrix
More informationComputer Graphics. Chapter 5 Geometric Transformations. Somsak Walairacht, Computer Engineering, KMITL
Chapter 5 Geometric Transformations Somsak Walairacht, Computer Engineering, KMITL 1 Outline Basic Two-Dimensional Geometric Transformations Matrix Representations and Homogeneous Coordinates Inverse Transformations
More informationCOMP30019 Graphics and Interaction Three-dimensional transformation geometry and perspective
COMP30019 Graphics and Interaction Three-dimensional transformation geometry and perspective Department of Computing and Information Systems The Lecture outline Introduction Rotation about artibrary axis
More informationTransformations. CSCI 420 Computer Graphics Lecture 4
CSCI 420 Computer Graphics Lecture 4 Transformations Jernej Barbic University of Southern California Vector Spaces Euclidean Spaces Frames Homogeneous Coordinates Transformation Matrices [Angel, Ch. 4]
More informationIMAGE-BASED RENDERING AND ANIMATION
DH2323 DGI17 INTRODUCTION TO COMPUTER GRAPHICS AND INTERACTION IMAGE-BASED RENDERING AND ANIMATION Christopher Peters CST, KTH Royal Institute of Technology, Sweden chpeters@kth.se http://kth.academia.edu/christopheredwardpeters
More information521493S Computer Graphics Exercise 2 Solution (Chapters 4-5)
5493S Computer Graphics Exercise Solution (Chapters 4-5). Given two nonparallel, three-dimensional vectors u and v, how can we form an orthogonal coordinate system in which u is one of the basis vectors?
More information2D Image Transforms Computer Vision (Kris Kitani) Carnegie Mellon University
2D Image Transforms 16-385 Computer Vision (Kris Kitani) Carnegie Mellon University Extract features from an image what do we do next? Feature matching (object recognition, 3D reconstruction, augmented
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 informationCMSC427 Transformations II: Viewing. Credit: some slides from Dr. Zwicker
CMSC427 Transformations II: Viewing Credit: some slides from Dr. Zwicker What next? GIVEN THE TOOLS OF The standard rigid and affine transformations Their representation with matrices and homogeneous coordinates
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 informationDrawing in 3D (viewing, projection, and the rest of the pipeline)
Drawing in 3D (viewing, projection, and the rest of the pipeline) CS559 Spring 2017 Lecture 6 February 2, 2017 The first 4 Key Ideas 1. Work in convenient coordinate systems. Use transformations to get
More informationVirtual Cameras and The Transformation Pipeline
Virtual Cameras and The Transformation Pipeline Anton Gerdelan gerdela@scss.tcd.ie with content from Rachel McDonnell 13 Oct 2014 Virtual Camera We want to navigate through our scene in 3d Solution = create
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 informationThe Graphics Pipeline and OpenGL I: Transformations!
! The Graphics Pipeline and OpenGL I: Transformations! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 2! stanford.edu/class/ee267/!! Albrecht Dürer, Underweysung der Messung mit
More information3D Transformations. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 11
3D Transformations CS 4620 Lecture 11 1 Announcements A2 due tomorrow Demos on Monday Please sign up for a slot Post on piazza 2 Translation 3 Scaling 4 Rotation about z axis 5 Rotation about x axis 6
More informationComputer Graphics 7: Viewing in 3-D
Computer Graphics 7: Viewing in 3-D In today s lecture we are going to have a look at: Transformations in 3-D How do transformations in 3-D work? Contents 3-D homogeneous coordinates and matrix based transformations
More informationLecture 4: Transforms. Computer Graphics CMU /15-662, Fall 2016
Lecture 4: Transforms Computer Graphics CMU 15-462/15-662, Fall 2016 Brief recap from last class How to draw a triangle - Why focus on triangles, and not quads, pentagons, etc? - What was specific to triangles
More informationTransformations. CSCI 420 Computer Graphics Lecture 5
CSCI 420 Computer Graphics Lecture 5 Transformations Jernej Barbic University of Southern California Vector Spaces Euclidean Spaces Frames Homogeneous Coordinates Transformation Matrices [Angel, Ch. 3]
More informationCS 4204 Computer Graphics
CS 424 Computer Graphics 2D Transformations Yong Cao Virginia Tech References: Introduction to Computer Graphics course notes by Doug Bowman Interactive Computer Graphics, Fourth Edition, Ed Angle Transformations
More informationTransformations. OpenGL Transformations. 4x4 Model-view Matrix (this lecture) OpenGL Transformation Matrices. 4x4 Projection Matrix (next lecture)
CSCI 420 Computer Graphics Lecture 5 OpenGL Transformations Transformations Vector Spaces Euclidean Spaces Frames Homogeneous Coordinates Transformation Matrices Jernej Barbic [Angel, Ch. 3] University
More informationImage warping , , Computational Photography Fall 2017, Lecture 10
Image warping http://graphics.cs.cmu.edu/courses/15-463 15-463, 15-663, 15-862 Computational Photography Fall 2017, Lecture 10 Course announcements Second make-up lecture on Friday, October 6 th, noon-1:30
More informationOrientation & Quaternions
Orientation & Quaternions Orientation Position and Orientation The position of an object can be represented as a translation of the object from the origin The orientation of an object can be represented
More information12.1 Quaternions and Rotations
Fall 2015 CSCI 420 Computer Graphics 12.1 Quaternions and Rotations Hao Li http://cs420.hao-li.com 1 Rotations Very important in computer animation and robotics Joint angles, rigid body orientations, camera
More informationINTRODUCTION TO COMPUTER GRAPHICS. It looks like a matrix Sort of. Viewing III. Projection in Practice. Bin Sheng 10/11/ / 52
cs337 It looks like a matrix Sort of Viewing III Projection in Practice / 52 cs337 Arbitrary 3D views Now that we have familiarity with terms we can say that these view volumes/frusta can be specified
More informationViewing and Projection
15-462 Computer Graphics I Lecture 5 Viewing and Projection Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective Projections [Angel, Ch. 5.2-5.4] January 30, 2003 [Red
More informationQuaternion Rotations AUI Course Denbigh Starkey
Major points of these notes: Quaternion Rotations AUI Course Denbigh Starkey. What I will and won t be doing. Definition of a quaternion and notation 3 3. Using quaternions to rotate any point around an
More informationViewing and Projection
CSCI 480 Computer Graphics Lecture 5 Viewing and Projection Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective Projections [Geri s Game, Pixar, 1997] January 26, 2011
More informationQuaternions and Rotations
CSCI 420 Computer Graphics Lecture 20 and Rotations Rotations Motion Capture [Angel Ch. 3.14] Rotations Very important in computer animation and robotics Joint angles, rigid body orientations, camera parameters
More informationGeometric Transformations
Geometric Transformations CS 4620 Lecture 9 2017 Steve Marschner 1 A little quick math background Notation for sets, functions, mappings Linear and affine transformations Matrices Matrix-vector multiplication
More informationRotations in 3D Graphics and the Gimbal Lock
Rotations in 3D Graphics and the Gimbal Lock Valentin Koch Autodesk Inc. January 27, 2016 Valentin Koch (ADSK) IEEE Okanagan January 27, 2016 1 / 37 Presentation Road Map 1 Introduction 2 Rotation Matrices
More informationS U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T
S U N G - E U I YO O N, K A I S T R E N D E R I N G F R E E LY A VA I L A B L E O N T H E I N T E R N E T Copyright 2018 Sung-eui Yoon, KAIST freely available on the internet http://sglab.kaist.ac.kr/~sungeui/render
More informationCoordinate transformations. 5554: Packet 8 1
Coordinate transformations 5554: Packet 8 1 Overview Rigid transformations are the simplest Translation, rotation Preserve sizes and angles Affine transformation is the most general linear case Homogeneous
More informationTransformations Week 9, Lecture 18
CS 536 Computer Graphics Transformations Week 9, Lecture 18 2D Transformations David Breen, William Regli and Maxim Peysakhov Department of Computer Science Drexel University 1 3 2D Affine Transformations
More informationCMSC 425: Lecture 6 Affine Transformations and Rotations
CMSC 45: Lecture 6 Affine Transformations and Rotations Affine Transformations: So far we have been stepping through the basic elements of geometric programming. We have discussed points, vectors, and
More informationQuaternions and Rotations
CSCI 480 Computer Graphics Lecture 20 and Rotations April 6, 2011 Jernej Barbic Rotations Motion Capture [Ch. 4.12] University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s11/ 1 Rotations
More informationThe Graphics Pipeline and OpenGL I: Transformations!
! The Graphics Pipeline and OpenGL I: Transformations! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 2! stanford.edu/class/ee267/!! Logistics Update! all homework submissions:
More informationQuaternions and Rotations
CSCI 520 Computer Animation and Simulation Quaternions and Rotations Jernej Barbic University of Southern California 1 Rotations Very important in computer animation and robotics Joint angles, rigid body
More informationInteractive Computer Graphics. Hearn & Baker, chapter D transforms Hearn & Baker, chapter 5. Aliasing and Anti-Aliasing
Interactive Computer Graphics Aliasing and Anti-Aliasing Hearn & Baker, chapter 4-7 D transforms Hearn & Baker, chapter 5 Aliasing and Anti-Aliasing Problem: jaggies Also known as aliasing. It results
More informationRotation with Quaternions
Rotation with Quaternions Contents 1 Introduction 1.1 Translation................... 1. Rotation..................... 3 Quaternions 5 3 Rotations Represented as Quaternions 6 3.1 Dynamics....................
More information2D and 3D Coordinate Systems and Transformations
Graphics & Visualization Chapter 3 2D and 3D Coordinate Systems and Transformations Graphics & Visualization: Principles & Algorithms Introduction In computer graphics is often necessary to change: the
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 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 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 informationJorg s Graphics Lecture Notes Coordinate Spaces 1
Jorg s Graphics Lecture Notes Coordinate Spaces Coordinate Spaces Computer Graphics: Objects are rendered in the Euclidean Plane. However, the computational space is better viewed as one of Affine Space
More informationSUMMARY. CS380: Introduction to Computer Graphics Projection Chapter 10. Min H. Kim KAIST School of Computing 18/04/12. Smooth Interpolation
CS38: Introduction to Computer Graphics Projection Chapter Min H. Kim KAIST School of Computing Smooth Interpolation SUMMARY 2 Cubic Bezier Spline To evaluate the function c(t) at any value of t, we perform
More informationCALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES
CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES YINGYING REN Abstract. In this paper, the applications of homogeneous coordinates are discussed to obtain an efficient model
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 information3D Transformation. In 3D, we have x, y, and z. We will continue use column vectors:. Homogenous systems:. x y z. x y z. glvertex3f(x, y,z);
3D Transformation In 3D, we have x, y, and z. We will continue use column vectors:. Homogenous systems:. 3D Transformation glvertex3f(x, y,z); x y z x y z A Right Handle Coordinate System x y z; y z x;
More informationComputer Graphics: Viewing in 3-D. Course Website:
Computer Graphics: Viewing in 3-D Course Website: http://www.comp.dit.ie/bmacnamee 2 Contents Transformations in 3-D How do transformations in 3-D work? 3-D homogeneous coordinates and matrix based transformations
More information2D/3D Geometric Transformations and Scene Graphs
2D/3D Geometric Transformations and Scene Graphs Week 4 Acknowledgement: The course slides are adapted from the slides prepared by Steve Marschner of Cornell University 1 A little quick math background
More informationMath background. 2D Geometric Transformations. Implicit representations. Explicit representations. Read: CS 4620 Lecture 6
Math background 2D Geometric Transformations CS 4620 Lecture 6 Read: Chapter 2: Miscellaneous Math Chapter 5: Linear Algebra Notation for sets, functions, mappings Linear transformations Matrices Matrix-vector
More informationIntroduction to Computer Graphics 4. Viewing in 3D
Introduction to Computer Graphics 4. Viewing in 3D National Chiao Tung Univ, Taiwan By: I-Chen Lin, Assistant Professor Textbook: E.Angel, Interactive Computer Graphics, 5 th Ed., Addison Wesley Ref: Hearn
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 informationEECE 478. Learning Objectives. Learning Objectives. Linear Algebra and 3D Geometry. Linear algebra in 3D. Coordinate systems
EECE 478 Linear Algebra and 3D Geometry Learning Objectives Linear algebra in 3D Define scalars, points, vectors, lines, planes Manipulate to test geometric properties Coordinate systems Use homogeneous
More informationFall CSCI 420: Computer Graphics. 2.2 Transformations. Hao Li.
Fall 2017 CSCI 420: Computer Graphics 2.2 Transformations Hao Li http://cs420.hao-li.com 1 OpenGL Transformations Matrices Model-view matrix (4x4 matrix) Projection matrix (4x4 matrix) vertices in 3D Model-view
More informationCS452/552; EE465/505. Transformations
CS452/552; EE465/55 Transformations 1-29-15 Outline! Transformations Read: Angel, Chapter 4 (study cube.html/cube.js example) Helpful links: Linear Algebra: Khan Academy Lab1 is posted on github, due:
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 informationViewing and Projection
CSCI 480 Computer Graphics Lecture 5 Viewing and Projection January 25, 2012 Jernej Barbic University of Southern California Shear Transformation Camera Positioning Simple Parallel Projections Simple Perspective
More informationAgenda. Rotations. Camera models. Camera calibration. Homographies
Agenda Rotations Camera models Camera calibration Homographies D Rotations R Y = Z r r r r r r r r r Y Z Think of as change of basis where ri = r(i,:) are orthonormal basis vectors r rotated coordinate
More informationToday. Parity. General Polygons? Non-Zero Winding Rule. Winding Numbers. CS559 Lecture 11 Polygons, Transformations
CS559 Lecture Polygons, Transformations These are course notes (not used as slides) Written by Mike Gleicher, Oct. 005 With some slides adapted from the notes of Stephen Chenney Final version (after class)
More informationComputer Graphics. P04 Transformations. Aleksandra Pizurica Ghent University
Computer Graphics P4 Transformations Aleksandra Pizurica Ghent Universit Telecommunications and Information Processing Image Processing and Interpretation Group Transformations in computer graphics Goal:
More informationGLM. Mike Bailey. What is GLM?
1 GLM This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License Mike Bailey mjb@cs.oregonstate.edu GLM.pptx What is GLM? 2 GLM is a set of C++ classes
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 informationGeometric transformations in 3D and coordinate frames. Computer Graphics CSE 167 Lecture 3
Geometric transformations in 3D and coordinate frames Computer Graphics CSE 167 Lecture 3 CSE 167: Computer Graphics 3D points as vectors Geometric transformations in 3D Coordinate frames CSE 167, Winter
More informationCSC 305 The Graphics Pipeline-1
C. O. P. d y! "#"" (-1, -1) (1, 1) x z CSC 305 The Graphics Pipeline-1 by Brian Wyvill The University of Victoria Graphics Group Perspective Viewing Transformation l l l Tools for creating and manipulating
More informationTransformation. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering
RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON S RBE 550 Transformation Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11 Announcement Project
More informationQuaternions and Euler Angles
Quaternions and Euler Angles Revision #1 This document describes how the VR Audio Kit handles the orientation of the 3D Sound One headset using quaternions and Euler angles, and how to convert between
More informationSpecifying Complex Scenes
Transformations Specifying Complex Scenes (x,y,z) (r x,r y,r z ) 2 (,,) Specifying Complex Scenes Absolute position is not very natural Need a way to describe relative relationship: The lego is on top
More informationUNIT 2 2D TRANSFORMATIONS
UNIT 2 2D TRANSFORMATIONS Introduction With the procedures for displaying output primitives and their attributes, we can create variety of pictures and graphs. In many applications, there is also a need
More information