Computer Graphics Soft Body Animation - Skinning CO2409 Computer Graphics Week 22.

Slides:



Advertisements
Similar presentations
Bending, Breaking and Squishing Stuff Marq Singer Red Storm Entertainment
Advertisements

Animation in Video Games presented by Jason Gregory
12 Principle of Animation. Series of pictures of objects/characters in motion Displayed at some rate –film 24 fps –video 30 fps What is animation?
1 Characters. 2Introduction The Characters are the Actors of the Games. The Characters are the Actors of the Games. Three Types of Characters : Three.
Linear Blend Skinning.
Splines II – Interpolating Curves
Character Setup Character Setup is the process of creating handles and controls for anything that a character animator will need to adjust in order to.
Within our bodies we have many different parts which form our skeleton. These bones help to support and protect our bodies. What to do: Select the Skeleton.
Graphics Korea University Computer Animation Computer Graphics.
Morphing and Animation GPU Graphics Gary J. Katz University of Pennsylvania CIS 665 Adapted from articles taken from ShaderX 3, 4 and 5 And GPU Gems 1.
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 20: Inverse Kinematics Ravi Ramamoorthi Most slides courtesy.
1cs426-winter-2008 Notes  Collision notes part 1 (primitive operations) should be up on the weekend.
Week 4 Lecture 3: Character Animation Based on Interactive Computer Graphics (Angel) - Chapter 10 1 Angel: Interactive Computer Graphics 5E © Addison-Wesley.
CSC 123 – Animating characters Hierarchical modeling Zoë Wood.
CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development1 Skeletons and Skinning Bones and Skeletons Mesh Skinning.
CS 450: Computer Graphics 2D TRANSFORMATIONS
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems.
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems  Conclusion.
Characters.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Elements of Art.
Shape Blending Joshua Filliater December 15, 2000.
Modeling Skin Separate object(s) per limb (and joints) Continuous Skin
Computer Graphics Group Tobias Weyand Mesh-Based Inverse Kinematics Sumner et al 2005 presented by Tobias Weyand.
Animating Coordinate Geometry In this unit we will expand upon our knowledge of using counters to create motion pictures. By using incremental mathematics,
Games Development Practices 3D Model Import/Export CO2301 Games Development 1 Week 17.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 14 Introduction to Computer Graphics.
CS 551/651 Advanced Computer Graphics Warping and Morphing Spring 2002.
Computer Graphics World, View and Projection Matrices CO2409 Computer Graphics Week 8.
Week 5 - Wednesday.  What did we talk about last time?  Project 2  Normal transforms  Euler angles  Quaternions.
Hosted by Type your name here Choice1Choice 2Choice 3Choice
Character Animation for Realtime Applications Michael Putz Klaus Hufnagl Institute of Computer Graphics Graz University of Technology Austria.
SKM 4200 Computer Animation Chapter 4: Animation (3D Computer Animation – Part 2)
Computer Graphics Module Review CO2409 Computer Graphics.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems  Conclusion.
Maths & Technologies for Games Animation: Practicalities CO3303 Week 3.
Animation CMSC 435/634 By Prof. Marc Olano. Keyframe Animation From hand drawn animation – Lead animator draws poses at key frames – Inbetweener draws.
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems  Conclusion.
Character Setup In addition to rigging for character models, rigging artists are also responsible for setting up animation controls for anything that is.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 Computer Animation 고려대학교 컴퓨터 그래픽스 연구실.
Computer Graphics Blending CO2409 Computer Graphics Week 14.
Character Design CSIS 5838: Graphics and Animation for Gaming.
Games Development 1 Review / Revision CO2301 Games Development 1 Semester 2.
Computer Graphics Matrix Hierarchies / Animation
CGDD 4113 SKINNING. WHAT IS SKINNING? The process of binding a skeleton to a mesh Methods: Parent binding Requires models to be separate Individual mesh.
CS 450: COMPUTER GRAPHICS ANIMATION SPRING 2015 DR. MICHAEL J. REALE.
Skeletal Animation and Skinning A (hardware friendly) software approach By: Brandon Furtwangler.
Computer Graphics Matrices
3D GRAPHICS RENDERING PIPELINE CS / TECHNICAL BACKGROUND PAGE 11.
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.
Computer Graphics.
Character Rigging for Animation in Maya
Software Engineering and Game Development
Computer Animation cgvr.korea.ac.kr.
Bones Skeletal Unity-2D How & When
Bones – End of Topic Test
The Skeleton.
Skeletons and Skinning
Computer Animation and Visualisation Lecture 4. Skinning
Real-time Skeletal Skinning with Optimized Centers of Rotation
Chapter XIII Character Animation
Computer Graphics Module Review
Prepared by: Engr . Syed Atir Iftikhar
UMBC Graphics for Games
Computer Graphics Module Overview
Computer Graphics Material Colours and Lighting
Computer Graphics Matrix Hierarchies / Animation
Presentation transcript:

Computer Graphics Soft Body Animation - Skinning CO2409 Computer Graphics Week 22

Lecture Contents 1.Rigid Body vs Soft Body 2.Skeletons 3.Bone Influences / Vertex Weights 4.Vertex Blending 5.Technical Considerations

Rigid Body Limitations Rigid body models are suitable for models made of distinct rigid parts –We have looked at the example of a mechanical arm However, consider human joints: –When they bend, the body shape bends as well –No distinct parts We cannot represent this with rigid bodies –Or the pieces would separate, where there should be stretching or compression

Soft Body Animation Such models are called soft-bodied Implying that the pieces of the model can stretch and flex Examples of soft body models: –Humans, animals, aliens and other creatures –As well as other living organisms – plants, trees –Also clothing and material, rubber-like objects etc. This flexibility means there may not be a clear distinction between different pieces the geometry –In the previous picture, the leg is a single piece of geometry, though it clearly has two parts –How can we handle this?

Skeletons (Bones) Note that these soft-bodied models appear to have hierarchies, much like rigid bodies So we can define an independent hierarchy of bones assumed to lie within the geometry This is called a skeleton –Analogous to a human skeleton The movement of the bones drives the overlaid geometry –The bones are treated as rigid body The geometry bends & flexes depending on nearby bones –This is called Skinning

Skeletons within Geometry So how to position the vertices as the bones move? Most vertices follow a single bone In the example: –Dark blue follow the lower leg –Purple remain with the upper But vertices at the joints are affected by multiple bones: –Cyan area stretched between upper & lower leg position –Yellow area compressed Skinned geometry is often made of just a single part –Although there are exceptions (e.g. eyes may be separate parts)

Bone Influences / Vertex Weights Each vertex is influenced by certain bones –We specify a list of influences for each vertex in the vertex data The strength of each influence is a value from 0.0 to 1.0 –Varies for each vertex and is called the influence weight Consider vertices influenced by the lower leg bone: –Purple vertices not influenced by this bone The bone is not in their list of influences –Dark blue vertces are influenced by the bone with a weight of 1.0 They exactly follow the lower leg bone –The shaded areas are influenced with weights ranging from 0.0 to 1.0 Increasing closer to the lower leg

Bone Influences / Vertex Weights For each vertex, the sum of the weights from all the influencing bones = 1.0 –E.g. A kneecap vertex may have two influences, an 0.2 weight from the upper leg, 0.8 from the lower leg In practice, most vertices are influenced by a small number of bones (around 1 to 4) –Here, most of the leg vertices have one influence, the knee areas have two –Areas like the hips or shoulders may have more influences The bone influences and vertex weights are set up by the artists

Vertex Blending Each bone in the skeleton hierarchy has a world matrix, just as with rigid bodies –Again stored relative to the parent We can use a bone’s world matrix to transform the vertices it influences into world space –But vertices are affected by multiple bones… So calculate all the possible world space positions of a vertex, one for each bone that influences it Then linearly blend these world positions using the vertex weights from each bone Giving a final blended world position –The maths follows…

Vertex Blending - Maths Given a single vertex V, influenced by n bones –The world matrices for the bones are M 1 to M n –Their influence weights on this vertex are W 1 to W n –Then we calculate the blended world position P by: P = V M 1 W 1 + V M 2 W 2 + … + V M N W N E.g. A kneecap vertex (n = 2, W 1 = 0.2, W 2 = 0.8) –Upper leg world pos = V M 1 = (0.5, -1.5, 1.0) [for example] –Lower leg world pos = V M 2 = (1.0, -1.0, 0.5) Then the final position is P = (0.5, -1.5, 1.0) * (1.0, -1.0, 0.5) * 0.8 = (0.1, -0.3, 0.2) + (0.8, -0.8, 0.5) = (0.9, -1.1, 0.7)

Overall Process To implement vertex blending for soft-bodies we need to: –Store a skeleton hierarchy with the model geometry –Store additional data for every vertex: A list of influencing bones – indexes into the depth-sorted skeleton hierarchy An associated list of weights (floats) –Perform additional per-vertex processing Calculate not a single world position, but one world position for every influencing bone (using the bone world matrices) Blend the multiple world positions using the influence weights for the final result

Technical Considerations Using many matrices in a vertex shader is a burden Try to keep the number of bones per-vertex to a minimum –Add this as a modelling constraint – an upper limit Soft body models require much extra detail per-vertex from the modellers –Scope for modelling problems –Often hidden until model animates Also soft-body objects may form part of a rigid body hierarchy – e.g. eyes in a character are not skinned –In this case there will be two loosely related hierarchies - potentially overlapping – tricky… Tricky to import / export / pre-process such models –Much scope for errors, technical and/or modelling –Need very well tested conversion processes and tools