TIEA311 Tietokonegrafiikan perusteet kevät 2018
|
|
- Claire Horn
- 5 years ago
- Views:
Transcription
1 TIEA311 Tietokonegrafiikan perusteet kevät 2018 ( Principles of Computer Graphics Spring 2018) Copyright and Fair Use Notice: The lecture videos of this course are made available for registered students only. Please, do not redistribute them for other purposes. Use of auxiliary copyrighted material (academic papers, industrial standards, web pages, videos, and other materials) as a part of this lecture is intended to happen under academic fair use to illustrate key points of the subject matter. The lecturer may be contacted for take-down requests or other copyright concerns ( paavo.j.nieminen@jyu.fi).
2 TIEA311 Tietokonegrafiikan perusteet kevät 2018 ( Principles of Computer Graphics Spring 2018) Adapted from: Wojciech Matusik, and Frédo Durand: Computer Graphics. Fall Massachusetts Institute of Technology: MIT OpenCourseWare, License: Creative Commons BY-NC-SA Original license terms apply. Re-arrangement and new content copyright by Paavo Nieminen and Jarno Kansanaho Frontpage of the local course version, held during Spring 2018 at the Faculty of Information technology, University of Jyväskylä: nieminen/tgp18/
3 Simple Example with s { numobjects 3 { numobjects 3 Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } { numobjects 2 { Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } { Box { <BOX PARAMS> } Sphere { <SPHERE PARAMS> } Sphere { <SPHERE PARAMS> } } } Plane { <PLANE PARAMS> } } Text format is fictitious, better to use XML in real applications Durand 32
4 Simple Example with s { numobjects 3 { numobjects 3 Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } { numobjects 2 { Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } { Box { <BOX PARAMS> } Sphere { <SPHERE PARAMS> } Sphere { <SPHERE PARAMS> } } } Plane { <PLANE PARAMS> } } Here we have only simple shapes, but easy to add a Mesh node whose parameters specify an.obj to load (say) Durand 34
5 Adding Attributes (Material, etc.) 35 { numobjects 3 Material { <BLUE> } { numobjects 3 Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } { numobjects 2 Material { <BROWN> } { Box { <BOX PARAMS> } Box { <BOX PARAMS> } Box { <BOX PARAMS> } } { Material { <GREEN> } Box { <BOX PARAMS> } Material { <RED> } Sphere { <SPHERE PARAMS> } Material { <ORANGE> } Sphere { <SPHERE PARAMS> } } } Material { <BLACK> } Plane { <PLANE PARAMS> } }
6 Adding Transformations 36
7 Questions? 37
8 Scene Graph Traversal 38 Depth first recursion Visit node, then visit subtrees (top to bottom, left to right) When visiting a geometry node: Draw it! How to handle transformations? Remember, transformations are always specified in coordinate system of the parent
9 Scene Graph Traversal 39 How to handle transformations? Traversal algorithm keeps a transformation state S (a 4x4 matrix) from world coordinates Initialized to identity in the beginning Geometry nodes always drawn using current S When visiting a transformation node T: multiply current state S with T, then visit child nodes Has the effect that nodes below will have new transformation When all children have been visited, undo the effect of T!
10 Traversal Example 43 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit)
11 Traversal Example 44 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = I
12 Traversal Example 45 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1
13 Traversal Example 46 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1
14 Traversal Example 47 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1 T2
15 Traversal Example 48 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1 T2
16 Traversal Example 49 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1 T2
17 Traversal Example 50 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1
18 Traversal Example 51 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1 R1
19 Traversal Example 52 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1 R1
20 Traversal Example 53 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1 R1
21 Traversal Example 54 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1
22 Traversal Example 55 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1
23 Traversal Example 56 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = I
24 Traversal Example 57 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = R2
25 Traversal Example 58 Root Translate T1 Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = R2
26 Traversal Example Root Translate T1 Rotate R2 (table, fruits) Translate T2 Rotate R1 (chair, legs)... (tabletop, legs) (basket, fruit) S = R2 59
27 Traversal Example Translate T1 Root At each node, the current object-to-world transformation is the matrix product of all transformations found on the way from the node to the root. Rotate R2 (table, fruits) (chair, legs) Translate T2 Rotate R1 (tabletop, legs) (basket, fruit) S = T1R1 60
28 Traversal State 61 The state is updated during traversal Transformations But also other properties (color, etc.) Apply when entering node, undo when leaving How to implement? Bad idea to undo transformation by inverse matrix (Why?)
29 Traversal State 62 The state is updated during traversal Transformations But also other properties (color, etc.) Apply when entering node, undo when leaving How to implement? Bad idea to undo transformation by inverse matrix Why I? T*T-1 = I does not necessarily hold in floating point even when T is an invertible matrix you accumulate error Why II? T might be singular, e.g., could flatten a 3D object onto a plane no way to undo, inverse doesn t exist!
30 Traversal State 63 The state is updated during traversal Transformations But also other properties (color, etc.) Apply when entering node, undo when leaving How to implement? Bad idea to undo transformation by inverse matrix Why I? T*T-1 = I does not necessarily hold in floating point even when T is an invertible matrix you accumulate error Why II? T might be singular, e.g., could flatten a 3D object onto a plane no way to undo, inverse doesn t exist! Can you think of a data structure suited for this?
31 Traversal State Stack The state is updated during traversal Transformations But also other properties (color, etc.) Apply when entering node, undo when leaving How to implement? Bad idea to undo transformation by inverse matrix Why I? T*T-1 = I does not necessarily hold in floating point even when T is an invertible matrix you accumulate error Why II? T might be singular, e.g., could flatten a 3D object onto a plane no way to undo, inverse doesn t exist! Solution: Keep state variables in a stack Push current state when entering node, update current state Pop stack when leaving state-changing node See what the stack looks like in the previous example! 64
32 Questions? 65
33 Plan 66 Hierarchical Modeling, Scene Graph OpenGL matrix stack Hierarchical modeling and animation of characters Forward and inverse kinematics
34 Hierarchical Modeling in OpenGL 67 The OpenGL Matrix Stack implements what we just did! Commands to change current transformation gltranslate, glscale, etc. Current transformation is part of the OpenGL state, i.e., all following draw calls will undergo the new transformation Remember, a transform affects the whole subtree Functions to maintain a matrix stack glpushmatrix, glpopmatrix Separate stacks for modelview (object-to-view) and projection matrices
35 When You Encounter a Transform Node 68 Push the current transform using glpushmatrix() Multiply current transform by node s transformation Use glmultmatrix(), gltranslate(), glrotate(), glscale(), etc. Traverse the subtree Issue draw calls for geometry nodes Use glpopmatrix() when done. Simple as that!
36 More Specifically An OpenGL transformation call corresponds to a matrix T The call multiplies current modelview matrix C by T from the right, i.e. C = C * T. This also works for projection, but you often set it up only once. This means that the transformation for the subsequent vertices will be p = C * T * p Vertices are column vectors on the right in OpenGL This implements hierarchical transformation directly!
37 More Specifically An OpenGL transformation call corresponds to a matrix T The call multiplies current modelview matrix C by T from the right, i.e. C = C * T. This also works for projection, but you often set it up only once. This means that the transformation for the subsequent vertices will be p = C * T * p Vertices are column vectors on the right in OpenGL This implements hierarchical transformation directly! At the beginning of the frame, initialize the current matrix by the viewing transform that maps from world space to view space. For instance, glloadidentity() followed by glulookat()
38 TIEA311 - Code! Let us revisit the Assignment 0 example that draws a teapot. Can we use the theory just presented to make a controlled scene of a couple of more teapots in their own object coordinates wrt. the world and the camera? Does real OpenGL code look the way it was just promised? [live, on-screen, if Visual Studio is working also in today s lecture room]
39 Questions? 71 Further reading on OpenGL Matrix Stack and hierarchical model/view transforms It can be a little confusing if you don t think the previous through, but it s really quite simple in the end. I know very capable people who after 15 years of experience still resort to brute force (trying all the combinations) for getting their transformations right, but it s such a waste :)
40 Plan 72 Hierarchical Modeling, Scene Graph OpenGL matrix stack Hierarchical modeling and animation of characters Forward and inverse kinematics
41 Animation 73 Hierarchical structure is essential for animation Eyes move with head Hands move with arms Feet move with legs Without such structure the model falls apart.
42 Articulated Models 74 Articulated models are rigid parts connected by joints each joint has some angular degrees of freedom Articulated models can be animated by specifying the joint angles as functions of time.
43 Joints and bones 75 Describes the positions of the body parts as a function of joint angles. Body parts are usually called bones Each joint is characterized by its degrees of freedom (dof) Usually rotation for articulated bodies 1 DOF: knee 2 DOF: wrist 3 DOF: arm
44 Skeleton Hierarchy 76 Each bone position/orientation described relative to the parent in the hierarchy: hips... left-leg r-thigh For the root, the parameters include a position as well Joints are specified by angles. z y vs x r-calf r-foot
45 Draw by Traversing a Tree 77 hips... left-leg r-thigh r-calf r-foot Assumes drawing procedures for thigh, calf, and foot use joint positions as the origin for a drawing coordinate frame glloadidentity(); glpushmatrix(); gltranslatef( ); glrotate( ); drawhips(); glpushmatrix(); gltranslate( ); glrotate( ); drawthigh(); gltranslate( ); glrotate( ); drawcalf(); gltranslate( ); glrotate( ); drawfoot(); glpopmatrix(); left-leg
46 Forward Kinematics 78 vs How to determine the world-space position for point vs?
47 Forward Kinematics 79 Transformation matrix S for a point vs is a matrix composition of all joint transformations between the point and the root of the hierarchy. S is a function of all the joint angles between here and root. vs
48 Forward Kinematics 80 Transformation matrix S for a point vs is a matrix composition of all joint transformations between the point and the root of the hierarchy. S is a function of all the joint angles between here and root. Note that the angles have a non-linear effect. vs This product is S
49 Forward Kinematics Transformation matrix S for a point vs is a matrix composition of all joint transformations between the point and the root of the hierarchy. S is a function of all the joint angles between here and root. Note that the angles have a non-linear effect. vs This product is S parameter vector p Durand 81
50 Questions? 82
51 TIEA311 - Fast-forward just a bit Worry not, if you get an yli hilseen feeling about the following few things. On this course, we leave them on a nice to know level. That is, while learning basics, it is nice to know where the rabbit hole could lead to! Note to self: apply great speed with the next slide button on lecture.
52 Inverse Kinematics 83 Context: an animator wants to pose a character Specifying every single angle is tedious and not intuitive Simpler interface: directly manipulate position of e.g. hands and feet That is, specify vw, infer joint transformations vs
53 Inverse Kinematics 84 Forward Kinematics Given the skeleton parameters p (position of the root and the joint angles) and the position of the point in local coordinates vs, what is the position of the point in the world coordinates vw? Not too hard, just apply transform accumulated from the root. vs
54 Inverse Kinematics Forward Kinematics Given the skeleton parameters p (position of the root and the joint angles) and the position of the point in local coordinates vs, what is the position of the point in the world coordinates vw? Not too hard, just apply transform accumulated from the root. Inverse Kinematics Given the current position of the point and the desired new position in world coordinates, what are the skeleton parameters p that take the point to the desired position? vs ṽw 85
55 Inverse Kinematics Given the position of the point in local coordinates vs and the desired position in world coordinates, what are the skeleton parameters p? ṽw skeleton parameter vector p Requires solving for p, given vs and Non-linear and 86
56 It s Underconstrained 87 Count degrees of freedom: We specify one 3D point (3 equations) We usually need more than 3 angles p usually has tens of dimensions vs Simple geometric example (in 3D): specify hand position, need elbow & shoulder The set of possible elbow location is a circle in 3D
57 How to tackle these problems? 88 Deal with non-linearity: Iterative solution (steepest descent) Compute Jacobian matrix of world position w.r.t. angles Jacobian: If the parameters p change by tiny amounts, what is the resulting change in the world position vws? Then invert Jacobian. This says if vws changes by a tiny amount, what is the change in the parameters p? But wait! The Jacobian is non-invertible (3xN) Deal with ill-posedness: Pseudo-inverse Solution that displaces things the least See Deal with ill-posedness: Prior on good pose (more advanced) Additional potential issues: bounds on joint angles, etc. Do not want elbows to bend past 90 degrees, etc.
58 Example: Style-Based IK 89 Video Prior on good pose Link to paper: Grochow, Martin, Hertzmann, Popovic: Style-Based Inverse Kinematics, ACM SIGGRAPH 2004
59 Mesh-Based Inverse Kinematics 90 Video Doesn t even need a hierarchy or skeleton: Figure proper transformations out based on a few example deformations! Link to paper: Sumner, Zwicker, Gotsman, Popovic: Mesh-Based Inverse Kinematics, ACM SIGGRAPH 2005
60 TIEA311 - Was that cool or was that cool? Hyperlinks were broken in PDF translation but these were easily found in YouTube based on the titles: (original style IK) (later research from the same group, project page: ) Important note: You must also learn to find (and, the difficult part: understand) full text research articles, available from within the university IP address space, because the institute is paying a lot of tax payers money to let YOU do that. Would be a shame not to start using this privilege today!
61 TIEA311 - Was that cool or was that cool? Interested in this stuff? Words of advice: Learn about mathematics, statistics, optimization, and numerics. (programming comes for free at IT Faculty) Just a few keywords from the video narrative: local optimum, global optimum, probability density function, [machine] learning Cool stuff happens at the bleeding edge of science... Your first step can not be a sudden appearance at the top of this mountain (or any mountain)! At the Faculty, we support every step you choose to make towards being a graphics algorithm pro (e.g., BSc, MSc theses). Today, I offer the first piece of support by repeating the main words of advice: Get serious about your math, and keep applying it to graphics, if that makes you tick!
6.837 Computer Graphics Hierarchical Modeling Wojciech Matusik, MIT EECS Some slides from BarbCutler & Jaakko Lehtinen
6.837 Computer Graphics Hierarchical Modeling Wojciech Matusik, MIT EECS Some slides from BarbCutler & Jaakko Lehtinen Image courtesy of BrokenSphere on Wikimedia Commons. License: CC-BY-SA. This content
More informationTIEA311 Tietokonegrafiikan perusteet kevät 2017
TIEA311 Tietokonegrafiikan perusteet kevät 2017 ( Principles of Computer Graphics Spring 2017) Copyright and Fair Use Notice: The lecture videos of this course are made available for registered students
More informationModeling Objects. Modeling. Symbol-Instance Table. Instance Transformation. Each appearance of the object in the model is an instance
Modeling Objects Modeling Hierarchical Transformations Hierarchical Models Scene Graphs A prototype has a default size, position, and orientation You need to perform modeling transformations to position
More informationTIEA311 Tietokonegrafiikan perusteet kevät 2018
TIEA311 Tietokonegrafiikan perusteet kevät 2018 ( Principles of Computer Graphics Spring 2018) Copyright and Fair Use Notice: The lecture videos of this course are made available for registered students
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 informationReading. Hierarchical Modeling. Symbols and instances. Required: Angel, sections , 9.8. Optional:
Reading Required: Angel, sections 9.1 9.6, 9.8 Optional: Hierarchical Modeling OpenGL rogramming Guide, the Red Book, chapter 3 cse457-07-hierarchical 1 cse457-07-hierarchical 2 Symbols and instances Most
More informationTransforms 1 Christian Miller CS Fall 2011
Transforms 1 Christian Miller CS 354 - Fall 2011 Transformations What happens if you multiply a square matrix and a vector together? You get a different vector with the same number of coordinates These
More informationHierarchical Modeling. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell
Hierarchical Modeling University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell Reading Angel, sections 9.1-9.6 [reader pp. 169-185] OpenGL Programming Guide, chapter 3 Focus especially
More informationComputer Graphics Hands-on
Computer Graphics Hands-on Two-Dimensional OpenGL Transformations Objectives To get hands-on experience manipulating the OpenGL current transformation (MODELVIEW) matrix to achieve desired effects To gain
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 informationDescribe the Orthographic and Perspective projections. How do we combine together transform matrices?
Aims and objectives By the end of the lecture you will be able to Work with multiple transform matrices Describe the viewing process in OpenGL Design and build a camera control APIs Describe the Orthographic
More informationThis week. CENG 732 Computer Animation. Warping an Object. Warping an Object. 2D Grid Deformation. Warping an Object.
CENG 732 Computer Animation Spring 2006-2007 Week 4 Shape Deformation Animating Articulated Structures: Forward Kinematics/Inverse Kinematics This week Shape Deformation FFD: Free Form Deformation Hierarchical
More informationKINEMATICS FOR ANIMATION. Rémi Ronfard, Animation, M2R MOSIG
KINEMATICS FOR ANIMATION Rémi Ronfard, Animation, M2R MOSIG Direct and inverse kinematics in animation Fast numerical methods for inverse kinematics by Bill Baxter My Adventures with Inverse Kinematics
More informationSM2231 :: 3D Animation I :: Basic. Rigging
SM2231 :: 3D Animation I :: Basic Rigging Object arrangements Hierarchical Hierarchical Separate parts arranged in a hierarchy can be animated without a skeleton Flat Flat Flat hierarchy is usually preferred,
More informationTwo possible ways to specify transformations. Each part of the object is transformed independently relative to the origin
Transformations Two possible ways to specify transformations Each part of the object is transformed independently relative to the origin - Not convenient! z y Translate the base by (5,0,0); Translate the
More informationWhere We Are: Static Models
Where We Are: Static Models Our models are static sets of polygons We can only move them via transformations translate, scale, rotate, or any other 4x4 matrix This does not allow us to simulate very realistic
More informationAnimation Lecture 10 Slide Fall 2003
Animation Lecture 10 Slide 1 6.837 Fall 2003 Conventional Animation Draw each frame of the animation great control tedious Reduce burden with cel animation layer keyframe inbetween cel panoramas (Disney
More informationCS 428: Fall Introduction to. Transformations in OpenGL + hierarchical modeling. Andrew Nealen, Rutgers, /21/2009 1
CS 428: Fall 2009 Introduction to Computer Graphics Transformations in OpenGL + hierarchical modeling 9/21/2009 1 Review of affine transformations Use projective geometry staple of CG Euclidean (x,z) (x,y,z)
More informationOutline. Introduction Surface of Revolution Hierarchical Modeling Blinn-Phong Shader Custom Shader(s)
Modeler Help Outline Introduction Surface of Revolution Hierarchical Modeling Blinn-Phong Shader Custom Shader(s) Objects in the Scene Controls of the object selected in the Scene. Currently the Scene
More informationCOMP3421. Week 2 - Transformations in 2D and Vector Geometry Revision
COMP3421 Week 2 - Transformations in 2D and Vector Geometry Revision Exercise 1. Write code to draw (an approximation) of the surface of a circle at centre 0,0 with radius 1 using triangle fans. Transformation
More informationHomework 2 Questions? Animation, Motion Capture, & Inverse Kinematics. Velocity Interpolation. Handing Free Surface with MAC
Homework 2 Questions? Animation, Motion Capture, & Inverse Kinematics Velocity Interpolation Original image from Foster & Metaxas, 1996 In 2D: For each axis, find the 4 closest face velocity samples: Self-intersecting
More informationLast Time? Animation, Motion Capture, & Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation
Last Time? Animation, Motion Capture, & Inverse Kinematics Navier-Stokes Equations Conservation of Momentum & Mass Incompressible Flow Today How do we animate? Keyframing Procedural Animation Physically-Based
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 informationUsing GLU/GLUT Objects
Using GLU/GLUT Objects GLU/GLUT provides very simple object primitives glutwirecone glutwirecube glucylinder glutwireteapot GLU/GLUT Objects Each glu/glut object has its default size, position, and orientation
More informationLast Time? Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation
Last Time? Inverse Kinematics Navier-Stokes Equations Conservation of Momentum & Mass Incompressible Flow Today How do we animate? Keyframing Procedural Animation Physically-Based Animation Forward and
More informationCS-184: Computer Graphics. Today. Forward kinematics Inverse kinematics. Wednesday, November 12, Pin joints Ball joints Prismatic joints
CS-184: Computer Graphics Lecture #18: Forward and Prof. James O Brien University of California, Berkeley V2008-F-18-1.0 1 Today Forward kinematics Inverse kinematics Pin joints Ball joints Prismatic joints
More informationInteractive Computer Graphics
Interactive Computer Graphics Lecture 18 Kinematics and Animation Interactive Graphics Lecture 18: Slide 1 Animation of 3D models In the early days physical models were altered frame by frame to create
More informationLecture 18 of 41. Scene Graphs: Rendering Lab 3b: Shader
Scene Graphs: Rendering Lab 3b: Shader William H. Hsu Department of Computing and Information Sciences, KSU KSOL course pages: http://bit.ly/hgvxlh / http://bit.ly/evizre Public mirror web site: http://www.kddresearch.org/courses/cis636
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 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 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 informationTIEA311 Tietokonegrafiikan perusteet kevät 2018
TIEA311 Tietokonegrafiikan perusteet kevät 2018 ( Principles of Computer Graphics Spring 2018) Copyright and Fair Use Notice: The lecture videos of this course are made available for registered students
More informationHierarchical Modeling II. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico
Hierarchical Modeling II Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico Objectives Build a tree-structured model of a humanoid figure
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 informationLast Time? Animation, Motion Capture, & Inverse Kinematics. Today. Keyframing. Physically-Based Animation. Procedural Animation
Last Time? Animation, Motion Capture, & Inverse Kinematics Navier-Stokes Equations Conservation of Momentum & Mass Incompressible Flow Today How do we animate? Keyframing Procedural Animation Physically-Based
More informationAnnouncements: Quiz. Animation, Motion Capture, & Inverse Kinematics. Last Time? Today: How do we Animate? Keyframing. Procedural Animation
Announcements: Quiz Animation, Motion Capture, & Inverse Kinematics On Friday (3/1), in class One 8.5x11 sheet of notes allowed Sample quiz (from a previous year) on website Focus on reading comprehension
More informationanimation projects in digital art animation 2009 fabio pellacini 1
animation projects in digital art animation 2009 fabio pellacini 1 animation shape specification as a function of time projects in digital art animation 2009 fabio pellacini 2 how animation works? flip
More informationCOMP3421. Week 2 - Transformations in 2D and Vector Geometry Revision
COMP3421 Week 2 - Transformations in 2D and Vector Geometry Revision Exercise 1. Write code to draw (an approximation) of the surface of a circle at centre 0,0 with radius 1 using triangle fans. 2. At
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 informationInverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018
Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018 Welman, 1993 Inverse Kinematics and Geometric Constraints for Articulated Figure Manipulation, Chris
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 informationHierarchical Modeling
Hierarchical Modeling Geometric Primitives Remember that most graphics APIs have only a few geometric primitives Spheres, cubes, triangles, etc These primitives are instanced in order to apply transforms
More informationModeling with Transformations
Modeling with Transformations Prerequisites This module requires some understanding of 3D geometry, particularly a sense of how objects can be moved around in 3-space. The student should also have some
More informationAnimation, Motion Capture, & Inverse Kinematics. Announcements: Quiz
Animation, Motion Capture, & Inverse Kinematics Announcements: Quiz On Tuesday (3/10), in class One 8.5x11 sheet of notes allowed Sample quiz (from a previous year) on website Focus on reading comprehension
More informationHierarchical Modelling
Gregor Miller gregor{at}ece.ubc.ca Hierarchical Modelling Limitations of linear modelling Articulated models Tree and DAG models Traversal Strategies Instance Transformation Start with a prototype object
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 informationTerm Project Final Report for CPSC526 Statistical Models of Poses Using Inverse Kinematics
Term Project Final Report for CPSC526 Statistical Models of Poses Using Inverse Kinematics Department of Computer Science The University of British Columbia duanx@cs.ubc.ca, lili1987@cs.ubc.ca Abstract
More informationHierarchical Modeling and Scene Graphs
Hierarchical Modeling and Scene Graphs Adapted from material prepared by Ed Angel Spring 2009 Objectives Examine the limitations of linear modeling Symbols and instances Introduce hierarchical models Articulated
More informationHIERARCHICAL TRANSFORMATIONS A Practical Introduction
HIERARCHICAL TRANSFORMATIONS A Practical Introduction HPCViz, KTH Royal Institute of Technology, Sweden https://www.kth.se/profile/chpeters/ Transformations Many objects are composed of hierarchies Transformations
More informationHierarchy I. Guoying Zhao 1 / 40
Computer Graphics Hierarchy I Guoying Zhao 1 / 40 Hierarchical Modeling I Guoying Zhao 2 / 40 Objectives Examine the limitations of linear modeling Symbols and instances Introduce hierarchical models Articulated
More informationScene Graphs. CS4620/5620: Lecture 7. Announcements. HW 1 out. PA 1 will be out on Wed
CS4620/5620: Lecture 7 Scene Graphs 1 Announcements HW 1 out PA 1 will be out on Wed Next week practicum will have an office hour type session on Open GL 2 Example Can represent drawing with flat list
More informationHierarchical Modeling and scene graphs
Hierarchical Modeling and scene graphs Overview Examine the limitations of linear modeling Introduce hierarchical models Introduce Tree and DAG models Build a tree-structured model of a humanoid figure
More informationMaya Lesson 8 Notes - Animated Adjustable Desk Lamp
Maya Lesson 8 Notes - Animated Adjustable Desk Lamp To Model the Lamp: 1. Research: Google images - adjustable desk lamp. 2. Print several images of lamps for ideas to model. 3. Make a sketch of the lamp
More informationHIERARCHICAL TRANSFORMATIONS A Practical Introduction
HIERARCHICAL TRANSFORMATIONS A Practical Introduction Christopher Peters CST, KTH Royal Institute of Technology, Sweden chpeters@kth.se https://www.kth.se/profile/chpeters/ Before we begin... Lab work
More informationCS4202: Test. 1. Write the letter corresponding to the library name next to the statement or statements that describe library.
CS4202: Test Name: 1. Write the letter corresponding to the library name next to the statement or statements that describe library. (4 points) A. GLUT contains routines that use lower level OpenGL commands
More informationDue: Thursday, February 6 th, 11:59 pm TA: Mason Remy
Due: Thursday, February 6 th, 11:59 pm TA: Mason Remy Checking out, building, and using the sample solution Part 1: Surface of Revolution Part 2: Hierarchical Modeling Part 3: Blinn-Phong Shader Part 4:
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 informationAffine Transformations in 3D
Affine Transformations in 3D 1 Affine Transformations in 3D 1 Affine Transformations in 3D General form 2 Translation Elementary 3D Affine Transformations 3 Scaling Around the Origin 4 Along x-axis Shear
More informationInverse Kinematics. Given a desired position (p) & orientation (R) of the end-effector
Inverse Kinematics Given a desired position (p) & orientation (R) of the end-effector q ( q, q, q ) 1 2 n Find the joint variables which can bring the robot the desired configuration z y x 1 The Inverse
More informationKeyframing an IK Skeleton Maya 2012
2002-2012 Michael O'Rourke Keyframing an IK Skeleton Maya 2012 (This tutorial assumes you have done the Creating an Inverse Kinematic Skeleton tutorial in this set) Concepts Once you have built an Inverse
More informationComputer Graphics Geometric Transformations
Computer Graphics 2016 6. Geometric Transformations Hongxin Zhang State Key Lab of CAD&CG, Zhejiang University 2016-10-31 Contents Transformations Homogeneous Co-ordinates Matrix Representations of Transformations
More informationHierarchical Modeling and Scene Graphs
Hierarchical Modeling and Scene Graphs Adapted from material prepared by Ed Angel Spring 2009 Objectives Examine the limitations of linear modeling Symbols and instances Introduce hierarchical models Articulated
More informationHierarchical Modeling
Hierarchical Modeling Modeling with Transformations You ve learned everything you need to know to make a root out of cues. Just translate, rotate, and scale each cue to get the right size, shape, position,
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 informationHierarchical Models. Roadmap. Importance of shadows. Importance of shadows. Importance of shadows. Importance of shadows
CSCI 420 Computer Graphics Lecture 8 Hierarchical Models Projections and Shadows Hierarchical Models [Angel Ch. 8] Roadmap Last lecture: Viewing and projection Today: Shadows via projections Hierarchical
More informationSpring 2013, CS 112 Programming Assignment 2 Submission Due: April 26, 2013
Spring 2013, CS 112 Programming Assignment 2 Submission Due: April 26, 2013 PROJECT GOAL: Write a restricted OpenGL library. The goal of the project is to compute all the transformation matrices with your
More informationAnimation. 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 informationwe now have a good understanding of 3d representations, rigid body transforms, camera projections, and the fixed function steps in graphics
big picture goals we now have a good understanding of 3d representations, rigid body transforms, camera projections, and the fixed function steps in graphics now we are going to add higher level structure
More informationanimation computer graphics animation 2009 fabio pellacini 1 animation shape specification as a function of time
animation computer graphics animation 2009 fabio pellacini 1 animation shape specification as a function of time computer graphics animation 2009 fabio pellacini 2 animation representation many ways to
More information6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, :05-12pm Two hand-written sheet of notes (4 pages) allowed 1 SSD [ /17]
6.837 Introduction to Computer Graphics Final Exam Tuesday, December 20, 2011 9:05-12pm Two hand-written sheet of notes (4 pages) allowed NAME: 1 / 17 2 / 12 3 / 35 4 / 8 5 / 18 Total / 90 1 SSD [ /17]
More informationanimation computer graphics animation 2009 fabio pellacini 1
animation computer graphics animation 2009 fabio pellacini 1 animation shape specification as a function of time computer graphics animation 2009 fabio pellacini 2 animation representation many ways to
More informationRigging / Skinning. based on Taku Komura, Jehee Lee and Charles B.Own's slides
Rigging / Skinning based on Taku Komura, Jehee Lee and Charles B.Own's slides Skeletal Animation Victoria 2 CSE 872 Dr. Charles B. Owen Advanced Computer Graphics Skinning http://www.youtube.com/watch?
More informationKinematics. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University
Kinematics CS 448D: Character Animation Prof. Vladlen Koltun Stanford University Kinematics Kinematics: The science of pure motion, considered without reference to the matter of objects moved, or to the
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 informationOverview. Animation is a big topic We will concentrate on character animation as is used in many games today. humans, animals, monsters, robots, etc.
ANIMATION Overview Animation is a big topic We will concentrate on character animation as is used in many games today humans, animals, monsters, robots, etc. Character Representation A character is represented
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 informationOpenGL: Setup 3D World
CT4510: Computer Graphics OpenGL: Setup 3D World BOCHANG MOON Prerequisite for 3D World Understanding on basic mathematical background, transformations, and spaces Pixels, raster image, ector, matrix,
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 informationCOMP 175 COMPUTER GRAPHICS. Ray Casting. COMP 175: Computer Graphics April 26, Erik Anderson 09 Ray Casting
Ray Casting COMP 175: Computer Graphics April 26, 2018 1/41 Admin } Assignment 4 posted } Picking new partners today for rest of the assignments } Demo in the works } Mac demo may require a new dylib I
More informationComputer Graphics (CS 543) Lecture 6a: Hierarchical 3D Models. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)
Computer Graphics (CS 543) Lecture 6a: Hierarchical 3D Models Prof Emmanuel Agu Computer Science Dept. Worcester Polytechnic Institute (WPI) Instance Transformation Start with unique object (a symbol)
More informationInverse Kinematics Programming Assignment
Inverse Kinematics Programming Assignment CS 448D: Character Animation Due: Wednesday, April 29 th 11:59PM 1 Logistics In this programming assignment, you will implement a simple inverse kinematics solver
More informationA 12-DOF Analytic Inverse Kinematics Solver for Human Motion Control
Journal of Information & Computational Science 1: 1 (2004) 137 141 Available at http://www.joics.com A 12-DOF Analytic Inverse Kinematics Solver for Human Motion Control Xiaomao Wu, Lizhuang Ma, Zhihua
More informationReading. Topics in Articulated Animation. Character Representation. Animation. q i. t 1 t 2. Articulated models: Character Models are rich, complex
Shoemake, Quaternions Tutorial Reading Topics in Articulated Animation 2 Articulated models: rigid parts connected by joints Animation They can be animated by specifying the joint angles (or other display
More informationGraphics pipeline and transformations. Composition of transformations
Graphics pipeline and transformations Composition of transformations Order matters! ( rotation * translation translation * rotation) Composition of transformations = matrix multiplication: if T is a rotation
More informationTranslation. 3D Transformations. Rotation about z axis. Scaling. CS 4620 Lecture 8. 3 Cornell CS4620 Fall 2009!Lecture 8
Translation 3D Transformations CS 4620 Lecture 8 1 2 Scaling Rotation about z axis 3 4 Rotation about x axis Rotation about y axis 5 6 Transformations in OpenGL Stack-based manipulation of model-view transformation,
More informationCIS 636 Interactive Computer Graphics CIS 736 Computer Graphics Spring 2011
CIS 636 Interactive Computer Graphics CIS 736 Computer Graphics Spring 2011 Lab 1a of 7 OpenGL Setup and Basics Fri 28 Jan 2011 Part 1a (#1 5) due: Thu 03 Feb 2011 (before midnight) The purpose of this
More informationRendering Pipeline and Coordinates Transforms
Rendering Pipeline and Coordinates Transforms Alessandro Martinelli alessandro.martinelli@unipv.it 16 October 2013 Rendering Pipeline (3): Coordinates Transforms Rendering Architecture First Rendering
More informationCS 775: Advanced Computer Graphics. Lecture 3 : Kinematics
CS 775: Advanced Computer Graphics Lecture 3 : Kinematics Traditional Cell Animation, hand drawn, 2D Lead Animator for keyframes http://animation.about.com/od/flashanimationtutorials/ss/flash31detanim2.htm
More information4 Kinematic Linkages. Chapter 4. Kinematic Linkages. Department of Computer Science and Engineering 4-1
Kinematic Linkages 4-1 Introduction In describing an object s motion, it is often useful to relate it to another object. Consider, for eample a coordinate system centered at our sun in which the moon s
More informationKinematics & Motion Capture
Lecture 27: Kinematics & Motion Capture Computer Graphics and Imaging UC Berkeley CS184/284A, Spring 2017 Forward Kinematics (Slides with James O Brien) Forward Kinematics Articulated skeleton Topology
More informationCSC 470 Computer Graphics
CSC 470 Computer Graphics Transformations of Objects CSC 470 Computer Graphics, Dr.N. Georgieva, CSI/CUNY 1 Transformations of objects - 2D CSC 470 Computer Graphics, Dr.N. Georgieva, CSI/CUNY 2 Using
More informationBONE CONTROLLER ASSET VERSION 0.1 REV 1
Foreword Thank you for purchasing the Bone Controller! I m an independent developer and your feedback and support really means a lot to me. Please don t ever hesitate to contact me if you have a question,
More informationParallel Physically Based Path-tracing and Shading Part 3 of 2. CIS565 Fall 2012 University of Pennsylvania by Yining Karl Li
Parallel Physically Based Path-tracing and Shading Part 3 of 2 CIS565 Fall 202 University of Pennsylvania by Yining Karl Li Jim Scott 2009 Spatial cceleration Structures: KD-Trees *Some portions of these
More informationAbout this document. Introduction. Where does Life Forms fit? Prev Menu Next Back p. 2
Prev Menu Next Back p. 2 About this document This document explains how to use Life Forms Studio with LightWave 5.5-6.5. It also contains short examples of how to use LightWave and Life Forms together.
More informationHuman body animation. Computer Animation. Human Body Animation. Skeletal Animation
Computer Animation Aitor Rovira March 2010 Human body animation Based on slides by Marco Gillies Human Body Animation Skeletal Animation Skeletal Animation (FK, IK) Motion Capture Motion Editing (retargeting,
More informationLecture 08: Hierarchical Modeling with Scene Graphs
Lecture 08: Hierarchical Modeling with Scene Graphs CSE 40166 Computer Graphics Peter Bui University of Notre Dame, IN, USA November 2, 2010 Symbols and Instances Objects as Symbols Model world as a collection
More informationGraphics and Visualization
International University Bremen Spring Semester 2006 Recap Representing graphic objects by homogenous points and vectors Using affine transforms to modify objects Using projections to display objects
More informationThe Viewing Pipeline adaptation of Paul Bunn & Kerryn Hugo s notes
The Viewing Pipeline adaptation of Paul Bunn & Kerryn Hugo s notes What is it? The viewing pipeline is the procession of operations that are applied to the OpenGL matrices, in order to create a 2D representation
More informationComputer Animation. Rick Parent
Algorithms and Techniques Kinematic Linkages Hierarchical Modeling Relative motion Parent-child relationship Simplifies motion specification Constrains motion Reduces dimensionality Modeling & animating
More informationAnimation by Adaptation Tutorial 1: Animation Basics
Animation by Adaptation Tutorial 1: Animation Basics Michael Gleicher Graphics Group Department of Computer Sciences University of Wisconsin Madison http://www.cs.wisc.edu/graphics Outline Talk #1: Basics
More information