3D Modelling: Animation Fundamentals & Unit Quaternions

Size: px
Start display at page:

Download "3D Modelling: Animation Fundamentals & Unit Quaternions"

Transcription

1 3D Modelling: Animation Fundamentals & Unit Quaternions CITS3003 Graphics & Animation Thanks to both Richard McKenna and Marco Gillies for permission to use their slides as a base.

2 Static objects are boring Look at your project part 1 scene objects they just sit there we can move them to other places and alter the rotation and colour, but they re still pretty boring What about more complicated & interesting shapes? living things vehicles etc. These things are all made up of separate moving parts that are still part of the whole object where I go, my arms go with me 2 Jack Skellington, from The Nightmare Before Christmas

3 Example: Game Player Animation States Think about a First Person Game What game states does the player have? running forward running backwards running sideways jumping falling landing dying (in all sorts of ways) 3 etc. Jack Skellington, from The Nightmare Before Christmas

4 Typical Role of Artist Create a mesh for a game shape/character/vehicle geometry texturing materials Create animation sequences for different game states for that entity NOTE: exporting data from modelling/animation tools so that it can be imported into another application can be tricky. 4

5 Keyframe (Cell) Animation In traditional hand-drawn animation: the senior key artist would draw the keyframes, and the junior artist would fill the in-between frames. We can use a similar approach for computer animation For a 30-fps animation, less than 30 keyframes need to be defined per second: 1. The data (e.g., joint angles of an articulated figure) are assigned to the keyframes 2. In-between frames are interpolated 10-5

6 Again, the positions between frames? The positions between frames must be interpolated. Linear interpolation is commonly used. Assume a time from 0.0 to 1.0 from one keyframe to the next pp ii = pp 1 + tt ii (pp 2 pp 1 ) where pp and pp 1 2 are positions in keyframes 1 and 2; ii is the index of the frame (between the two keyframes) to be interpolated; tt ii =

7 7

8 A Simple Animation Example: A Tank Gun Turret should be able to rotate Gun Barrel should be able to move up and down The wheels should be able to spin Note: keyframes do not need to be equi-distant apart. Keyframe 1: set the initial position of the gun turret Keyframe 2: set the new desired position of the gun turret Keyframe 3: set the new desired position of the gun barrel 8

9 What would be the Tank Hierarchy? Tank hull this is the central parent section Wheels these are children of the hull and are siblings to each other Gun Turret this is another child of the hull Gun Barrel this is the only child of the Gun Turret Thus, where the hull goes, the wheels go when the hull rotates, the wheels rotate Note that the hull, wheels, etc., are represented as 3D meshes (i.e., triangles), so when the hull moves, it is actually the vertices of the triangles being transformed. 9

10 Problems With Interpolating Euler Angles The Euler angles (pitch, yaw, and roll) are often used (e.g. in blender) to represent the rotation angles of a body limb about a body joint, e.g., In keyframe 1 (frame number 11): we have αα 1, ββ 1, and γγ 1 representing the pitch, yaw, and roll angles of a rotation. In keyframe 2 (frame number 21): we have αα 2, ββ 2, and γγ 2 representing the pitch, yaw, and roll angles of another rotation. We need to compute these angles for frames 12 to 20. Unfortunately, the Euler angles are problematic when interpolating: Unexpected rotations would result when we combine the three interpolated angles, e.g. consider interpolating between αα 1 = 170 and αα 2 = 170. Gimbal lock the second transform may align the first and third, leading to 2 degrees of freedom rather than 3 10

11 Gimbal Lock Gimbal lock refers to the situation where a rotation accidentally brings two local coordinate axes align and thus losing 1 degree of freedom (i.e., we are left with two affective rotation axes rather than three). This is a serious problem as using the Euler angles to represent rotations we are not able to rotate about one of the 3 principal axes (xx, yy, and zz) when gambal lock occurs. Some useful youtube demos and explanation about gimbal lock:

12 Can We Avoid Gimbal Lock? Can we avoid gimbal lock in interpolating rotations of keyframes if we want to remain using the Euler angles? Consider the three Euler angles: pitch (θθ xx ), yaw (θθ yy ), and roll (θθ zz ) angles. We can use any of the 6 multiplication orders: 1. RR xx θθ xx RR yy θθ yy RR zz (θθ zz ) 2. RR xx θθ xx RR zz θθ zz RR yy (θθ yy ) 3. RR yy θθ yy RR xx θθ xx RR zz (θθ zz ) 4. RR yy θθ yy RR zz θθ zz RR xx (θθ xx ) 5. RR zz θθ zz RR xx θθ xx RR yy (θθ yy ) 6. RR zz θθ zz RR yy θθ yy RR xx (θθ xx ) Note: as multiplication of matrices is not commutative, the resultant rotation matrix is different for each order. You will need to work out the appropriate Euler angles for each order, so that the resultant rotation matrix is the desired one. If using multiplication order #6 leads to a gimbal lock problem, say, then we can use another multiplication order. Note that this does not eliminate gimbal lock; we only avoid the problem for a particular 12 interpolation.

13 Quaternions An alternative solution is to use unit quaternions. Quaternions are an extension of complex numbers. They are often written as aa + bbbb + cccc + dddd, where aa, bb, cc, dd R, and ii, jj, kk satisfy ii 2 = jj 2 = kk 2 = iiiiii = 1. An alternative representation (and more suitable for representing rotations) is consider quaternions as 4D-vectors qq = (aa, bb, cc, dd). For compactness, we often write this as qq = (aa, vv), where aa R and vv R 3. When aa = 0, we refer to the quaternion as a pure quaternion; when qq = 1, we refer to it as a unit quaternion. Rotations can be represented using unit quaternions. 13

14 Quaternion Advantages Interpolation is easy between 2 quaternions. Smoother animation can be achieved. Compared to matrices, quaternions take up less storage space. Quaternions can be easily converted to matrices for rendering. Quaternions do not suffer from gimbal lock. 14

15 Unit Quaternions are related to Angle-Axis Rotations We use unit quaternions to represent 3D rotations, i.e., if we use qq = (aa, vv) to represent a rotation then we normalize qq so that qq = 1. Any 3D rotation about the origin can be described by defining A rotation axis ww = (ww 1, ww 2, ww 3 ) (assuming that ww = 1) in the 3D space A rotation angle θθ about that axis The corresponding unit quaternion is cos θθ 2, ww sin θθ 2 15

16 Unit Quaternions A Few Examples Rotation about the xx-axis an angle αα: the unit quaternion is cos αα 2, sin αα 2, 0, 0 Rotation about the yy-axis an angle ββ: the unit quaternion is cos ββ 2, 0, sin ββ 2, 0 Rotation about the zz-axis an angle γγ: the unit quaternion is cos γγ 2, 0, 0, sin γγ 2 We know that the inverse of a rotation matrix RR is RR TT. Let qq = (aa, vv) be the quaternion representing RR, then qq 1 = (aa, vv) is the inverse of qq representing RR TT. The quaternion (1, 0, 0, 0) represents the identity matrix (i.e., zero rotation angle). 16

17 Quaternion Multiplication Multiplying two rotation matrices together is equivalent to multiplying two quaternions. The multiplication of two quaternions is defined as follows: Let Then qq 1 = ss 1, vv 1 qq 2 = ss 2, vv 22 qq 1 qq 2 = (ss 1 ss 2 vv 1 vv 2, ss 1 vv 2 + ss 2 vv 1 + vv 1 vv 2 ) Here is cross product, and is dot product. Same as matrix multiplication, quaternion multiplication 17 is not commutative.

18 Quaternion Multiplication (cont.) An easy example that we can verify: Let rotation RR 1 be the rotation rotation x (αα) and let RR 2 be rotation x (ββ). Then we know the resultant rotation RR should be rotation x (αα + ββ). The corresponding unit quaternions are: qq 1 = (cos αα, sin αα, 0, 0) and qq = (cos ββ, sin ββ, 0, 0). 2 2 Applying the multiplication formula, we get cos αα 2 cos ββ 2 sin αα 2 sin(ββ 2) qq = cos αα 2 sin ββ 2 + cos ββ 2 sin(αα 2) 0 0 Recall that qq 1 qq 2 = (ss 1 ss 2 vv 1 vv 2, ss 1 vv 2 + ss 2 vv 1 + vv 1 vv 2 ). Here we have ss 1 = cos(αα 2), ss 2 = cos(ββ 2), vv 1 = (sin αα 2, 0, 0), and vv 2 = (sin ββ 2, 0, 0). 18

19 Quaternion Multiplication (cont.) Using the rules cos AA + BB = cos AA cos BB sin AA sin(bb) and sin AA + BB = sin AA cos BB + cos AA sin (BB) we get the resultant quaternion cos( αα+ββ 2 ) qq = sin αα+ββ which represents the rotation about the x-axis an angle αα + ββ. Recall that qq 1 qq 2 = (ss 1 ss 2 vv 1 vv 2, ss 1 vv 2 + ss 2 vv 1 + vv 1 vv 2 ). Here we have ss 1 = cos(αα 2), ss 2 = cos(ββ 2), vv 1 = (sin αα 2, 0, 0), and vv 2 = (sin ββ 2, 0, 0). 19

20 Rotating Points and Vectors using Quaternions Let pp = (xx, yy, zz) and vv = (uu, vv, ww) be a point and a vector in 3D. Let qq = (aa, ww) be the unit quaternion representing the 3D rotation matrix RR. Suppose that we want to transform pp and vv by RR. i.e., we want to compute pp = RRRR and vv = RRRR. How do we achieve the same result using the unit quaternion qq? We need to rewrite both pp and qq as 4D entities by letting pp = (0, xx, yy, zz) and vv = (0, uu, vv, ww). Then pp = qq pp qq 1 vv = qq vv qq 1 where qq 1 denotes the inverse of qq. As unit quaternions cannot be used for translation, it doesn t matter whether we have a 0 or a 1 here. Both the outputs ppp and vvv are 4D entities. Their 1 st components would be 0. To convert them back to the 3D space, we can simply drop the 1 st component. Unit quaternions cannot be used for scaling and translation. 20

21 Interpolating Quaternions 2 ways of interpolating quaternions LERP (Linear interpolation) LERP(qq 0, qq 1, tt) = (1 tt)qq 0 + ttqq 1 The interpolated quaternion for a given t value. qq 1 LERP θθ SLERP qq 0 SLERP (spherical linear interpolation) SLERP qq 0, qq 1, tt = sin (1 tt)θθ qq 0 sin (θθ) + sin (ttθθ)qq 1 sin (θθ) where qq 0 and qq 1 are the quaternions that describe the initial and final orientations (= rotation), parameter tt = 0 1, and θθ is the angle between qq 0 and qq 1, i.e., θθ = arccos qq 0 qq 1 21

22 Interpolating Quaternions (cont.) SLERP qq 0, qq 1, tt = sin (1 tt)θθ sin (θθ) qq 0 + sin (ttθθ) sin (θθ) qq 1 Note that SLERP is usually implemented slightly differently in practice. Also, normalization would be required since the two weights do not sum to 1. What we aim to achieve is the shortest trajectory (the geodesic) that brings the initial orientation qq 0 of the object to its final orientation qq 1. Mathematically, we find qq such that qq 1 = qq qq 0, i.e., 1 qq = qq 1 qq 0 then at each tt 0,1, the interpolated quaternion is computed as qq tt qq weights

23 Interpolating Quaternions (cont.) One last thing to note: The unit quaternion is not a unique representation for rotations. E.g, both qq = (aa, vv) and qq = ( aa, vv) represent the same rotation. If one corresponds to a 160 rotation then the other corresponds to a 200 in the other direction. To avoid interpolating along a longer path, we should change the sign of the quaternion so that its 1 st component (representing cos θθ/2 ) is always positive. This will ensure that the rotation angle θθ is always less than

24 The easiest way to convert a unit quaternion qq = (aa, vv) to a 3 3 rotation matrix RR is using the Rodriques rotation formula: where Converting Unit Quaternions to Rotation Matrices RR = II + sin θθ skew vv + 1 cos θθ vv vv TT RR TT = II sin θθ skew vv + 1 cos θθ vv vv TT II denotes the 3 3 identity matrix; θθ can be obtained from the 1 st component of qq as follows: θθ = 2 arccos aa ; skew vv denotes the skew-symmetric matrix composed from the elements of vv = (vv 1, vv 2, vv 3 ): 0 vv 3 vv 2 skew vv = vv 3 0 vv 1 vv 2 vv

25 Quaternions in OpenGL? OpenGL doesn t support them directly, but implementing quaternions is not difficult. So what do we do? 1. do all the rotation interpolation between frames using unit quaternions. 2. convert the interpolated results to matrices and combine them with the necessary translation and scaling matrices. 3. pass the resultant matrices to the vertex shader. Can also use dual quaternions instead: [ Dual quaternions have recently been used for better blending by representing combined rotations and translations. See: ] 25

26 Summary In summary, to generate smooth animation, we do the following: Define the pose (orientation/rotation and position) of each object in keyframes. Option 1 (preferred): Try to use quaternions to represent rotations to avoid gimbal lock. Interpolate quaternions to get the rotations for the in-between frames. Get the resultant rotation matrices for these frames. Option 2: Try to avoid gimbal lock by change the order of applying the roll, pitch, and yaw in the rotation. Will need different orders for different parts of the animation. Combine the rotation with scaling and translation etc to get the resultant transformation matrices for the vertex shader. 26

27 References Useful references on the web: Wikipedia: Youtube: Quaternion and quaternion interpolation : Comparing LERP and SLERP: 27

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation

Animation. Keyframe animation. CS4620/5620: Lecture 30. Rigid motion: the simplest deformation. Controlling shape for animation Keyframe animation CS4620/5620: Lecture 30 Animation Keyframing is the technique used for pose-to-pose animation User creates key poses just enough to indicate what the motion is supposed to be Interpolate

More information

Lecture 9: Transformations. CITS3003 Graphics & Animation

Lecture 9: Transformations. CITS3003 Graphics & Animation Lecture 9: Transformations CITS33 Graphics & Animation E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 212 Objectives Introduce standard transformations Rotation Translation Scaling

More information

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala Animation CS 4620 Lecture 32 Cornell CS4620 Fall 2015 1 What is animation? Modeling = specifying shape using all the tools we ve seen: hierarchies, meshes, curved surfaces Animation = specifying shape

More information

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala Animations Hakan Bilen University of Edinburgh Computer Graphics Fall 2017 Some slides are courtesy of Steve Marschner and Kavita Bala Animation Artistic process What are animators trying to do? What tools

More information

Shading II. CITS3003 Graphics & Animation

Shading II. CITS3003 Graphics & Animation Shading II CITS3003 Graphics & Animation Objectives Introduce distance terms to the shading model. More details about the Phong model (lightmaterial interaction). Introduce the Blinn lighting model (also

More information

CS770/870 Spring 2017 Quaternions

CS770/870 Spring 2017 Quaternions CS770/870 Spring 2017 Quaternions Primary resources used in preparing these notes: 1. van Osten, 3D Game Engine Programming: Understanding Quaternions, https://www.3dgep.com/understanding-quaternions 2.

More information

IMAGE-BASED RENDERING AND ANIMATION

IMAGE-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 information

CS354 Computer Graphics Rotations and Quaternions

CS354 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 information

Fundamentals of Computer Animation

Fundamentals of Computer Animation Fundamentals of Computer Animation Quaternions as Orientations () page 1 Multiplying Quaternions q1 = (w1, x1, y1, z1); q = (w, x, y, z); q1 * q = ( w1.w - v1.v, w1.v + w.v1 + v1 X v) where v1 = (x1, y1,

More information

Texture Mapping. Michael Kazhdan ( /467) HB Ch. 14.8,14.9 FvDFH Ch. 16.3, , 16.6

Texture Mapping. Michael Kazhdan ( /467) HB Ch. 14.8,14.9 FvDFH Ch. 16.3, , 16.6 Texture Mapping Michael Kazhdan (61.457/467) HB Ch. 14.8,14.9 FvDFH Ch. 16.3, 16.4.5, 16.6 Textures We know how to go from this to this J. Birn Textures But what about this to this? J. Birn Textures How

More information

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics Computer Animation Fundamentals Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics Lecture 21 6.837 Fall 2001 Conventional Animation Draw each frame of the animation great control

More information

3D Transformations. CS 4620 Lecture Kavita Bala w/ prior instructor Steve Marschner. Cornell CS4620 Fall 2015 Lecture 11

3D 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 information

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala Animation CS 4620 Lecture 33 Cornell CS4620 Fall 2015 1 Announcements Grading A5 (and A6) on Monday after TG 4621: one-on-one sessions with TA this Friday w/ prior instructor Steve Marschner 2 Quaternions

More information

Rotations in 3D Graphics and the Gimbal Lock

Rotations 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 information

CS354 Computer Graphics Character Animation and Skinning

CS354 Computer Graphics Character Animation and Skinning Slide Credit: Don Fussell CS354 Computer Graphics Character Animation and Skinning Qixing Huang April 9th 2018 Instance Transformation Start with a prototype object (a symbol) Each appearance of the object

More information

Animation and Quaternions

Animation and Quaternions Animation and Quaternions Partially based on slides by Justin Solomon: http://graphics.stanford.edu/courses/cs148-1-summer/assets/lecture_slides/lecture14_animation_techniques.pdf 1 Luxo Jr. Pixar 1986

More information

Motivation. Parametric Curves (later Surfaces) Outline. Tangents, Normals, Binormals. Arclength. Advanced Computer Graphics (Fall 2010)

Motivation. Parametric Curves (later Surfaces) Outline. Tangents, Normals, Binormals. Arclength. Advanced Computer Graphics (Fall 2010) Advanced Computer Graphics (Fall 2010) CS 283, Lecture 19: Basic Geometric Concepts and Rotations Ravi Ramamoorthi http://inst.eecs.berkeley.edu/~cs283/fa10 Motivation Moving from rendering to simulation,

More information

Quaternions and Rotations

Quaternions 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 information

Kinematics and Orientations

Kinematics and Orientations Kinematics and Orientations Hierarchies Forward Kinematics Transformations (review) Euler angles Quaternions Yaw and evaluation function for assignment 2 Building a character Just translate, rotate, and

More information

Orientation & Quaternions

Orientation & 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 information

CS 475 / CS 675 Computer Graphics. Lecture 16 : Interpolation for Animation

CS 475 / CS 675 Computer Graphics. Lecture 16 : Interpolation for Animation CS 475 / CS 675 Computer Graphics Lecture 16 : Interpolation for Keyframing Selected (key) frames are specified. Interpolation of intermediate frames. Simple and popular approach. May give incorrect (inconsistent)

More information

Lesson 1: Why Move Things Around?

Lesson 1: Why Move Things Around? NYS COMMON CORE MATHEMATICS CURRICULUM Lesson 1 8 2 Lesson 1: Why Move Things Around? Classwork Exploratory Challenge a Describe, intuitively, what kind of transformation is required to move the figure

More information

3D Transformations. CS 4620 Lecture 10. Cornell CS4620 Fall 2014 Lecture Steve Marschner (with previous instructors James/Bala)

3D Transformations. CS 4620 Lecture 10. Cornell CS4620 Fall 2014 Lecture Steve Marschner (with previous instructors James/Bala) 3D Transformations CS 4620 Lecture 10 1 Translation 2 Scaling 3 Rotation about z axis 4 Rotation about x axis 5 Rotation about y axis 6 Properties of Matrices Translations: linear part is the identity

More information

Quaternions and Rotations

Quaternions 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 information

Computer Animation II

Computer Animation II Computer Animation II Orientation interpolation Dynamics Some slides courtesy of Leonard McMillan and Jovan Popovic Lecture 13 6.837 Fall 2002 Interpolation Review from Thursday Splines Articulated bodies

More information

Quaternions & Rotation in 3D Space

Quaternions & 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 information

ME5286 Robotics Spring 2015 Quiz 1

ME5286 Robotics Spring 2015 Quiz 1 Page 1 of 7 ME5286 Robotics Spring 2015 Quiz 1 Total Points: 30 You are responsible for following these instructions. Please take a minute and read them completely. 1. Put your name on this page, any other

More information

3D Rotations and Complex Representations. Computer Graphics CMU /15-662, Fall 2017

3D Rotations and Complex Representations. Computer Graphics CMU /15-662, Fall 2017 3D Rotations and Complex Representations Computer Graphics CMU 15-462/15-662, Fall 2017 Rotations in 3D What is a rotation, intuitively? How do you know a rotation when you see it? - length/distance is

More information

12.1 Quaternions and Rotations

12.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 information

CS 432 Interactive Computer Graphics

CS 432 Interactive Computer Graphics CS 432 Interactive Computer Graphics Lecture 4 3D Viewing Matt Burlick - Drexel University - CS 432 1 Reading Angel Chapters 3-4 Red Book Chapter 5, Appendix E Matt Burlick - Drexel University - CS 432

More information

Quaternion properties: addition. Introduction to quaternions. Quaternion properties: multiplication. Derivation of multiplication

Quaternion properties: addition. Introduction to quaternions. Quaternion properties: multiplication. Derivation of multiplication Introduction to quaternions Definition: A quaternion q consists of a scalar part s, s, and a vector part v ( xyz,,, v 3 : q where, [ s, v q [ s, ( xyz,, q s+ ix + jy + kz i 2 j 2 k 2 1 ij ji k k Quaternion

More information

Eureka Math. Precalculus, Module 4. Student File_B. Contains Exit Ticket and Assessment Materials

Eureka Math. Precalculus, Module 4. Student File_B. Contains Exit Ticket and Assessment Materials A Story of Functions Eureka Math Precalculus, Module 4 Student File_B Contains Exit Ticket and Assessment Materials Published by the non-profit Great Minds. Copyright 2015 Great Minds. No part of this

More information

Eureka Math. Geometry, Module 4. Student File_B. Contains Exit Ticket, and Assessment Materials

Eureka Math. Geometry, Module 4. Student File_B. Contains Exit Ticket, and Assessment Materials A Story of Functions Eureka Math Geometry, Module 4 Student File_B Contains Exit Ticket, and Assessment Materials Published by the non-profit Great Minds. Copyright 2015 Great Minds. No part of this work

More information

Game Programming. Bing-Yu Chen National Taiwan University

Game Programming. Bing-Yu Chen National Taiwan University Game Programming Bing-Yu Chen National Taiwan University Character Motion Hierarchical Modeling Character Animation Motion Editing 1 Hierarchical Modeling Connected primitives 2 3D Example: A robot arm

More information

Chapter 5.2 Character Animation

Chapter 5.2 Character Animation Chapter 5.2 Character Animation Overview Fundamental Concepts Animation Storage Playing Animations Blending Animations Motion Extraction Mesh Deformation Inverse Kinematics Attachments & Collision Detection

More information

Animation Curves and Splines 2

Animation Curves and Splines 2 Animation Curves and Splines 2 Animation Homework Set up Thursday a simple avatar E.g. cube/sphere (or square/circle if 2D) Specify some key frames (positions/orientations) Associate Animation a time with

More information

Lecture 22 of 41. Animation 2 of 3: Rotations, Quaternions Dynamics & Kinematics

Lecture 22 of 41. Animation 2 of 3: Rotations, Quaternions Dynamics & Kinematics Animation 2 of 3: Rotations, Quaternions Dynamics & Kinematics William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://bit.ly/hgvxlh / http://bit.ly/evizre Public

More information

Lecture 22 of 41. Animation 2 of 3: Rotations, Quaternions Dynamics & Kinematics

Lecture 22 of 41. Animation 2 of 3: Rotations, Quaternions Dynamics & Kinematics Animation 2 of 3: Rotations, Quaternions Dynamics & Kinematics William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://bit.ly/hgvxlh / http://bit.ly/evizre Public

More information

CMSC 425: Lecture 10 Skeletal Animation and Skinning

CMSC 425: Lecture 10 Skeletal Animation and Skinning CMSC 425: Lecture 10 Skeletal Animation and Skinning Reading: Chapt 11 of Gregory, Game Engine Architecture. Recap: Last time we introduced the principal elements of skeletal models and discussed forward

More information

Lesson 24: Matrix Notation Encompasses New Transformations!

Lesson 24: Matrix Notation Encompasses New Transformations! Classwork Example 1 Determine the following: a. 1 0 0 1 3 b. 1 0 7 0 1 1 c. 1 0 3 5 0 1 1 d. 1 0 3 1 0 1 7 6 e. 9 1 0 1 3 1 0 1 f. 1 0 cc aa 0 1 bb dd xx yy 0 g. 1 zz ww 0 1 Date: 1/5/15 S.14 Example Can

More information

3D Modeling: Skinning

3D Modeling: Skinning 3D Modeling: Skinning CITS3003 Graphics & Animation Thanks to both Richard McKenna and Marco Gillies for permission to use their slides as a base. The second half of this lecture was extracted from the

More information

TRIGONOMETRY. T.1 Angles and Degree Measure

TRIGONOMETRY. T.1 Angles and Degree Measure 403 TRIGONOMETRY Trigonometry is the branch of mathematics that studies the relations between the sides and angles of triangles. The word trigonometry comes from the Greek trigōnon (triangle) and metron

More information

For each question, indicate whether the statement is true or false by circling T or F, respectively.

For 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 information

Fundamentals of Computer Animation

Fundamentals of Computer Animation Fundamentals of Computer Animation Orientation and Rotation University of Calgary GraphicsJungle Project CPSC 587 5 page Motivation Finding the most natural and compact way to present rotation and orientations

More information

COMP 175 COMPUTER GRAPHICS. Lecture 07: Scene Graph. COMP 175: Computer Graphics March 10, Remco Chang 07 Scene Graph

COMP 175 COMPUTER GRAPHICS. Lecture 07: Scene Graph. COMP 175: Computer Graphics March 10, Remco Chang 07 Scene Graph Lecture 07: Scene Graph COMP 175: Computer Graphics March 10, 2015 1/47 Refresher: OpenGL Matrix Transformation Pipeline Input: list of 3D coordinates (x, y, z) GL_MODELVIEW Model transform View transform

More information

Animation. CS 465 Lecture 22

Animation. CS 465 Lecture 22 Animation CS 465 Lecture 22 Animation Industry production process leading up to animation What animation is How animation works (very generally) Artistic process of animation Further topics in how it works

More information

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Collision Detection. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering RBE 550 MOTION PLANNING BASED ON DR. DMITRY BERENSON S RBE 550 Collision Detection Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering http://users.wpi.edu/~zli11 Euler Angle RBE

More information

Real Time Skin Deformation with Bones Blending

Real Time Skin Deformation with Bones Blending Real Time Skin Deformation with Bones Blending Ladislav Kavan Charles University Faculty of Mathematics and Physics Malostranske nam. 25 118 00 Prague 1, Czech Republic lkav8604@ss1000.ms.mff.cuni.cz Jiří

More information

2D/3D Geometric Transformations and Scene Graphs

2D/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 information

Quaternions and Rotations

Quaternions 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 information

Section 1: Introduction to Geometry Points, Lines, and Planes

Section 1: Introduction to Geometry Points, Lines, and Planes Section 1: Introduction to Geometry Points, Lines, and Planes Topic 1: Basics of Geometry - Part 1... 3 Topic 2: Basics of Geometry Part 2... 5 Topic 3: Midpoint and Distance in the Coordinate Plane Part

More information

Blending & State Machines. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017

Blending & State Machines. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017 Blending & State Machines CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017 Blending & Sequencing Now that we understand how a character rig works and how to manipulate animation

More information

Math for Gameplay / AI. John O Brien Senior Gameplay Programmer Insomniac Games, Inc

Math for Gameplay / AI. John O Brien Senior Gameplay Programmer Insomniac Games, Inc Math for Gameplay / AI John O Brien Senior Gameplay Programmer Insomniac Games, Inc jobrien@insomniacgames.com jobrien@nc.rr.com Overview Basic Object Intersection Tests Real gameplay example(s) AI-specific

More information

CS 130 Final. Fall 2015

CS 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 information

Quaternions and Rotations

Quaternions 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 information

Geometric Transformations

Geometric 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 information

Visual Recognition: Image Formation

Visual 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 information

3D Kinematics. Consists of two parts

3D 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 information

Animation. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 4/23/07 1

Animation. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd 4/23/07 1 Animation Computer Graphics COMP 770 (236) Spring 2007 Instructor: Brandon Lloyd 4/23/07 1 Today s Topics Interpolation Forward and inverse kinematics Rigid body simulation Fluids Particle systems Behavioral

More information

Animation. Animation

Animation. Animation CS475m - Computer Graphics Lecture 5 : Interpolation for Selected (key) frames are specified. Interpolation of intermediate frames. Simple and popular approach. May give incorrect (inconsistent) results.

More information

3.6: First Person Computer Games

3.6: First Person Computer Games 3.6: First Person Computer Games Projections of 3-D Objects Alice is an educational software program that uses a 3-D environment to teach students programming. If you have not done so already, please download

More information

Animation COM3404. Richard Everson. School of Engineering, Computer Science and Mathematics University of Exeter

Animation COM3404. Richard Everson. School of Engineering, Computer Science and Mathematics University of Exeter Animation COM3404 Richard Everson School of Engineering, Computer Science and Mathematics University of Exeter R.M.Everson@exeter.ac.uk http://www.secamlocal.ex.ac.uk/studyres/com304 Richard Everson Animation

More information

CS 432 Interactive Computer Graphics

CS 432 Interactive Computer Graphics CS 432 Interactive Computer Graphics Lecture 6 Part 2 Lighting and Shading in OpenGL Matt Burlick - Drexel University - CS 430 1 OpenGL Shading Need Vertex Normals Material properties Lights Position of

More information

Lab 2A Finding Position and Interpolation with Quaternions

Lab 2A Finding Position and Interpolation with Quaternions Lab 2A Finding Position and Interpolation with Quaternions In this Lab we will learn how to use the RVIZ Robot Simulator, Python Programming Interpreter and ROS tf library to study Quaternion math. There

More information

Computer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail

Computer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail Computer Graphics CS 54 Lecture 1a Curves, Tesselation/Geometry Shaders & Level of Detail Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) So Far Dealt with straight lines

More information

HIERARCHICAL TRANSFORMATIONS A Practical Introduction

HIERARCHICAL TRANSFORMATIONS A Practical Introduction HIERARCHICAL TRANSFORMATIONS A Practical Introduction Christopher Peters HPCViz, KTH Royal Institute of Technology, Sweden chpeters@kth.se https://www.kth.se/profile/chpeters/ Transformations Many objects

More information

Visit MathNation.com or search "Math Nation" in your phone or tablet's app store to watch the videos that go along with this workbook!

Visit MathNation.com or search Math Nation in your phone or tablet's app store to watch the videos that go along with this workbook! Topic 1: Introduction to Angles - Part 1... 47 Topic 2: Introduction to Angles Part 2... 50 Topic 3: Angle Pairs Part 1... 53 Topic 4: Angle Pairs Part 2... 56 Topic 5: Special Types of Angle Pairs Formed

More information

Therefore, after becoming familiar with the Matrix Method, you will be able to solve a system of two linear equations in four different ways.

Therefore, after becoming familiar with the Matrix Method, you will be able to solve a system of two linear equations in four different ways. Grade 9 IGCSE A1: Chapter 9 Matrices and Transformations Materials Needed: Straightedge, Graph Paper Exercise 1: Matrix Operations Matrices are used in Linear Algebra to solve systems of linear equations.

More information

Coordinate Transformations. Coordinate Transformation. Problem in animation. Coordinate Transformation. Rendering Pipeline $ = $! $ ! $!

Coordinate Transformations. Coordinate Transformation. Problem in animation. Coordinate Transformation. Rendering Pipeline $ = $! $ ! $! Rendering Pipeline Another look at rotation Photography: real scene camera (captures light) photo processing Photographic print processing Computer Graphics: 3D models camera tone model reproduction (focuses

More information

3D Transformations and Complex Representations. Computer Graphics CMU /15-662, Fall 2016

3D Transformations and Complex Representations. Computer Graphics CMU /15-662, Fall 2016 3D Transformations and Complex Representations Computer Graphics CMU 15-462/15-662, Fall 2016 Quiz 4: Trees and Transformations Student solutions (beautiful!): Rotations in 3D What is a rotation, intuitively?

More information

Section 6: Triangles Part 1

Section 6: Triangles Part 1 Section 6: Triangles Part 1 Topic 1: Introduction to Triangles Part 1... 125 Topic 2: Introduction to Triangles Part 2... 127 Topic 3: rea and Perimeter in the Coordinate Plane Part 1... 130 Topic 4: rea

More information

Eureka Math. Grade 7, Module 6. Student File_A. Contains copy-ready classwork and homework

Eureka Math. Grade 7, Module 6. Student File_A. Contains copy-ready classwork and homework A Story of Ratios Eureka Math Grade 7, Module 6 Student File_A Contains copy-ready classwork and homework Published by the non-profit Great Minds. Copyright 2015 Great Minds. No part of this work may be

More information

Object Representation Affine Transforms. Polygonal Representation. Polygonal Representation. Polygonal Representation of Objects

Object Representation Affine Transforms. Polygonal Representation. Polygonal Representation. Polygonal Representation of Objects Object Representation Affine Transforms Polygonal Representation of Objects Although perceivable the simplest form of representation they can also be the most problematic. To represent an object polygonally,

More information

MODELING AND HIERARCHY

MODELING AND HIERARCHY MODELING AND HIERARCHY Introduction Models are abstractions of the world both of the real world in which we live and of virtual worlds that we create with computers. We are all familiar with mathematical

More information

Outline. CE318: Games Console Programming Lecture 3: 3D Games and Cameras. Outline. 3D Vectors. Diego Perez. 3D Principles. 3D Models.

Outline. CE318: Games Console Programming Lecture 3: 3D Games and Cameras. Outline. 3D Vectors. Diego Perez. 3D Principles. 3D Models. Outline Lecture 3: 3D Games and Cameras 1 3D Principles Diego Perez 2 3D Models 3 Cameras 4 Lab Session 3 dperez@essex.ac.uk Office 3A.526 2014/15 Outline 2 / 50 3D Vectors A 3D vector is a geometric object

More information

Working With 3D Rotations. Stan Melax Graphics Software Engineer, Intel

Working With 3D Rotations. Stan Melax Graphics Software Engineer, Intel Working With 3D Rotations Stan Melax Graphics Software Engineer, Intel Human Brain is wired for Spatial Computation Which shape is the same: a) b) c) I don t need to ask for directions Translations A childhood

More information

Inertial Measurement Units II!

Inertial Measurement Units II! ! Inertial Measurement Units II! Gordon Wetzstein! Stanford University! EE 267 Virtual Reality! Lecture 10! stanford.edu/class/ee267/!! wikipedia! Polynesian Migration! Lecture Overview! short review of

More information

Animating orientation. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University

Animating orientation. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University Animating orientation CS 448D: Character Animation Prof. Vladlen Koltun Stanford University Orientation in the plane θ (cos θ, sin θ) ) R θ ( x y = sin θ ( cos θ sin θ )( x y ) cos θ Refresher: Homogenous

More information

Tutorial 2 Part B: The View Matrix & Frame Rates

Tutorial 2 Part B: The View Matrix & Frame Rates Tutorial 2 Part B: The View Matrix & Frame Rates Summary Now that you can move your objects around in world space, you re probably wondering how to move your viewpoint around, too. This tutorial will show

More information

Advanced Graphics and Animation

Advanced Graphics and Animation Advanced Graphics and Animation Character Marco Gillies and Dan Jones Goldsmiths Aims and objectives By the end of the lecture you will be able to describe How 3D characters are animated Skeletal animation

More information

3D GRAPHICS. design. animate. render

3D GRAPHICS. design. animate. render 3D GRAPHICS design animate render 3D animation movies Computer Graphics Special effects Computer Graphics Advertising Computer Graphics Games Computer Graphics Simulations & serious games Computer Graphics

More information

Advanced Computer Graphics Transformations. Matthias Teschner

Advanced Computer Graphics Transformations. Matthias Teschner Advanced Computer Graphics Transformations Matthias Teschner Motivation Transformations are used To convert between arbitrary spaces, e.g. world space and other spaces, such as object space, camera space

More information

Articulated Characters

Articulated Characters Articulated Characters Skeleton A skeleton is a framework of rigid body bones connected by articulated joints Used as an (invisible?) armature to position and orient geometry (usually surface triangles)

More information

Geometric 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 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 information

METR 4202: Advanced Control & Robotics

METR 4202: Advanced Control & Robotics Position & Orientation & State t home with Homogenous Transformations METR 4202: dvanced Control & Robotics Drs Surya Singh, Paul Pounds, and Hanna Kurniawati Lecture # 2 July 30, 2012 metr4202@itee.uq.edu.au

More information

SUMMARY. CS380: Introduction to Computer Graphics Track-/Arc-ball Chapter 8. Min H. Kim KAIST School of Computing 18/04/06.

SUMMARY. CS380: Introduction to Computer Graphics Track-/Arc-ball Chapter 8. Min H. Kim KAIST School of Computing 18/04/06. 8/4/6 CS38: Introduction to Computer Graphics Track-/Arc-ball Chapter 8 Min H. Kim KAIST School of Computing Quaternion SUMMARY 2 8/4/6 Unit norm quats. == rotations Squared norm is sum of 4 squares. Any

More information

AN5021. Calculation of Orientation Matrices from Sensor Data. Document information

AN5021. Calculation of Orientation Matrices from Sensor Data. Document information Rev. 2.0 21 June 2016 Application note Document information Info Content Abstract This application note introduces the rotation or orientation matrix and documents the functions in file orientation.c used

More information

Autonomous Navigation for Flying Robots

Autonomous Navigation for Flying Robots Computer Vision Group Prof. Daniel Cremers Autonomous Navigation for Flying Robots Lecture 3.1: 3D Geometry Jürgen Sturm Technische Universität München Points in 3D 3D point Augmented vector Homogeneous

More information

CS184: Using Quaternions to Represent Rotation

CS184: Using Quaternions to Represent Rotation Page 1 of 5 CS 184 home page A note on these notes: These notes on quaternions were created as a resource for students taking CS184 at UC Berkeley. I am not doing any research related to quaternions and

More information

Today. Parity. General Polygons? Non-Zero Winding Rule. Winding Numbers. CS559 Lecture 11 Polygons, Transformations

Today. 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 information

CS612 - Algorithms in Bioinformatics

CS612 - 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 information

Auslan Jam: A Graphical Sign Language Display System

Auslan Jam: A Graphical Sign Language Display System DICTA22: Digital Image Computing Techniques and Applications, 2 22 January 22, Melbourne, Australia. Auslan Jam: A Graphical Sign Language Display System Nick Lowe, James Strauss, Sam Yeates, Eun-Jung

More information

Arabesque Groups Where Art and Mathematics Meet. Jawad Abuhlail, KFUPM (KSA)

Arabesque Groups Where Art and Mathematics Meet. Jawad Abuhlail, KFUPM (KSA) Arabesque Groups Where Art and Mathematics Meet Jawad Abuhlail, KFUPM (KSA) abuhlail@kfupm.edu.sa We thank Saudi Aramco for supporting this Blossom educational video. -------- Arabesque Groups Where Art

More information

CS 445 / 645 Introduction to Computer Graphics. Lecture 21 Representing Rotations

CS 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 information

Brand Standards. V1 For Internal Use. Newcastle Systems Brand Standards 1

Brand Standards. V1 For Internal Use. Newcastle Systems Brand Standards 1 Brand Standards V1 For Internal Use Newcastle Systems Brand Standards 1 Logo In order to ensure that the logo appears consistent in all mediums do not alter it in any way. This includes stretching, changing

More information

Concept of Curve Fitting Difference with Interpolation

Concept of Curve Fitting Difference with Interpolation Curve Fitting Content Concept of Curve Fitting Difference with Interpolation Estimation of Linear Parameters by Least Squares Curve Fitting by Polynomial Least Squares Estimation of Non-linear Parameters

More information

Applications of Dual Quaternions in Three Dimensional Transformation and Interpolation

Applications of Dual Quaternions in Three Dimensional Transformation and Interpolation Applications of Dual Quaternions in Three Dimensional Transformation and Interpolation November 11, 2013 Matthew Smith mrs126@uclive.ac.nz Department of Computer Science and Software Engineering University

More information

3D Rotation: more than just a hobby

3D Rotation: more than just a hobby 3D Rotation: more than just a hobby Eric Yang s special talent is the mental rotation of threedimensional objects. Mental rotation is Yang s hobby. I can see textures and imperfections and the play of

More information

Section 4.2 Radians, Arc Length, and Area of a Sector

Section 4.2 Radians, Arc Length, and Area of a Sector 1330 - Section 4.2 Radians, Arc Length, and Area of a Sector Two rays that have a common endpoint (vertex) form an angle. One ray is the initial side and the other is the terminal side. We typically will

More information

Chapter 9 Animation System

Chapter 9 Animation System Chapter 9 Animation System 9.1 Types of Character Animation Cel Animation Cel animation is a specific type of traditional animation. A cel is a transparent sheet of plastic on which images can be painted

More information