Affine Transformations Jim Van Verth NVIDIA Corporation

Slides:



Advertisements
Similar presentations
3D Transformations Assist. Prof. Dr. Ahmet Sayar
Advertisements

Computer Graphics: 3D Transformations
Our Friend the Dot Product
Today Composing transformations 3D Transformations
Affine Transformations
1Computer Graphics Homogeneous Coordinates & Transformations Lecture 11/12 John Shearer Culture Lab – space 2
Transformations Ed Angel Professor Emeritus of Computer Science
Computer Graphics Lecture 4 Geometry & Transformations.
Transformations We want to be able to make changes to the image larger/smaller rotate move This can be efficiently achieved through mathematical operations.
Transformations.
Geometric Transformations
HCI 530 : Seminar (HCI) Damian Schofield. HCI 530: Seminar (HCI) Transforms –Two Dimensional –Three Dimensional The Graphics Pipeline.
2D Geometric Transformations
1 CSCE 441 Computer Graphics: 2D Transformations Jinxiang Chai.
3-D Geometry.
Transformations CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
Computer Graphics with OpenGL 3e
Linear Algebra Review CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
2D Transformations x y x y x y. 2D Transformation Given a 2D object, transformation is to change the object’s Position (translation) Size (scaling) Orientation.
2D Transformations Unit - 3. Why Transformations? In graphics, once we have an object described, transformations are used to move that object, scale it.
3D Graphics Goal: To produce 2D images of a mathematically described 3D environment Issues: –Describing the environment: Modeling (mostly later) –Computing.
CS 450: Computer Graphics 2D TRANSFORMATIONS
CS 450: COMPUTER GRAPHICS 3D TRANSFORMATIONS SPRING 2015 DR. MICHAEL J. REALE.
Mathematical Fundamentals
COS 397 Computer Graphics Svetla Boytcheva AUBG, Spring 2013.
CS 480/680 Computer Graphics Representation Dr. Frederick C Harris, Jr. Fall 2012.
Geometric Transformation. So far…. We have been discussing the basic elements of geometric programming. We have discussed points, vectors and their operations.
CS 480/680 Computer Graphics Transformations Dr. Frederick C Harris, Jr.
Graphics Graphics Korea University kucg.korea.ac.kr Transformations 고려대학교 컴퓨터 그래픽스 연구실.
Dx = 2 dy = 3 Y X D Translation A translation is applied to an object by repositioning it along a straight-line path.
CSE 681 Review: Transformations. CSE 681 Transformations Modeling transformations build complex models by positioning (transforming) simple components.
Transformations Jehee Lee Seoul National University.
Geometric Transformations
CS 376 Introduction to Computer Graphics 02 / 16 / 2007 Instructor: Michael Eckmann.
Computer Graphics, KKU. Lecture 51 Transformations Given two frames in an affine space of dimension n, we can find a ( n+1 ) x ( n +1) matrix that.
Transformations Angel Angel: Interactive Computer Graphics5E © Addison-Wesley
Transformations of Objects – 3D
Geometric Objects and Transformation
University of Texas at Austin CS384G - Computer Graphics Fall 2008 Don Fussell Affine Transformations.
Two-Dimensional Geometric Transformations A two dimensional transformation is any operation on a point in space (x, y) that maps that point's coordinates.
Geometric Transformations
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
January 19, y X Z Translations Objects are usually defined relative to their own coordinate system. We can translate points in space to new positions.
CSCI 425/ D Mathematical Preliminaries. CSCI 425/525 2 Coordinate Systems Z X Y Y X Z Right-handed coordinate system Left-handed coordinate system.
Affine Geometry.
Transformations of objects
CS559: Computer Graphics Lecture 9: 3D Transformation and Projection Li Zhang Spring 2010 Most slides borrowed from Yungyu ChuangYungyu Chuang.
Jinxiang Chai CSCE441: Computer Graphics 3D Transformations 0.
Computer Graphics I, Fall 2010 Transformations.
CS 325 Introduction to Computer Graphics 02 / 19 / 2010 Instructor: Michael Eckmann.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Transformations Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
4. Affine transformations. Reading Required:  Watt, Section 1.1. Further reading:  Foley, et al, Chapter  David F. Rogers and J. Alan Adams,
Geometric Transformations Ceng 477 Introduction to Computer Graphics Computer Engineering METU.
Modeling Transformation
Transformations. Modeling Transformations  Specify transformations for objects  Allows definitions of objects in own coordinate systems  Allows use.
Transformations University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016 Tamara Munzner.
Objectives Introduce standard transformations Introduce standard transformations Derive homogeneous coordinate transformation matrices Derive homogeneous.
Geometric Transformations
Transformations Objectives
Computer Graphics CC416 Week 15 3D Graphics.
Computer Graphics Transformations.
Computer Graphics Transformations.
CSC4820/6820 Computer Graphics Algorithms Ying Zhu Georgia State University Transformations.
(c) University of Wisconsin, CS559
2D Geometric Transformations
Transformations Ed Angel
Transformations Ed Angel Professor Emeritus of Computer Science
Isaac Gang University of Mary Hardin-Baylor
Translation in Homogeneous Coordinates
Presentation transcript:

Affine Transformations Jim Van Verth NVIDIA Corporation

Topics »Whats an affine transformation? »How to generate various forms »Things to watch out for

What is it? »A mapping between affine spaces »Preserves lines (& planes) »Preserves parallel lines »But not angles or distances »Can represent as »(note were using column vectors)

Affine Space »Collection of points and vectors »Can be represented using frame »Within frame, vector and point j = (0,1) O i = (1,0)

Affine Transformation »Key idea: map from space to space by using frames Note how axes change ( A ) Note how origin changes ( y )

Example: Translation »Axes dont change Origin moves by y y

Example: Rotation »Axes change »Origin doesnt move But what is A ?

Example: Rotation »Follow the axes: »New axes go in columns of matrix (cos, sin ) (-sin, cos )

Example: Scale »Axes change »Origin doesnt move Again, what is A ?

Example: Scale »Follow the axes: »New axes go in columns of matrix (0, 0.5) (1.5, 0)

Example: Reflection »Axes change »Origin doesnt move But what, oh what, is A ?

Example: Reflection »Follow the axes: »New axes go in columns of matrix (-1, 0) (0, 1)

Example: Shear »Axes change »Origin doesnt move Hey, hey, what is A ?

Example: Shear »Follow the axes: »New axes go in columns of matrix (0.5, 1) (1, 0)

Transform Types »Rigid-body transformation Translation Rotation »Deformable transformation Scale Reflection Shear

Combining Transforms »Simple function composition

Combining Transforms »Order is important! »Scale, then rotate

Combining Transforms »Order is important! »Rotate, then scale

Local and World Frames »Objects built in local frame »Want to place in world frame »Local-to-world transformation »Same basic idea: determine where axes and origin end up in world frame

World to Local Frame »Similar, but in reverse »Want transformation relative to local frame »Often easier to just take the inverse »Example: world-to-view transformation

Inverse »Reverses the effect of a transformation »Easy to do with formula: »For matrix, just use matrix inverse

Matrix Form »Necessary for many APIs »Is easy »Concatenate by matrix multiply »Can be faster on vector architectures »Takes more storage, though

Object-centered Transform »Often get this case »Already have local-to-world transform »Want rotate/scale/whatever around local origin, not world origin »How?

Object-Oriented Transform »One way »Translate to origin »Rotate there »Translate back

Object-Oriented Transform »Using formula: »Translate to origin »Rotate there »Translate back »This works with arbitrary center in world frame!

Alternate Format »Problem: want to Translate object in space and change rotation and scale arbitrarily Handle rotation/scale separately Cant do easily with matrix format or Ax + y form »Involves SVD, Polar decomposition »Messy, but we can do better using…

Rigid Body Transforms »Any sequence of translation and rotation transformations »Not scale, reflection or shear »Object shape is not affected (preserves angles and lengths) »Usually include uniform scale despite this

Alternate Format Scale – one uniform scale factor s Rotation – matrix R Translation – single vector t

Alternate Format Want to concatenate transforms T 1, T 2 in this form, or »Do this by

Alternate Format »Advantages Clear what each part does Easier to change individual elements »Disadvantages Eventually have to convert to 4x4 matrix anyway for renderer/video card 4x4 faster on vector architecture

Alternate Format »Matrix conversion

Inverting Rigid Body Xforms »We can easily invert our rigid body transforms symbolically:

Inverting Rigid Body Xforms (2) »In fact, the result itself may be written as a rigid body transform:

References »Rogers, F. David and J. Alan Adams, Mathematical Elements for Computer Graphics, 2 nd Ed, McGraw-Hill, »Watt, Alan, 3D Computer Graphics, Addison- Wesley, Wokingham, England, 1993.