3D Modeling: Skinning

Size: px
Start display at page:

Download "3D Modeling: Skinning"

Transcription

1 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 MIT EECS Computer Graphics course. Thanks to MIT for providing their teaching materials online.

2 Motivation non-rigid transformations Defining complex 3D objects as a hierarchical data structure allows us to define hierarchical transformations. Hierarchies of transformations allow parts of complex objects to move relative to each other. All vertices in a basic part are transformed the same way Basic parts retain their shape We generally have rigid transformations This works well for objects like tanks with rigid parts But what about human characters and other objects that have parts that rotate and move, but with surfaces that are flexible rather than rigid? 2

3 What is Rigging? Animation is usually specified using some form of lowdimensional controls as opposed to remodeling the actual geometry for each frame. E.g., The joint angles (known as bone transformations) in a hierarchical character determine the pose. Building the controls is called rigging. 3

4 What is Skinning? Skinning provides a means to animate a model while reducing the "folding" and "creasing" of polygons as the model animates A model is represented in two parts: Skin (this is described by the triangular mesh) Skeleton (the underlying bones of the model) 4

5 How is Skinning Implemented? Define a bone hierarchy in a model The mesh (triangle) data is defined separately. The bone hierarchy is linked to the model's mesh, so that animating the bone hierarchy animates the mesh's vertices. Note that multiple bones can affect each vertex in the skin mesh. So, we can have a weighting value for each bone to determine how much influence it has in proportion to the others This allows smooth transitions around bone joints 5

6 Skinning Coloured triangles are attached to one bone (different colour means different bone) Black triangles are attached to more than one bone Note that black triangles are near the joints ACM. All rights reserved. This content is excluded from our Creative Commonslicense. For more information, see James & Twigg, Skinning Mesh Animations, 2005, used with permission from ACM, Inc. 6

7 Smooth Skinning & Bone Weights To make deformations appear smooth, we need to average between the effects of different bones close to joints. Bone weights can be set using modelling software. They are displayed using colours in Blender in weight paint mode: red is for close to 1, blue for close to 0. There are a number of standard ways of setting weights. Automatic geometric weighting (as in the Project) Manual weight-painting (Often used for tweaking) Bone Envelopes which specify a distance that each bone affects. 7

8 Skinning A Character Embed a skeleton into a detailed character mesh Animate the bones by changing the joint angles in each keyframe, then interpolating the keyframes. Bind the skin vertices to bones So, animating skeleton will move the skin with it. Courtesy of Blender Foundation. License CC-BY. This content is excluded from our Creative Commons license. For more information, see 8 Courtesy Robert C. Duvall, Duke University. License CC BY-NC-SA.

9 Hierarchical Model Bind the skin vertices to bones 9

10 Blender Blender is a software application that provides a good interface for 3D modelling, skinning, and rigging. The skeletal model and the polygonal mesh can be defined in Blender. Key poses for animation can be added and exported to files in several formats. Manual weight painting can also be done in Blender. A gingerbread man and the underlying skeletal model. This is the rest pose. 10

11 Bone transformations How are bones moved? each bone has a 4 4 matrix that specifies how it transforms the points and vectors it influences for the current pose the bone transformations are defined relative to a rest pose Transforming a bone has what effect? transforms all children bones (and their children, etc.) transforms corresponding vertices following the bone weights transforms the normal vectors similarly So, to calculate the position and normal for a vertex: the bone transformations affecting the vertex are averaged according to the bone weights, then the resultant transformation is applied to both the position and normal. 11

12 Bone Weights For each vertex p i we ll assign a weight w ij for each bone B j. o Q: How much should vertex p i move with bone j? o w ij = 1 means p i is rigidly attached to bone j. o We can interpret w ij to be the weight being exerted by bone B j on vertex p i thus the term bone weight. Desirable properties for the weight w ij o Usually want weights to be non-negative, i.e., w ij 0 o Also, want the sum over all bones to be 1 for each vertex p i, i.e., we want N w ij = 1 j=1. 12

13 Bone Weights We ll limit the number of bones N that can influence a single vertex o N = 4 bones/vertex is a usual choice o Why 4? You most often don t need many. o Also, storage space is an issue. o In practice, we ll store N pairs of numbers (bone index j, weight w ij ) per vertex. 13

14 Computing Vertex Positions Basic step 1: Transform each vertex p i with each bone j as if it was tied to it rigidly. = T j p i p ij Basic step 2: Then blend the results using the weights. p i = N j=1 w ij p ij where p ij is the vertex i transformed using bone j; T j is the current transformation of bone B j ; p i is the new skinned position of vertex p i. 14

15 Data Structure Required for Skinning The necessary data to define relationship between bone hierarchy and the skin are: Number of vertices Number of bones Vertex Weights Vertex Indices Inverse Matrices Values are extracted from the modeller when loading an animation 15

16 Inverse Bone Matrices (InvBMs) Used to transform the skin data from the rest pose object space (also called skin space) to bone space, i.e., to coordinates relative to the position and orientation of a particular bone. An InvBM is the inverse of the transformation matrix from the root bone in the hierarchy to a particular bone in the hierarchy in the rest/default pose. In the project these are provided by the Open Asset Importer as: bone->moffsetmatrix (see the file gnatidread2.h) 16

17 High-level Skinning Algorithm 1. Transforms vertex positions from their object space for the rest pose (a.k.a., skin space) into bone space using the InvBMs. 2. Performs the key-frame based animation for that frame, which transform the vertex positions back into skin space in its animated pose. 3. The model is then rendered. 17

18 Smooth Skinning On a GPU Smooth Skinning is well suited to implementing as a vertex shader You deform vertices one by one based on the joint transforms Use uniform variables for the transformations of the bones in the current pose and change them each time the model is drawn. You need to get the bone weights for each vertex to the GPU Use attributes, i.e., vertex shader in (or varying ) variables These don t change after the model has been loaded. For the best performance, normally only a small number of bones (e.g., N = 4 as mentioned before) are allowed to affect each vertex. 18

19 Skinning GLSL vertex shader // in variables set for each vertex from the static mesh data in ivec4 BoneIDs; // Integer IDs of the 4 bones affecting this vertex in vec4 BoneWeights; // The corresponding 4 weights between 0.0 and 1.0 const int MAX_BONES = 32; // Adjust based on expected model complexity // the current bone transformations, set each time the model is drawn uniform mat4 BoneTransforms[MAX_BONES]; void main() { // Calculate a weighted average of the given 4 bones transformations mat4 BoneTransform = BoneTransforms[BoneIDs[0]] * BoneWeights[0] + BoneTransforms[BoneIDs[1]] * BoneWeights[1] + vec4 btposition = BoneTransform * vposition; // Transform the position vec4 btnormal = BoneTransform * vnormal; // and the normal // The rest of the vertex shader should use btposition and btnormal 19

20 Skinning C++ initialisation gnatidread2.h for (unsigned int boneid = 0 ; boneid < mesh->mnumbones ; boneid++) { for (unsigned int j = 0 ; j < mesh->mbones[boneid]->mnumweights ; j++) { int VertexID = mesh->mbones[boneid]->mweights[j].mvertexid; float Weight = mesh->mbones[boneid]->mweights[j].mweight; // Insertion sort, keep the 4 largest weights for(int slotid=0; slotid < 4; slotid++) { if(boneweights[vertexid][slotid] < Weight) { for(int shuff=3; shuff>slotid; shuff--) { boneweights[vertexid][shuff] = boneweights[vertexid][shuff-1]; boneids[vertexid][shuff] = boneids[vertexid][shuff-1]; boneweights[vertexid][slotid] = Weight; boneids[vertexid][slotid] = boneid; break; 20

21 Skinning C++ bone transforms // rotindex is for the rotation key just before or at currenttime If (rotindex+1 == channel-> mnumrotationkeys) else { gnatidread2.h currotation = channel->mrotationkeys[rotindex].mvalue; float t0 = channel->mrotationkeys[rotindex].mtime; float t1 = channel->mrotationkeys[rotindex+1].mtime; float wgt1 = (currenttime-t0)/(t1-t0); // Interpolate using quaternions aiquaternion::interpolate(currotation, channel->mrotationkeys[rotindex].mvalue, currotation = currotation.normalize(); channel->mrotationkeys[rotindex+1].mvalue, wgt1); // now build a transformation matrix from it. First rotation, then position. aimatrix4x4 trafo = aimatrix4x4(currotation.getmatrix()); trafo.a4 = curposition.x; trafo.b4 = curposition.y; trafo.c4 = curposition.z; targetnode->mtransformation = trafo; // assign this transformation to the node

22 C++ bone transform composition mat4 bonetransforms[mesh->mnumbones]; for(unsigned int a=0; a<mesh->mnumbones; a++) { const aibone* bone = mesh->mbones[a]; // find the node, looking recursively through the hierarchy for the name ainode* node = scene->mrootnode->findnode(bone->mname); aimatrix4x4 b = bone->moffsetmatrix; // start with the mesh-to-bone matrix // then add the bone s transformation for the current pose by composing all // nodes pose transformations up the parent chain const ainode* tempnode = node; while( tempnode) { A while loop that applies all the parent b = tempnode->mtransformation * b; note transformations tempnode = tempnode->mparent; gnatidread2.h Inverse bone matrix (see slide 16) bonetransforms[a] = mat4(vec4(b.a1, b.a2, b.a3, b.a4), vec4( ), ); gluniformmatrix4fv(ubonetransforms, mesh->mnumbones, GL_TRUE, (const GLfloat *)bonetransforms ); 22

23 Blender and DirectX In Blender, the animated character and its movements can be exported to several formats, including DirectX. 23

24 The DirectX File The DirectX file generated by Blender contains the hierarchical skeletal model and animation of the character. The data structure loaded into OpenGL looks like this (e.g., the.x file for monkey head): Frame Root {... Frame Armature { FrameTransformMatrix {... Frame Armature_torso { FrameTransformMatrix {... Frame Armature_head { FrameTransformMatrix {... Definition of the hierarchical skeletal model Transformation matrices of the different bones of the skeletal model for the rest pose. Note that the definition for head is at one indentation level deeper than torso. torso is the parent bone of head. 24

25 The DirectX File (cont.) Frame Cube { FrameTransformMatrix {... Mesh { 19968; ; ; ;, ;... MeshNormals { 19968;... MeshTextureCoords {... Texture coordinates SkinWeights { "Armature_shoulder_L"; 3314; 256,... Total number of 3D points in the mesh Total number of polygons in the mesh Total number of vertex normals vertex normals x, y, and z components of the 1 st point Same as bone weights When the left shoulder bone moves, 3314 vertices would be affected. The indices of these vertices are listed underneath. The first vertex index is

26 AnimationSet Global { Animation { {Armature_torso AnimationKey { // Rotation The DirectX File (cont.) 0; 80; 0;4; , , , ;;, 1; ;... AnimationKey { // Scale 0; 80; 0; unit quaternion The last part of the DirectX file describes the animation. In this examples, there are 81 frames. The first frame index is 0. The last frame index is 80. The animation is given by the rotation, scaling, translation, etc. of each bone. The first frame index The last frame index 26

27 The DirectX File (cont.) Exercise: Inspect the.x file of your animation created by blender for part 2 of the project. The.x file is a text file. Its content can be viewed using any text editor. 27

28 Blender Learning Resources Making a person Rigging the person (defining bones) While bone weights can be automatically assigned (see above), fine tuning can be done by manual weight painting. Weight Painting 28

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

计算机图形学. Computer Graphics 刘利刚.

计算机图形学. Computer Graphics 刘利刚. 计算机图形学 Computer Graphics 刘利刚 lgliu@ustc.edu.cn http://staff.ustc.edu.cn/~lgliu Computer Animation Skinning and Enveloping The slide are from Durand from MIT. Before getting started One more word about

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

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

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

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

Ryan Marcotte   CS 499 (Honours Seminar) March 16, 2011 Ryan Marcotte www.cs.uregina.ca/~marcottr CS 499 (Honours Seminar) March 16, 2011 Outline Introduction to the problem Basic principles of skeletal animation, tag points Description of animation algorithm

More information

Programming with OpenGL Shaders I. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Programming with OpenGL Shaders I. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Programming with OpenGL Shaders I Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico 0 Objectives Shader Basics Simple Shaders Vertex shader Fragment shaders 1 Vertex

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

Lecture 17: Shading in OpenGL. CITS3003 Graphics & Animation

Lecture 17: Shading in OpenGL. CITS3003 Graphics & Animation Lecture 17: Shading in OpenGL CITS3003 Graphics & Animation E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 Objectives Introduce the OpenGL shading methods - per vertex shading

More information

Programming with OpenGL Shaders I. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico

Programming with OpenGL Shaders I. Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Programming with OpenGL Shaders I Adapted From: Ed Angel Professor of Emeritus of Computer Science University of New Mexico Objectives Shader Programming Basics Simple Shaders Vertex shader Fragment shaders

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

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

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

Lecture 5 Vertex and Fragment Shaders-1. CITS3003 Graphics & Animation

Lecture 5 Vertex and Fragment Shaders-1. CITS3003 Graphics & Animation Lecture 5 Vertex and Fragment Shaders-1 CITS3003 Graphics & Animation E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 Objectives The rendering pipeline and the shaders Data

More information

SM2231 :: 3D Animation I :: Basic. Rigging

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

Chapter 9 Animation System

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

More information

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

Objectives Shading in OpenGL. Front and Back Faces. OpenGL shading. Introduce the OpenGL shading methods. Discuss polygonal shading

Objectives Shading in OpenGL. Front and Back Faces. OpenGL shading. Introduce the OpenGL shading methods. Discuss polygonal shading Objectives Shading in OpenGL Introduce the OpenGL shading methods - per vertex shading vs per fragment shading - Where to carry out Discuss polygonal shading - Flat - Smooth - Gouraud CITS3003 Graphics

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

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

6.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, :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 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

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

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

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

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

CS451Real-time Rendering Pipeline

CS451Real-time Rendering Pipeline 1 CS451Real-time Rendering Pipeline JYH-MING LIEN DEPARTMENT OF COMPUTER SCIENCE GEORGE MASON UNIVERSITY Based on Tomas Akenine-Möller s lecture note You say that you render a 3D 2 scene, but what does

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

EECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing

EECE 478. Learning Objectives. Learning Objectives. Rasterization & Scenes. Rasterization. Compositing EECE 478 Rasterization & Scenes Rasterization Learning Objectives Be able to describe the complete graphics pipeline. Describe the process of rasterization for triangles and lines. Compositing Manipulate

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

Lecture 9(B): GPUs & GPGPU

Lecture 9(B): GPUs & GPGPU Lecture 9(B): GPUs & GPGPU John-Philip Taylor 26 March 2015 Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) Outline OpenGL Primitives and Vertices Vertex Shader Rasteriser Fragment Shader OpenCL

More information

Content. Building Geometry Appearance Lights Model Loaders

Content. Building Geometry Appearance Lights Model Loaders Content Building Geometry Appearance Lights Model Loaders Building Geometry A Geometry represents a 3D object: Mesh: The form or structure of a shape (What to draw) Material: The color, transparency, and

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

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

Shaders. Slide credit to Prof. Zwicker

Shaders. Slide credit to Prof. Zwicker Shaders Slide credit to Prof. Zwicker 2 Today Shader programming 3 Complete model Blinn model with several light sources i diffuse specular ambient How is this implemented on the graphics processor (GPU)?

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

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

Lesson 01 Polygon Basics 17. Lesson 02 Modeling a Body 27. Lesson 03 Modeling a Head 63. Lesson 04 Polygon Texturing 87. Lesson 05 NURBS Basics 117

Lesson 01 Polygon Basics 17. Lesson 02 Modeling a Body 27. Lesson 03 Modeling a Head 63. Lesson 04 Polygon Texturing 87. Lesson 05 NURBS Basics 117 Table of Contents Project 01 Lesson 01 Polygon Basics 17 Lesson 02 Modeling a Body 27 Lesson 03 Modeling a Head 63 Lesson 04 Polygon Texturing 87 Project 02 Lesson 05 NURBS Basics 117 Lesson 06 Modeling

More information

OPENGL RENDERING PIPELINE

OPENGL RENDERING PIPELINE CPSC 314 03 SHADERS, OPENGL, & JS UGRAD.CS.UBC.CA/~CS314 Textbook: Appendix A* (helpful, but different version of OpenGL) Alla Sheffer Sep 2016 OPENGL RENDERING PIPELINE 1 OPENGL RENDERING PIPELINE Javascript

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

Shadows. Prof. George Wolberg Dept. of Computer Science City College of New York

Shadows. Prof. George Wolberg Dept. of Computer Science City College of New York Shadows Prof. George Wolberg Dept. of Computer Science City College of New York Objectives Introduce Shadow Algorithms Expand to projective textures 2 Flashlight in the Eye Graphics When do we not see

More information

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

animation computer graphics animation 2009 fabio pellacini 1

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

Introduction to Computer Graphics. Animation (1) May 19, 2016 Kenshi Takayama

Introduction to Computer Graphics. Animation (1) May 19, 2016 Kenshi Takayama Introduction to Computer Graphics Animation (1) May 19, 2016 Kenshi Takayama Skeleton-based animation Simple Intuitive Low comp. cost https://www.youtube.com/watch?v=dsonab58qva 2 Representing a pose using

More information

Notes 2 My Notes and Thoughts Blender Rigify. Categories : Uncategorised. Date : 19th November / 43

Notes 2 My Notes and Thoughts  Blender Rigify. Categories : Uncategorised. Date : 19th November / 43 Blender Rigify Categories : Uncategorised Date : 19th November 2017 1 / 43 Rigify is an incredibly useful tool for getting characters rigged in a jiffy. Instead of spending days setting up a rig by hand,

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

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

Shader Programs. Lecture 30 Subsections 2.8.2, Robb T. Koether. Hampden-Sydney College. Wed, Nov 16, 2011

Shader Programs. Lecture 30 Subsections 2.8.2, Robb T. Koether. Hampden-Sydney College. Wed, Nov 16, 2011 Shader Programs Lecture 30 Subsections 2.8.2, 2.8.3 Robb T. Koether Hampden-Sydney College Wed, Nov 16, 2011 Robb T. Koether (Hampden-Sydney College) Shader Programs Wed, Nov 16, 2011 1 / 43 Outline 1

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

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

Introduction to 2D Graphics

Introduction to 2D Graphics Introduction to 2D Graphics Using OpenGL 1/32 Why Learn About OpenGL? A well-known industry standard for real-time 2D and 3D computer graphics Available on most platforms Desktop operating systems, mobile

More information

Introduction to Shaders.

Introduction to Shaders. Introduction to Shaders Marco Benvegnù hiforce@gmx.it www.benve.org Summer 2005 Overview Rendering pipeline Shaders concepts Shading Languages Shading Tools Effects showcase Setup of a Shader in OpenGL

More information

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE UGRAD.CS.UBC.C A/~CS314 Mikhail Bessmeltsev 1 WHAT IS RENDERING? Generating image from a 3D scene 2 WHAT IS RENDERING? Generating image

More information

CS 523: Computer Graphics, Spring Shape Modeling. Skeletal deformation. Andrew Nealen, Rutgers, /12/2011 1

CS 523: Computer Graphics, Spring Shape Modeling. Skeletal deformation. Andrew Nealen, Rutgers, /12/2011 1 CS 523: Computer Graphics, Spring 2011 Shape Modeling Skeletal deformation 4/12/2011 1 Believable character animation Computers games and movies Skeleton: intuitive, low-dimensional subspace Clip courtesy

More information

COMP371 COMPUTER GRAPHICS

COMP371 COMPUTER GRAPHICS COMP371 COMPUTER GRAPHICS SESSION 12 PROGRAMMABLE SHADERS Announcement Programming Assignment #2 deadline next week: Session #7 Review of project proposals 2 Lecture Overview GPU programming 3 GPU Pipeline

More information

HIERARCHICAL TRANSFORMATIONS A Practical Introduction

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

More information

3D GRAPHICS. design. animate. render

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

More information

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

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

Sign up for crits! Announcments

Sign up for crits! Announcments Sign up for crits! Announcments Reading for Next Week FvD 16.1-16.3 local lighting models GL 5 lighting GL 9 (skim) texture mapping Modern Game Techniques CS248 Lecture Nov 13 Andrew Adams Overview The

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

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

Skeletal deformation

Skeletal deformation CS 523: Computer Graphics, Spring 2009 Shape Modeling Skeletal deformation 4/22/2009 1 Believable character animation Computers games and movies Skeleton: intuitive, low dimensional subspace Clip courtesy

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

TIEA311 Tietokonegrafiikan perusteet kevät 2018

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

3D Modeling. 3D Modeling 1

3D Modeling. 3D Modeling 1 3D Modeling 3D Modeling 1 Virtual enviroments can be populated with "models" as well as regular geometries (glut shapes, glu quadrics, gl primitives). Models are: collections of primitives often in a display

More information

Quick Shader 0.1 Beta

Quick Shader 0.1 Beta Quick Shader 0.1 Beta Documentation (last update 2014-07-10) QuickShader is a program that allows you to write and test shaders without creating your own rendering engine. Using this tool you can quickly

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

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

CS559 Computer Graphics Fall 2015

CS559 Computer Graphics Fall 2015 CS559 Computer Graphics Fall 2015 Practice Midterm Exam Time: 2 hrs 1. [XX Y Y % = ZZ%] MULTIPLE CHOICE SECTION. Circle or underline the correct answer (or answers). You do not need to provide a justification

More information

Computer Graphics with OpenGL ES (J. Han) Chapter 6 Fragment shader

Computer Graphics with OpenGL ES (J. Han) Chapter 6 Fragment shader Computer Graphics with OpenGL ES (J. Han) Chapter 6 Fragment shader Vertex and Fragment Shaders The inputs to the fragment shader Varyings: The per-vertex output variables produced by the vertex shader

More information

Real-Time Rendering of a Scene With Many Pedestrians

Real-Time Rendering of a Scene With Many Pedestrians 2015 http://excel.fit.vutbr.cz Real-Time Rendering of a Scene With Many Pedestrians Va clav Pfudl Abstract The aim of this text was to describe implementation of software that would be able to simulate

More information

Learning Autodesk Maya The Modeling & Animation Handbook. Free Models From Turbo Squid Value US $ Official Autodesk Training Guide

Learning Autodesk Maya The Modeling & Animation Handbook. Free Models From Turbo Squid Value US $ Official Autodesk Training Guide Free Models From Turbo Squid Value US $239.00 Official Autodesk Training Guide Learning Autodesk Maya 2008 The Modeling & Animation Handbook A hands-on introduction to key tools and techniques in Autodesk

More information

CHAPTER 1 Graphics Systems and Models 3

CHAPTER 1 Graphics Systems and Models 3 ?????? 1 CHAPTER 1 Graphics Systems and Models 3 1.1 Applications of Computer Graphics 4 1.1.1 Display of Information............. 4 1.1.2 Design.................... 5 1.1.3 Simulation and Animation...........

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

Adaptive Point Cloud Rendering

Adaptive Point Cloud Rendering 1 Adaptive Point Cloud Rendering Project Plan Final Group: May13-11 Christopher Jeffers Eric Jensen Joel Rausch Client: Siemens PLM Software Client Contact: Michael Carter Adviser: Simanta Mitra 4/29/13

More information

Reading. Hierarchical Modeling. Symbols and instances. Required: Angel, sections , 9.8. Optional:

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

The Rasterization Pipeline

The Rasterization Pipeline Lecture 5: The Rasterization Pipeline Computer Graphics and Imaging UC Berkeley CS184/284A, Spring 2016 What We ve Covered So Far z x y z x y (0, 0) (w, h) Position objects and the camera in the world

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

Research Method: I plan to research existing literature on the subject and conducting tests in the lab.

Research Method: I plan to research existing literature on the subject and conducting tests in the lab. Personal Inquiry Proposal. Name: James Morgan Course: MA3D Animation Subject: Creating simple muscle solutions for game and animation in XSI. Brief Explanation: I plan to investigate a practical and simple

More information

CS 4620 Program #2: Character Animation

CS 4620 Program #2: Character Animation Cornell University CS 4620 Program #2: Character Animation Forward and Inverse Kinematics out: Tuesday 28 September 2010 due: Tuesday 19 October 2010 Author: Prof. Doug James In this second programming

More information

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

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

More information

Beginners Guide Maya. To be used next to Learning Maya 5 Foundation. 15 juni 2005 Clara Coepijn Raoul Franker

Beginners Guide Maya. To be used next to Learning Maya 5 Foundation. 15 juni 2005 Clara Coepijn Raoul Franker Beginners Guide Maya To be used next to Learning Maya 5 Foundation 15 juni 2005 Clara Coepijn 0928283 Raoul Franker 1202596 Index Index 1 Introduction 2 The Interface 3 Main Shortcuts 4 Building a Character

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

CS 418: Interactive Computer Graphics. Basic Shading in WebGL. Eric Shaffer

CS 418: Interactive Computer Graphics. Basic Shading in WebGL. Eric Shaffer CS 48: Interactive Computer Graphics Basic Shading in WebGL Eric Shaffer Some slides adapted from Angel and Shreiner: Interactive Computer Graphics 7E Addison-Wesley 205 Phong Reflectance Model Blinn-Phong

More information

Tutorial: Accessing Maya tools

Tutorial: Accessing Maya tools Tutorial: Accessing Maya tools This tutorial walks you through the steps needed to access the Maya Lumberyard Tools for exporting art assets from Maya to Lumberyard. At the end of the tutorial, you will

More information

CSE 167: Introduction to Computer Graphics Lecture #7: GLSL. Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2016

CSE 167: Introduction to Computer Graphics Lecture #7: GLSL. Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2016 CSE 167: Introduction to Computer Graphics Lecture #7: GLSL Jürgen P. Schulze, Ph.D. University of California, San Diego Spring Quarter 2016 Announcements Project 2 due Friday 4/22 at 2pm Midterm #1 on

More information

Modeling. Anuj Agrawal Dan Bibyk Joe Pompeani Hans Winterhalter

Modeling. Anuj Agrawal Dan Bibyk Joe Pompeani Hans Winterhalter Modeling Anuj Agrawal Dan Bibyk Joe Pompeani Hans Winterhalter Modeling Joe o Polygon Models o NURBS o Subdivision Surfaces o Locators Hans o Splitting polygons, joining objects, extruding faces o Extrude,

More information

Modify Group. Joint Move. (default keyboard shortcut Ctrl J)

Modify Group. Joint Move. (default keyboard shortcut Ctrl J) Modify Group Joint Move (default keyboard shortcut Ctrl J) Joint Mover draws lines along each bone and puts a cross hair at the base of the child bone(s), which is usually coincident with the tip of the

More information

Computational Design. Stelian Coros

Computational Design. Stelian Coros Computational Design Stelian Coros Schedule for presentations February 3 5 10 12 17 19 24 26 March 3 5 10 12 17 19 24 26 30 April 2 7 9 14 16 21 23 28 30 Send me: ASAP: 3 choices for dates + approximate

More information

Mobile graphics API Overview

Mobile graphics API Overview Mobile graphics API Overview Michael Doggett Department of Computer Science Lund University 2009 Michael Doggett and Tomas Akenine-Möller 1 Register Please check to see if your name is on the list, if

More information

Shading Languages. Ari Silvennoinen Apri 12, 2004

Shading Languages. Ari Silvennoinen Apri 12, 2004 Shading Languages Ari Silvennoinen Apri 12, 2004 Introduction The recent trend in graphics hardware has been to replace fixed functionality in vertex and fragment processing with programmability [1], [2],

More information

CS 4621 PPA3: Animation

CS 4621 PPA3: Animation CS 4621 PPA3: Animation out: Saturday 19 November 2011 due: Friday 2 December 2011 1 Introduction There are two parts to this assignment. In the first part, you will complete the implementation of key

More information

Blue colour text questions Black colour text sample answers Red colour text further explanation or references for the sample answers

Blue colour text questions Black colour text sample answers Red colour text further explanation or references for the sample answers Blue colour text questions Black colour text sample answers Red colour text further explanation or references for the sample answers Question 1. a) (5 marks) Explain the OpenGL synthetic camera model,

More information

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11 Pipeline Operations CS 4620 Lecture 11 1 Pipeline you are here APPLICATION COMMAND STREAM 3D transformations; shading VERTEX PROCESSING TRANSFORMED GEOMETRY conversion of primitives to pixels RASTERIZATION

More information

Mount Points Mount Points is a super simple tool for connecting objects together and managing those relationships.

Mount Points Mount Points is a super simple tool for connecting objects together and managing those relationships. Mount Points Mount Points is a super simple tool for connecting objects together and managing those relationships. With Mount Points, you can simply drag two objects together and when their mount points

More information