3D Modelling: Animation Fundamentals & Unit Quaternions
|
|
- Annabelle Hunter
- 5 years ago
- Views:
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
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 informationLecture 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 informationAnimation. 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 informationAnimations. 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 informationShading 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 informationCS770/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 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 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 informationFundamentals 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 informationTexture 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 informationComputer 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 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 informationAnimation. 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 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 informationCS354 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 informationAnimation 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 informationMotivation. 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 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 informationKinematics 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 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 informationCS 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 informationLesson 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 information3D 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 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 informationComputer 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 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 informationME5286 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 information3D 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 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 informationCS 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 informationQuaternion 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 informationEureka 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 informationEureka 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 informationGame 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 informationChapter 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 informationAnimation 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 informationLecture 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 informationLecture 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 informationCMSC 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 informationLesson 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 information3D 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 informationTRIGONOMETRY. 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 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 informationFundamentals 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 informationCOMP 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 informationAnimation. 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 informationCollision 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 informationReal 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 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 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 informationSection 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 informationBlending & 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 informationMath 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 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 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 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 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 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 informationAnimation. 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 informationAnimation. 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 information3.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 informationAnimation 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 informationCS 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 informationLab 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 informationComputer 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 informationHIERARCHICAL 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 informationVisit 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 informationTherefore, 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 informationCoordinate 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 information3D 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 informationSection 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 informationEureka 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 informationObject 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 informationMODELING 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 informationOutline. 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 informationWorking 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 informationInertial 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 informationAnimating 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 informationTutorial 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 informationAdvanced 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 information3D 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 informationAdvanced 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 informationArticulated 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 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 informationMETR 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 informationSUMMARY. 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 informationAN5021. 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 informationAutonomous 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 informationCS184: 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 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 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 informationAuslan 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 informationArabesque 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 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 informationBrand 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 informationConcept 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 informationApplications 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 information3D 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 informationSection 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 informationChapter 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