Transformations III Week 3, Mon Jan 21

Slides:



Advertisements
Similar presentations
Computer Graphics 2D & 3D Transformation.
Advertisements

Using GLU/GLUT Objects GLU/GLUT provides very simple object primitives glutWireCube glutWireCone gluCylinder glutWireTeapot.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2007 Tamara Munzner Transformations III Week.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Transformations II Week.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Display Lists, Viewing.
University of British Columbia CPSC 314 Computer Graphics May-June 2005 Tamara Munzner Transformations I, II,
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Transformations III Week.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Transformations Week 2,
Transformations II Week 2, Wed Jan 17
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Transformations II Week.
Transformations IV Week 3, Wed Jan 23
© Tamara Munzner University of British Columbia Hierarchical modelling recap: composing transforms recap: composing transforms finish: rendering pipeline.
Objectives Learn to build arbitrary transformation matrices from simple transformations Learn to build arbitrary transformation matrices from simple transformations.
1 Geometrical Transformation Tong-Yee Lee. 2 Modeling Transform Specify transformation for objects Allow definitions of objects in own coordinate systems.
University of British Columbia CPSC 414 Computer Graphics Week 3, Monday 15 Oct 03 © Tamara Munzner 1 Hierarchies, Display Lists recap: matrix hierarchies,
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Transformations III Week.
University of British Columbia © MIchiel van de Panne An Introduction to Computer Animation Michiel van de Panne.
2D Transformations. World Coordinates Translate Rotate Scale Viewport Transforms Hierarchical Model Transforms Putting it all together.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology 3D Engines and Scene Graphs Spring 2012.
TWO DIMENSIONAL GEOMETRIC TRANSFORMATIONS CA 302 Computer Graphics and Visual Programming Aydın Öztürk
Graphics Graphics Korea University kucg.korea.ac.kr Transformations 고려대학교 컴퓨터 그래픽스 연구실.
Transforms Hierarchical Modeling Scene Graphs Using hierarchical modeling techniques in 3D software design Transforms Local basis Matrix math review Matrices.
Week 4 Lecture 1: Hierarchical Modeling Part 1 Based on Interactive Computer Graphics (Angel) - Chapter 10 1 Angel: Interactive Computer Graphics 5E ©
Hierarchical Modeling. Instance Transformation Start with a prototype object (a symbol) Each appearance of the object in the model is an instance – Must.
Transformations Tutorial
1/50 CS148: Introduction to Computer Graphics and Imaging Transforms CS148: Introduction to Computer Graphics and Imaging Transforms.
2 COEN Computer Graphics I Evening’s Goals n Discuss viewing and modeling transformations n Describe matrix stacks and their uses n Show basic geometric.
3D Transformations. Translation x’ = x + tx y’ = y + ty z’ = z + tz P = P’ = T = P’ = T. P tx ty tz xyz1xyz1 x’ y’ z’ 1 x y.
1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 OpenGL Transformations.
Transformations
University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell Hierarchical Modeling.
CS552: Computer Graphics Lecture 4: 2D Graphics. Recap 2D Graphics Coordinate systems 2D Transformations o Translation o Scaling o Rotation Combining.
Learning Objectives Affine transformations Affine transformations Translation Translation Rotation Rotation Scaling Scaling Reflection Reflection Shear.
CS559: Computer Graphics Lecture 13: Hierarchical Modeling and Curves Li Zhang Spring 2010.
1 Geometric Transformations-II Modelling Transforms By Dr.Ureerat Suksawatchon.
Jinxiang Chai CSCE441: Computer Graphics 3D Transformations 0.
CSCE 441: Computer Graphics: Hierarchical Models Jinxiang Chai.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Viewing/Projections I.
The Modelview Stack Lecture 9 Wed, Sep 12, The Modelview Stack OpenGL maintains a stack of matrices. The matrix on top of the stack is the current.
Final Review I University of British Columbia
Math Fundamentals Maths revisit.
Transformations 5 University of British Columbia
Transformations Introduction to Computer Graphics and Animation
IAT 355 Scene Graphs Feb 23, 2017 IAT 355.
Computer Graphics CC416 Week 15 3D Graphics.
Transformations V, Viewing I Week 3, Fri Jan 22
Transformation and Viewing
Computer Graphics - Hierarchical Models-
Transformations 6 University of British Columbia
Geometric Transformations
CSCE 441: Computer Graphics: Hierarchical Models
Chapter 4/5 glMatrixMode Modeling Transformations glTranslate glScale
Transformations 3 University of British Columbia
Transformations IV Week 3, Wed Jan 20
Geometric Transformations
Transformations 4 University of British Columbia
The Modelview Matrix Lecture 8 Mon, Sep 10, 2007.
Three-Dimensional Graphics
Transformations in OpenGL
Geometric Transformations
Geometric Objects and Transformations (II)
Transformations IV Week 3, Mon Jan 22
Transformations II Week 2, Fri Jan 18
CSCE441: Computer Graphics 2D/3D Transformations
Viewing/Projections I Week 3, Fri Jan 25
Transformations IV Week 3, Wed Jan 23
Geometric Transformations
Dr. Chih-Kuo Yeh 葉智國 Computer Graphics Dr. Chih-Kuo Yeh 葉智國
Hierarchical Modeling
CSCE 441: Computer Graphics: Hierarchical Models
Presentation transcript:

Transformations III Week 3, Mon Jan 21 http://www.ugrad.cs.ubc.ca/~cs314/Vjan2008

Readings for Jan 16-25 FCG Chap 6 Transformation Matrices except 6.1.6, 6.3.1 FCG Sect 13.3 Scene Graphs RB Chap Viewing Viewing and Modeling Transforms until Viewing Transformations Examples of Composing Several Transformations through Building an Articulated Robot Arm RB Appendix Homogeneous Coordinates and Transformation Matrices until Perspective Projection RB Chap Display Lists

News Homework 1 out today

Review: 3D Transformations shear(hxy,hxz,hyx,hyz,hzx,hzy) translate(a,b,c) scale(a,b,c)

Review: Composing Transformations Ta Rb != Rb Ta

Review: Composing Transformations which direction to read? right to left interpret operations wrt fixed coordinates moving object left to right interpret operations wrt local coordinates changing coordinate system OpenGL updates current matrix with postmultiply glTranslatef(2,3,0); glRotatef(-90,0,0,1); glVertexf(1,1,1); OpenGL pipeline ordering!

Matrix Composition matrices are convenient, efficient way to represent series of transformations general purpose representation hardware matrix multiply matrix multiplication is associative p′ = (T*(R*(S*p))) p′ = (T*R*S)*p procedure correctly order your matrices! multiply matrices together result is one matrix, multiply vertices by this matrix all vertices easily transformed with one matrix multiply

Rotation About a Point: Moving Object rotate about p by : translate p to origin rotate about origin translate p back FW

Rotation: Changing Coordinate Systems same example: rotation around arbitrary center

Rotation: Changing Coordinate Systems rotation around arbitrary center step 1: translate coordinate system to rotation center

Rotation: Changing Coordinate Systems rotation around arbitrary center step 2: perform rotation

Rotation: Changing Coordinate Systems rotation around arbitrary center step 3: back to original coordinate system

General Transform Composition transformation of geometry into coordinate system where operation becomes simpler typically translate to origin perform operation transform geometry back to original coordinate system

Rotation About an Arbitrary Axis axis defined by two points translate point to the origin rotate to align axis with z-axis (or x or y) perform rotation undo aligning rotations undo translation

Arbitrary Rotation arbitrary rotation: change of basis (bx, by, bz, 1) Y Z X B C A Y Z X (ax, ay, az, 1) (cx, cy, cz, 1) arbitrary rotation: change of basis given two orthonormal coordinate systems XYZ and ABC A’s location in the XYZ coordinate system is (ax, ay, az, 1), ... transformation from one to the other is matrix R whose columns are A,B,C:

Transformation Hierarchies

Transformation Hierarchies scene may have a hierarchy of coordinate systems stores matrix at each level with incremental transform from parent’s coordinate system scene graph road stripe1 stripe2 ... car1 car2 w1 w3 w2 w4

Transformation Hierarchy Example 1 torso head RUarm RLarm Rhand RUleg RLleg Rfoot LUarm LLarm Lhand LUleg LLleg Lfoot world trans(0.30,0,0) rot(z, )

Transformation Hierarchy Example 2 draw same 3D data with different transformations: instancing

Transformation Hierarchies Demo transforms apply to graph nodes beneath http://www.cs.brown.edu/exploratories/freeSoftware/catalogs/scenegraphs.html

Transformation Hierarchies Demo transforms apply to graph nodes beneath http://www.cs.brown.edu/exploratories/freeSoftware/catalogs/scenegraphs.html

Matrix Stacks challenge of avoiding unnecessary computation using inverse to return to origin computing incremental T1 -> T2 Object coordinates World coordinates T1(x) T2(x) T3(x)

Matrix Stacks D = C scale(2,2,2) trans(1,0,0) A B C D glPushMatrix() glPopMatrix() A B C DrawSquare() A B C A B C glPushMatrix() glScale3f(2,2,2) glTranslate3f(1,0,0) DrawSquare() glPopMatrix()

Modularization drawing a scaled square push/pop ensures no coord system change void drawBlock(float k) { glPushMatrix(); glScalef(k,k,k); glBegin(GL_LINE_LOOP); glVertex3f(0,0,0); glVertex3f(1,0,0); glVertex3f(1,1,0); glVertex3f(0,1,0); glEnd(); glPopMatrix(); }

Matrix Stacks advantages practical issues no need to compute inverse matrices all the time modularize changes to pipeline state avoids incremental changes to coordinate systems accumulation of numerical errors practical issues in graphics hardware, depth of matrix stacks is limited (typically 16 for model/view and about 4 for projective matrix)

Transformation Hierarchy Example 3 Fh Fh glLoadIdentity(); glTranslatef(4,1,0); glPushMatrix(); glRotatef(45,0,0,1); glTranslatef(0,2,0); glScalef(2,1,1); glTranslate(1,0,0); glPopMatrix(); Fh Fh Fh Fh Fh F1 FW

Transformation Hierarchy Example 4 glTranslate3f(x,y,0); glRotatef( ,0,0,1); DrawBody(); glPushMatrix(); glTranslate3f(0,7,0); DrawHead(); glPopMatrix(); glTranslate(2.5,5.5,0); DrawUArm(); glTranslate(0,-3.5,0); DrawLArm(); ... (draw other arm) y x

Hierarchical Modelling advantages define object once, instantiate multiple copies transformation parameters often good control knobs maintain structural constraints if well-designed limitations expressivity: not always the best controls can’t do closed kinematic chains keep hand on hip can’t do other constraints collision detection self-intersection walk through walls