Ryan Marcotte CS 499 (Honours Seminar) March 16, 2011

Size: px
Start display at page:

Download "Ryan Marcotte CS 499 (Honours Seminar) March 16, 2011"

Transcription

1 Ryan Marcotte CS 499 (Honours Seminar) March 16, 2011

2 Outline Introduction to the problem Basic principles of skeletal animation, tag points Description of animation algorithm Demo Future research 2

3 3

4 Application Most games use 3D models to represent characters, items Some items can be equipped by the player Equipment changes the appearance of the player s avatar 4

5 Example Source: pso-world.com, Phantasy Star Universe 5

6 Problem Many different equipment items = many different (unique) combinations Impractical to model each combination Example 5 swords (must equip one) 4 shields (must equip one) 12 accessories (equip up to three) Result 6

7 Problem How to represent all equipment combinations? Unfeasible to use a unique model for each combination Equipment is subject to player movement and animation Equipment may have own animations independent of the player s avatar Algorithm must be fast 7

8 Proposed Solution Skeletal animation (for animating 3D models via a skeleton) Tag points (for providing attachment points subject to the animation of a model s skeleton) 8

9 9

10 What is skeletal animation? Uses bones and joints to manipulate vertices (the skin) A bone hierarchy exists (analogous to own skeleton) Animation produced by interpolating joint translations and rotations between keyframes 10

11 What is a bone? A bone is a frame of reference for a group of vertices Conceptual in nature 11

12 What is a joint? Joints define points of manipulation in the skeleton Bones are connected by joints Joints may be rotated or translated 12

13 How to construct skeleton? Skeleton is constructed as a tree Individual joints are manipulated by their parent joints 13

14 How to construct skeleton? 14

15 How to construct skeleton? Where should the root node be placed? How many joints are needed? 15

16 Why is this useful? Animators manipulate bones instead of individual vertices Animation appears more realistic Animations can be generated at runtime (rag-doll physics) Less space is required to store animations 16

17 What are potential drawbacks? Additional computations are needed at runtime More complex animations (such as facial animation or those for invertebrates) may be difficult to model using skeletal animation techniques 17

18 Computer Representations No fixed representation The representation used for the MS3D model format will be discussed here C++ structures will be used 18

19 How to represent bones? struct MS3D_Vertex { byte flags; // SELECTED SELECTED2 HIDDEN float vertex[3]; // position char boneid; // -1 = no bone byte referencecount; // editor use only }; 19

20 How to represent joints? struct MS3D_KeyFrame_Rotation { float time; // time in seconds float _3D[3]; // x, y, z angles OR- position }; typedef MS3D_KeyFrame_Position MS3D_KeyFrame_Rotation; struct MS3D_Joint { unsigned char flags; // SELECTED DIRTY char name[32]; // name of joint char parentname[32]; // name of parent joint float rotation[3]; // initial local reference matrix float position[3]; // initial local reference matrix int numkeyframesrot; // number of rotation keyframes int numkeyframestrans; // number of translation keyframes MS3D_KeyFrame_Rotation keyrotation[numkeyframesrot]; // local animation matrices MS3D_KeyFrame_Position keyposition[numkeyframestrans]; // local animation matrices }; 20

21 How to represent joints? struct MS3D_Runtime_Joint { std::string name; // name of joint std::string parentname; // name of parent joint int parentid; // index of parent joint float startrotation[3]; // initial local reference matrix float startposition[3]; // initial local reference matrix int numkeyframesrot; // number of rotation keyframes int numkeyframestrans; // number of translation keyframes MS3D_KeyFrame_Rotation keyrotation[numkeyframesrot]; // local animation parameters MS3D_KeyFrame_Position keyposition[numkeyframestrans]; // local animation parameters matrix4x4 skeletonlocalmatrix, skeletonglobalmatrix; // matrices for initial pose matrix4x4 localmatrix, globalmatrix; // matrices for new pose }; 21

22 Tying It Together Need the following information stored at runtime Initial vertex positions and their corresponding normals Texture coordinates and materials for vertices Animation data Initial position and orientation of joints Position and rotation data for keyframes 22

23 How to produce animation? Use linear transformations (matrix multiplication) stored in joints Joints move or rotate bones Vertices move with the bones A series of matrix multiplications are used for handling the parent-child relationship among joints 23

24 What about tag points? Also known as attachment points Applies translation and rotation transformations to a secondary mesh such that it appears to be attached to the original mesh 24

25 What about tag points? We will use existing joints within the skeleton to attach other models Simply store a pointer to the joint where other models will be attached 25

26 26

27 Algorithm (Initialization) Load model information from file Store model information in a format more optimal for runtime use Build bone/joint hierarchy for initial pose 27

28 Algorithm (Initialization) Algorithm : InitializeJoints Input : MESH (a model loaded from disk, stored in memory) Output : MESH, with an initialized bone/joint hierarchy for the initial pose Return : void // Use integers to store reference to parent joint (joints stored in array) for all joints in MESH joint[x].parentid = IndexOfJointWithName(joint[X].parentName); // -1 if no parent // Compute transformation matrices for each joint for all joints in MESH joint[x].skeletonlocalmatrix.initwithrotation(joint[x].startrotation); joint[x].skeletonlocalmatrix.initwithposition(joint[x].startposition); int PID = joint[x].parentid; if PID = -1 joint[x].skeletonglobalmatrix = joint[x].skeletonlocalmatrix; else joint[x].skeletonglobalmatrix = joint[pid].skeletonglobalmatrix * joint[x].skeletonlocalmatrix; 28

29 Algorithm (Initialization) initwithrotation and initwithposition only affect specific matrix entries initwithrotation initwithposition 29

30 Algorithm (Tag Points) Each model maintains a hash table of pointers to joints (using string-based IDs) for fast retrieval Creating a tag point only involves retrieving a pointer to the intended joint Pointer will be used to access joint s global matrix (stores joint s position and rotation with respect to the origin) The joint s matrix will be passed as a parameter into the animation algorithm 30

31 Algorithm (Animation) Manipulate the skeleton into new pose according to the current frame Transform vertices and normals using new pose Render the model in new pose 31

32 Algorithm (Animation) Algorithm : SetFrame Input : MESH (a model loaded from disk, stored in memory) FRAME (floating point number representing animation frame) BASE_MATRIX (initial translation / rotation matrix (for tagging)) Output : MESH, with an initialized bone/joint hierarchy for the specified pose Return : void if FRAME < 0.0f for all joints in MESH joint[x].localmatrix = joint[x].skeletonlocalmatrix; joint[x].globalmatrix = joint[x].skeletonglobalmatrix; else for all joints in MESH TransformJoint(MESH, joint[x], FRAME, BASE_MATRIX); 32

33 Animation (Animation) Determine the keyframes that the current frame lies between Get position and rotation information from keyframes and store in matrices (initwithposition, initwithrotation) Interpolate between the resultant matrices; store in TransformMatrix 33

34 Algorithm (Animation) Algorithm : TransformJoint Input : MESH (a model loaded from disk, stored in memory) JOINT (joint currently being processed) FRAME (floating point number representing animation frame) BASE_MATRIX (initial translation / rotation matrix (for tagging)) Output : JOINT, with initialized transformation matrices for the specified pose Return : void 34

35 Algorithm (Animation) float pos[3]; // Stores transformed position if JOINT.numKeyPositions > 0 int i1 = -1, i2 = -1; for all keyframes (except LAST) in JOINT if((frame >= JOINT.keyPosition[X].time) and (FRAME < JOINT.keyPosition[X+1].time)) i1 = X; i2 = X + 1; break; if((i1 = -1) or (i2 = -1)) if FRAME >= JOINT.keyPosition[LAST].time { pos = JOINT.keyPosition[LAST]._3D; } else if FRAME < JOINT.keyPosition[0].time { pos = JOINT.keyPosition[0]._3D; } else MS3D_KeyFramePosition *PrevFrame = &JOINT.keyPosition[i1], *CurFrame = &JOINT.keyPosition[i2]; float DELTA = ((FRAME PrevFrame.time) / (CurFrame.time PrevFrame.time)); pos = (PrevFrame._3D + (CurFrame._3D PrevFrame._3D)) * DELTA; 35

36 Algorithm (Animation) matrix4x4 transformmatrix; // Final transformation matrix if JOINT.numKeyRotations > 0 int i1 = -1, i2 = -1; for all keyframes (except LAST) in JOINT if((frame >= JOINT.keyRotation[X].time) and (FRAME < JOINT.keyRotation[X+1].time)) i1 = X; i2 = X + 1; break; if((i1 = -1) or (i2 = -1)) if FRAME >= JOINT.keyRotation[LAST].time transformmatrix.initwithrotation(joint.keyrotation[last]._3d); else if FRAME < JOINT.keyRotation[0].time transformmatrix.initwithrotation(joint.keyrotation[0]._3d); else MS3D_KeyFrameRotation *PrevFrame = &JOINT.keyPosition[i1], *CurFrame = &JOINT.keyPosition[i2]; float DELTA = ((FRAME PrevFrame.time) / (CurFrame.time PrevFrame.time)); matrix4x4 prevmatrix, curmatrix; prevmatrix.initwithrotation(prevframe._3d); curmatrix.initwithrotation(curframe._3d); transformmatrix = prevmatrix + ((curmatrix prevmatrix) * DELTA); 36

37 Algorithm (Animation) transformmatrix.initwithposition(pos); JOINT.localMatrix = JOINT.skeletonLocalMatrix * transformmatrix; if JOINT.parentID = -1 JOINT.globalMatrix = JOINT.localMatrix * BASE_MATRIX; else JOINT.globalMatrix = MESH.joints[JOINT.parentID].globalMatrix * JOINT.localMatrix; 37

38 Link 38

39 Considerations The MS3D model file format does not support tag points, but formats exist that do support this feature Linear interpolation (LERP) can cause distortions during animation; fix by using spherical linear interpolation (SLERP) or by increasing the number of keyframes 39

40 Future Research GPU-based skeletal animation GPU-based particle systems Normal mapping 40

41 Do you have any questions? 41

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

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

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

Character animation Christian Miller CS Fall 2011

Character animation Christian Miller CS Fall 2011 Character animation Christian Miller CS 354 - Fall 2011 Exam 2 grades Avg = 74.4, std. dev. = 14.4, min = 42, max = 99 Characters Everything is important in an animation But people are especially sensitive

More information

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

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

Content Loader Introduction

Content Loader Introduction Content Loader Introduction by G.Paskaleva Vienna University of Technology Model Formats Quake II / III (md2 / md3, md4) Doom 3 (md5) FBX Ogre XML Collada (dae) Wavefront (obj) 1 Must-Have Geometry Information

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

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

COMPUTER ANIMATION 3 KEYFRAME ANIMATION, RIGGING, SKINNING AND CHARACTER ANIMATION. Rémi Ronfard, Animation, M2R MOSIG

COMPUTER ANIMATION 3 KEYFRAME ANIMATION, RIGGING, SKINNING AND CHARACTER ANIMATION. Rémi Ronfard, Animation, M2R MOSIG COMPUTER ANIMATION 3 KEYFRAME ANIMATION, RIGGING, SKINNING AND CHARACTER ANIMATION Rémi Ronfard, Animation, M2R MOSIG 2 Outline Principles of animation Keyframe interpolation Rigging, skinning and walking

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

The Skeleton Assembly Line

The Skeleton Assembly Line The Skeleton Assembly Line February 27th 2005 J.M.P. van Waveren 2005, Id Software, Inc. Abstract Optimized routines to transform the skeletons and joints for a skeletal animation system are presented.

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

Maya Lesson 8 Notes - Animated Adjustable Desk Lamp

Maya 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 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

3D Modelling: Animation Fundamentals & Unit Quaternions

3D Modelling: Animation Fundamentals & Unit Quaternions 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. Static objects are boring

More information

CS 775: Advanced Computer Graphics. Lecture 4: Skinning

CS 775: Advanced Computer Graphics. Lecture 4: Skinning CS 775: Advanced Computer Graphics Lecture 4: http://www.okino.com/conv/skinning.htm Binding Binding Always done in a standard rest or bind pose. Binding Always done in a standard rest or bind pose. Associate

More information

CSCI E-74. Simulation and Gaming

CSCI E-74. Simulation and Gaming CSCI E-74 Virtual and Augmented Reality for Simulation and Gaming Fall term 2017 Gianluca De Novi, PhD Lesson 6 Basic Texturing Data Structures in a 3D Engine Vertices/Vectors Segments Matrices Polygons

More information

Example-Based Skeleton Extraction. Scott Schaefer Can Yuksel

Example-Based Skeleton Extraction. Scott Schaefer Can Yuksel Example-Based Skeleton Extraction Scott Schaefer Can Yuksel Example-Based Deformation Examples Previous Work Mesh-based Inverse Kinematics [Sumner et al. 2005], [Der et al. 2006] Example-based deformation

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

Breathing life into your applications: Animation with Qt 3D. Dr Sean Harmer Managing Director, KDAB (UK)

Breathing life into your applications: Animation with Qt 3D. Dr Sean Harmer Managing Director, KDAB (UK) Breathing life into your applications: Animation with Qt 3D Dr Sean Harmer Managing Director, KDAB (UK) sean.harmer@kdab.com Contents Overview of Animations in Qt 3D Simple Animations Skeletal Animations

More information

About this document. Introduction. Where does Life Forms fit? Prev Menu Next Back p. 2

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

CSE452 Computer Graphics

CSE452 Computer Graphics CSE452 Computer Graphics Lecture 19: From Morphing To Animation Capturing and Animating Skin Deformation in Human Motion, Park and Hodgins, SIGGRAPH 2006 CSE452 Lecture 19: From Morphing to Animation 1

More information

You can also export a video of what one of the cameras in the scene was seeing while you were recording your animations.[2]

You can also export a video of what one of the cameras in the scene was seeing while you were recording your animations.[2] Scene Track for Unity User Manual Scene Track Plugin (Beta) The scene track plugin allows you to record live, textured, skinned mesh animation data, transform, rotation and scale animation, event data

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

Animation Essentially a question of flipping between many still images, fast enough

Animation Essentially a question of flipping between many still images, fast enough 33(70) Information Coding / Computer Graphics, ISY, LiTH Animation Essentially a question of flipping between many still images, fast enough 33(70) Animation as a topic Page flipping, double-buffering

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

To Do. Advanced Computer Graphics. The Story So Far. Course Outline. Rendering (Creating, shading images from geometry, lighting, materials)

To Do. Advanced Computer Graphics. The Story So Far. Course Outline. Rendering (Creating, shading images from geometry, lighting, materials) Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 16 Ravi Ramamoorthi http://www.cs.ucsd.edu/~ravir To Do Assignment 3 milestone due May 29 Should already be well on way Contact us for difficulties

More information

Designing the look and feel for Smoke and Neon powers The creation of a new toolset and pipeline for I:SS Pros and cons from our new workflow and

Designing the look and feel for Smoke and Neon powers The creation of a new toolset and pipeline for I:SS Pros and cons from our new workflow and Designing the look and feel for Smoke and Neon powers The creation of a new toolset and pipeline for I:SS Pros and cons from our new workflow and lessons learned attempting to make something new Defining

More information

CSCI E-74. Simulation and Gaming

CSCI E-74. Simulation and Gaming CSCI E-74 Virtual and Augmented Reality for Simulation and Gaming Fall term 2017 Gianluca De Novi, PhD Lesson 5 Basic Lighting and Materials Data Structures in a 3D Engine Vertices/Vectors Segments Matrices

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

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

CS-184: Computer Graphics. Today. Forward kinematics Inverse kinematics. Wednesday, November 12, Pin joints Ball joints Prismatic joints

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

From Art to Engine with Model I/O

From Art to Engine with Model I/O Session Graphics and Games #WWDC17 From Art to Engine with Model I/O 610 Nick Porcino, Game Technologies Engineer Nicholas Blasingame, Game Technologies Engineer 2017 Apple Inc. All rights reserved. Redistribution

More information

animation projects in digital art animation 2009 fabio pellacini 1

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

Principles of Computer Game Design and Implementation. Revision Lecture

Principles of Computer Game Design and Implementation. Revision Lecture Principles of Computer Game Design and Implementation Revision Lecture Introduction Brief history; game genres Game structure A series of interesting choices Series of convexities Variable difficulty increase

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

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

Motus Unitatis, an Animation Editor

Motus Unitatis, an Animation Editor Motus Unitatis, an Animation Editor Bryan Castillo, Timothy Elmer Purpose The Motus Unitatis Animator Editor allows artists and designers to edit and create short animated clips. With MU, a designer has

More information

Lecture 18 of 41. Scene Graphs: Rendering Lab 3b: Shader

Lecture 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 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

05 Mesh Animation. Steve Marschner CS5625 Spring 2016

05 Mesh Animation. Steve Marschner CS5625 Spring 2016 05 Mesh Animation Steve Marschner CS5625 Spring 2016 Basic surface deformation methods Blend shapes: make a mesh by combining several meshes Mesh skinning: deform a mesh based on an underlying skeleton

More information

CS 352: Computer Graphics. Hierarchical Graphics, Modeling, And Animation

CS 352: Computer Graphics. Hierarchical Graphics, Modeling, And Animation CS 352: Computer Graphics Hierarchical Graphics, Modeling, And Animation Chapter 9-2 Overview Modeling Animation Data structures for interactive graphics CSG-tree BSP-tree Quadtrees and Octrees Visibility

More information

Procedures, Parameters, Values and Variables. Steven R. Bagley

Procedures, Parameters, Values and Variables. Steven R. Bagley Procedures, Parameters, Values and Variables Steven R. Bagley Recap A Program is a sequence of statements (instructions) Statements executed one-by-one in order Unless it is changed by the programmer e.g.

More information

CGDD 4113 Final Review. Chapter 7: Maya Shading and Texturing

CGDD 4113 Final Review. Chapter 7: Maya Shading and Texturing CGDD 4113 Final Review Chapter 7: Maya Shading and Texturing Maya topics covered in this chapter include the following: Shader Types Shader Attributes Texturing the Axe Life, Love, Textures and Surfaces

More information

Character Animation COS 426

Character Animation COS 426 Character Animation COS 426 Syllabus I. Image processing II. Modeling III. Rendering IV. Animation Image Processing (Rusty Coleman, CS426, Fall99) Rendering (Michael Bostock, CS426, Fall99) Modeling (Dennis

More information

Integrating Physics into a Modern Game Engine. Object Collision. Various types of collision for an object:

Integrating Physics into a Modern Game Engine. Object Collision. Various types of collision for an object: Integrating Physics into a Modern Game Engine Object Collision Various types of collision for an object: Sphere Bounding box Convex hull based on rendered model List of convex hull(s) based on special

More information

The Illusion of Motion Making magic with textures in the vertex shader. Mario Palmero Lead Programmer at Tequila Works

The Illusion of Motion Making magic with textures in the vertex shader. Mario Palmero Lead Programmer at Tequila Works The Illusion of Motion Making magic with textures in the vertex shader Mario Palmero Lead Programmer at Tequila Works Dark Ages before Textures in the Vertex Shader What is the Vertex Shader? A programmable

More information

Agenda. Introduction Curve implementation. Particle System. - Requirements -What are all those vectors? -Where should I put things?

Agenda. Introduction Curve implementation. Particle System. - Requirements -What are all those vectors? -Where should I put things? Agenda Introduction Curve implementation - Requirements -What are all those vectors? -Where should I put things? Particle System - Requirements -What should I implement? - Suggestions - Cool forces Agenda

More information

Human body animation. Computer Animation. Human Body Animation. Skeletal Animation

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

Skinning Mesh Animations

Skinning Mesh Animations Doug L. James, Christopher D. Twigg Carnegie Mellon University presented by Johannes Schmid 1 Outline Introduction & Motivation Overview & Details Results Discussion 2 Introduction Mesh sequence: 3 General

More information

CS 231. Basics of Computer Animation

CS 231. Basics of Computer Animation CS 231 Basics of Computer Animation Animation Techniques Keyframing Motion capture Physics models Keyframe animation Highest degree of control, also difficult Interpolation affects end result Timing must

More information

Platformer Tutorial 8 - Adding Mr.Green and Character Animation. Last month. Character FX

Platformer Tutorial 8 - Adding Mr.Green and Character Animation. Last month. Character FX Last month Things became a lot more dangerous as traps and deadly particles were added. It just wouldn t be the same without Mr.Green so he s making his debut this month. As this has always been the plan,

More information

Course Outline. Advanced Computer Graphics. Animation. The Story So Far. Animation. To Do

Course Outline. Advanced Computer Graphics. Animation. The Story So Far. Animation. To Do Advanced Computer Graphics CSE 163 [Spring 2017], Lecture 18 Ravi Ramamoorthi http://www.cs.ucsd.edu/~ravir 3D Graphics Pipeline Modeling (Creating 3D Geometry) Course Outline Rendering (Creating, shading

More information

the gamedesigninitiative at cornell university Lecture 12 2D Animation

the gamedesigninitiative at cornell university Lecture 12 2D Animation Lecture 12 2D Animation Animation Basics: The FilmStrip Animation is a sequence of hand-drawn frames Smoothly displays action when change quickly Also called flipbook animation Arrange animation in a sprite

More information

3D Modeling Course Outline

3D Modeling Course Outline 3D Modeling Course Outline Points Possible Course Hours Course Overview 4 Lab 1: Start the Course Identify computer requirements. Learn how to move through the course. Switch between windows. Lab 2: Set

More information

CS230 : Computer Graphics Lecture 12: Introduction to Animation. Tamar Shinar Computer Science & Engineering UC Riverside

CS230 : Computer Graphics Lecture 12: Introduction to Animation. Tamar Shinar Computer Science & Engineering UC Riverside CS230 : Computer Graphics Lecture 12: Introduction to Animation Tamar Shinar Computer Science & Engineering UC Riverside Types of animation keyframing rotoscoping stop motion procedural simulation motion

More information

Homework 2 Questions? Animation, Motion Capture, & Inverse Kinematics. Velocity Interpolation. Handing Free Surface with MAC

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

RenderMonkey 1.6. Natalya Tatarchuk ATI Research

RenderMonkey 1.6. Natalya Tatarchuk ATI Research RenderMonkey 1.6 Natalya Tatarchuk ATI Research Game Developer Conference, San Francisco, CA, March 2005 Overview > What is RenderMonkey? > What s New In RenderMonkey 1.6? 2 What is RenderMonkey? > Shader

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

gltf - what the? Concepts An overview of the basics of the GL Transmission Format Page 1 gltf 2.0 Quick Reference Guide Binary data references

gltf - what the? Concepts An overview of the basics of the GL Transmission Format Page 1 gltf 2.0 Quick Reference Guide Binary data references gltf 2.0 Quick Reference Guide gltf - what the? An overview of the basics of the GL Transmission Format For gltf 2.0! Concepts Page 1 The conceptual relationships between the top-level elements of a gltf

More information

Animations. 1. Ogre Animation 2. Frames and Keyframes 3. Bind Pose and skinning 4. Clip Continuity and Additive Blending

Animations. 1. Ogre Animation 2. Frames and Keyframes 3. Bind Pose and skinning 4. Clip Continuity and Additive Blending Animation Animations 1. Ogre Animation 2. Frames and Keyframes 3. Bind Pose and skinning 4. Clip Continuity and Additive Blending Skeleton Graphics Pipeline void skeleton(void){ glpushmatrix();

More information

Overview. Animation is a big topic We will concentrate on character animation as is used in many games today. humans, animals, monsters, robots, etc.

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

Transforms Transform

Transforms Transform Transforms The Transform is used to store a GameObject s position, rotation, scale and parenting state and is thus very important. A GameObject will always have a Transform component attached - it is not

More information

Topics in Computer Animation

Topics in Computer Animation Topics in Computer Animation Animation Techniques Artist Driven animation The artist draws some frames (keyframing) Usually in 2D The computer generates intermediate frames using interpolation The old

More information

Announcements: Quiz. Animation, Motion Capture, & Inverse Kinematics. Last Time? Today: How do we Animate? Keyframing. Procedural Animation

Announcements: 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 information

Pose Space Deformation A unified Approach to Shape Interpolation and Skeleton-Driven Deformation

Pose Space Deformation A unified Approach to Shape Interpolation and Skeleton-Driven Deformation Pose Space Deformation A unified Approach to Shape Interpolation and Skeleton-Driven Deformation J.P. Lewis Matt Cordner Nickson Fong Presented by 1 Talk Outline Character Animation Overview Problem Statement

More information

- TinyXML2 to parse xml in preparation for next week (skin weights are stored in XML) -

- TinyXML2 to parse xml in preparation for next week (skin weights are stored in XML) - Lab 9: HTR Files Objective & Goals - Understand how animation data is stored in the H ierarchical T ranslation- R otation (HTR) file format - Implement an HTR file loader - Create a hierarchy of GameObjects

More information

VANSTEENKISTE LEO DAE GD ENG UNFOLD SHADER. Introduction

VANSTEENKISTE LEO DAE GD ENG UNFOLD SHADER. Introduction VANSTEENKISTE LEO 2015 G E O M E T RY S H A D E R 2 DAE GD ENG UNFOLD SHADER Introduction Geometry shaders are a powerful tool for technical artists, but they always seem to be used for the same kind of

More information

Rigging / 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 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 information

Animation Movie under Autodesk Maya

Animation Movie under Autodesk Maya Animation Movie under Autodesk Maya Julio Manuel Vega Pérez University Rey Juan Carlos, Móstoles (Madrid), Spain March 5, 2009 1 Abstract Computer graphics matured over many years and played an important

More information

Detailed Table of content. 3D View by tools - Header. 3D View by tools - Header detailed

Detailed Table of content. 3D View by tools - Header. 3D View by tools - Header detailed 3D View by tools - Header Detailed Table of content...1 Introduction...16 Header...16 All Modes - View Menu...17 All Modes - Navigation Menu...24 All Modes, all Object types - Show / Hide...29 Object Mode

More information

3D Production Pipeline

3D Production Pipeline Overview 3D Production Pipeline Story Character Design Art Direction Storyboarding Vocal Tracks 3D Animatics Modeling Animation Rendering Effects Compositing Basics : OpenGL, transformation Modeling :

More information

AN OPEN SOURCE GRAPHICS ENGINE FOR THREE-DIMENSIONAL VIDEO GAMES. A Project. Presented to the. Faculty of. California State University, San Bernardino

AN OPEN SOURCE GRAPHICS ENGINE FOR THREE-DIMENSIONAL VIDEO GAMES. A Project. Presented to the. Faculty of. California State University, San Bernardino AN OPEN SOURCE GRAPHICS ENGINE FOR THREE-DIMENSIONAL VIDEO GAMES A Project Presented to the Faculty of California State University, San Bernardino In Partial Fulfillment of the Requirements for the Degree

More information

Character Animation 1

Character Animation 1 Character Animation 1 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

More information

Real-Time Universal Capture Facial Animation with GPU Skin Rendering

Real-Time Universal Capture Facial Animation with GPU Skin Rendering Real-Time Universal Capture Facial Animation with GPU Skin Rendering Meng Yang mengyang@seas.upenn.edu PROJECT ABSTRACT The project implements the real-time skin rendering algorithm presented in [1], and

More information

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14

Variables Data types Variable I/O. C introduction. Variables. Variables 1 / 14 C introduction Variables Variables 1 / 14 Contents Variables Data types Variable I/O Variables 2 / 14 Usage Declaration: t y p e i d e n t i f i e r ; Assignment: i d e n t i f i e r = v a l u e ; Definition

More information

Live2D Cubism Native Core API Reference. Version r3 Last Update 2018/07/20

Live2D Cubism Native Core API Reference. Version r3 Last Update 2018/07/20 Live2D Cubism Native Core API Reference Version r3 Last Update 2018/07/20 Changelog Update day Version Update Type Content 2018/06/14 r2 translation translation to English from Japanese 2018/07/20 r3 Corrected

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

Using Terminal Window Graphics in CS1

Using Terminal Window Graphics in CS1 Using in CS1 CCSCE 2008 Using in CS1 Using in CS1 The problem We have many goals for CS1, sometimes conflicting: Make it simple Many students come in with no prior programming experience Make it rigorous

More information

The 3D rendering pipeline (our version for this class)

The 3D rendering pipeline (our version for this class) The 3D rendering pipeline (our version for this class) 3D models in model coordinates 3D models in world coordinates 2D Polygons in camera coordinates Pixels in image coordinates Scene graph Camera Rasterization

More information

CS 775: Advanced Computer Graphics. Lecture 3 : Kinematics

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

Animation by Adaptation Tutorial 1: Animation Basics

Animation 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

EL2310 Scientific Programming

EL2310 Scientific Programming Lecture 11: Structures and Memory (yaseminb@kth.se) Overview Overview Lecture 11: Structures and Memory Structures Continued Memory Allocation Lecture 11: Structures and Memory Structures Continued Memory

More information

Channels & Keyframes. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017

Channels & Keyframes. CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2017 Channels & Keyframes CSE69: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 27 Animation Rigging and Animation Animation System Pose Φ... 2 N Rigging System Triangles Renderer Animation When

More information

Vertex Shaders for Geometry Compression

Vertex Shaders for Geometry Compression Vertex Shaders for Geometry Compression by Kenneth Hurley GDC San Francisco March 5 th, 2007 You might be an engineer if The sales people at the local computer store can't answer any of your questions.

More information

Subject: PROBLEM SOLVING THROUGH C Time: 3 Hours Max. Marks: 100

Subject: PROBLEM SOLVING THROUGH C Time: 3 Hours Max. Marks: 100 Code: DC-05 Subject: PROBLEM SOLVING THROUGH C Time: 3 Hours Max. Marks: 100 NOTE: There are 11 Questions in all. Question 1 is compulsory and carries 16 marks. Answer to Q. 1. must be written in the space

More information

SCAPE: Shape Completion and Animation of People

SCAPE: Shape Completion and Animation of People SCAPE: Shape Completion and Animation of People By Dragomir Anguelov, Praveen Srinivasan, Daphne Koller, Sebastian Thrun, Jim Rodgers, James Davis From SIGGRAPH 2005 Presentation for CS468 by Emilio Antúnez

More information

INFOMCANIM Computer Animation Motion Synthesis. Christyowidiasmoro (Chris)

INFOMCANIM Computer Animation Motion Synthesis. Christyowidiasmoro (Chris) INFOMCANIM Computer Animation Motion Synthesis Christyowidiasmoro (Chris) Why Motion Synthesis? We don t have the specific motion / animation We don t have the skeleton and motion for specific characters

More information

Character Animation. Presented by: Pam Chow

Character Animation. Presented by: Pam Chow Character Animation Presented by: Pam Chow Overview Animation is a big topic We will concentrate on character animation as is used in many games today humans, animals, monsters, robots, etc. PLAZMO AND

More information

Charles University in Prague Faculty of Mathematics and Physics BACHELOR THESIS

Charles University in Prague Faculty of Mathematics and Physics BACHELOR THESIS Charles University in Prague Faculty of Mathematics and Physics BACHELOR THESIS Michal Brabec Skeletal Animations in Real-time 3D Graphics Department of Distributed and Dependable Systems Supervisor of

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

Input Nodes. Surface Input. Surface Input Nodal Motion Nodal Displacement Instance Generator Light Flocking

Input Nodes. Surface Input. Surface Input Nodal Motion Nodal Displacement Instance Generator Light Flocking Input Nodes Surface Input Nodal Motion Nodal Displacement Instance Generator Light Flocking The different Input nodes, where they can be found, what their outputs are. Surface Input When editing a surface,

More information

Seminar: Assignment 1. Magnus Andersson

Seminar: Assignment 1. Magnus Andersson Seminar: Assignment 1 Magnus Andersson (magnusa@cs.lth.se) This seminar A lot of ground to cover... Assignment C++ crash course RenderChimp Assignment 1 1. Getting started 2. Building a Scene Graph 3.

More information

Lecture 08: Hierarchical Modeling with Scene Graphs

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

Programming with OpenGL Part 3: Shaders. Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Programming with OpenGL Part 3: Shaders. Ed Angel Professor of Emeritus of Computer Science University of New Mexico Programming with OpenGL Part 3: Shaders Ed Angel Professor of Emeritus of Computer Science University of New Mexico 1 Objectives Simple Shaders - Vertex shader - Fragment shaders Programming shaders with

More information

MD2 format/ Interesting Worlds. CS116A Chris Pollett Nov. 10, 2004.

MD2 format/ Interesting Worlds. CS116A Chris Pollett Nov. 10, 2004. MD2 format/ Interesting Worlds CS116A Chris Pollett Nov. 10, 2004. Outline MD2 file format Pop and Quake Ballworld Game MD2 and MD3 file formats Used in projects based on the id software s Quake engine.

More information

Creating Flood Effects in Uncharted 3. Eben Cook VFX Naughty Dog

Creating Flood Effects in Uncharted 3. Eben Cook VFX Naughty Dog Creating Flood Effects in Uncharted 3 Eben Cook VFX Artist @ Naughty Dog Me me me BA in Communication Design from UNT Computer Science minor 11 years in the industry. EALA, Naughty Dog I ve been: Concept

More information

REAL TIME SKELETAL ANIMATION WITH DUAL QUATERNION

REAL TIME SKELETAL ANIMATION WITH DUAL QUATERNION 0 th March 203. Vol. 49 No. 2005-203 JATIT & LLS. All rights reserved. ISSN: 992-8645 www.jatit.org E-ISSN: 87-395 REAL TIME SKELETAL ANIMATION WITH DUAL QUATERNION XIANG FENG, 2 WANGGEN WAN Master Student,

More information