Advanced Skinning CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004.

Slides:



Advertisements
Similar presentations
Animation in Video Games presented by Jason Gregory
Advertisements

Blending & State Machines CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
Computer Graphics (Spring 2008) COMS 4160, Lecture 6: Curves 1
Pose Space Deformation:
Morphing & Warping 2D Morphing Involves 2 steps 1.Image warping “get features to line up” 2.Cross-dissolve “mix colors” (fade-in/fadeout transition)
Pattern Recognition and Machine Learning: Kernel Methods.
CSE554Extrinsic DeformationsSlide 1 CSE 554 Lecture 9: Extrinsic Deformations Fall 2012.
CSE554Extrinsic DeformationsSlide 1 CSE 554 Lecture 10: Extrinsic Deformations Fall 2014.
Cubic Curves CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2006.
Verbs and Adverbs: Multidimensional Motion Interpolation Using Radial Basis Functions Presented by Sean Jellish Charles Rose Michael F. Cohen Bobby Bodenheimer.
Cubic Curves CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
Trajectory Generation
MIT EECS 6.837, Durand and Cutler Curves & Surfaces.
Lecture 29 of 42 Bezier Curves and Splines Wednesday, 02 April 2008
MIT EECS 6.837, Durand and Cutler Curves & Surfaces.
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.
Morphing Rational B-spline Curves and Surfaces Using Mass Distributions Tao Ju, Ron Goldman Department of Computer Science Rice University.
1cs542g-term Notes  Added required reading to web (numerical disasters)
INFORMATIK Differential Coordinates for Interactive Mesh Editing Yaron Lipman Olga Sorkine Daniel Cohen-Or David Levin Tel-Aviv University Christian Rössl.
Facial Expressions & Rigging CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
Skin CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
Character Animation CSE 191A: Seminar on Video Game Programming Lecture 5: Character Animation UCSD, Spring, 2003 Instructor: Steve Rotenberg.
1cs426-winter-2008 Notes  Collision notes part 1 (primitive operations) should be up on the weekend.
Kinematics. ILE5030 Computer Animation and Special Effects2 Kinematics The branch of mechanics concerned with the motions of objects without regard to.
Bezier and Spline Curves and Surfaces Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Skin CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004.
Midterm Review CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004.
Advanced Skin CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2005.
Human Computer Interaction 7. Advanced User Interfaces (I) Data Scattering and RBF Course no. ILE5013 National Chiao Tung Univ, Taiwan By: I-Chen Lin,
Computer Graphics Recitation The plan today Least squares approach  General / Polynomial fitting  Linear systems of equations  Local polynomial.
CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development1 Skeletons and Skinning Bones and Skeletons Mesh Skinning.
Radial Basis Function (RBF) Networks
Modeling and representation 1 – comparative review and polygon mesh models 2.1 Introduction 2.2 Polygonal representation of three-dimensional objects 2.3.
Curve Modeling Bézier Curves
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
Bresenham’s Algorithm. Line Drawing Reference: Edward Angel’s book: –6 th Ed. Sections 6.8 and 6.9 Assuming: –Clipped (to fall within the window) –2D.
Modeling Skin Separate object(s) per limb (and joints) Continuous Skin
Shading (introduction to rendering). Rendering  We know how to specify the geometry but how is the color calculated.
11/19/02 (c) 2002, University of Wisconsin, CS 559 Last Time Many, many modeling techniques –Polygon meshes –Parametric instancing –Hierarchical modeling.
Multimedia System and Networking UTD Slide- 1 University of Texas at Dallas B. Prabhakaran Facial Expressions & Rigging.
A D V A N C E D C O M P U T E R G R A P H I C S CMSC 635 January 15, 2013 Quadric Error Metrics 1/20 Quadric Error Metrics.
Use and Re-use of Facial Motion Capture M. Sanchez, J. Edge, S. King and S. Maddock.
Multimedia System and Networking UTD Slide- 1 University of Texas at Dallas B. Prabhakaran Skin.
CS 445 / 645 Introduction to Computer Graphics Lecture 23 Bézier Curves Lecture 23 Bézier Curves.
Character Animation. Contents Keyframe animation Mocap Smooth skin by vertex blending Rigging & retargeting Gait analysis (Ragdoll physics) Fall
Computer Graphics Soft Body Animation - Skinning CO2409 Computer Graphics Week 22.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
Multimedia System and Networking UTD Slide- 1 University of Texas at Dallas B. Prabhakaran Rigging.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
AS-RIGID-AS-POSSIBLE SHAPE MANIPULATION
09/16/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Environment mapping Light mapping Project Goals for Stage 1.
CS 376 Introduction to Computer Graphics 04 / 25 / 2007 Instructor: Michael Eckmann.
Review CSE167: Computer Graphics Instructor: Steve Rotenberg UCSD, Fall 2005.
Skeletal Animation and Skinning A (hardware friendly) software approach By: Brandon Furtwangler.
Computing & Information Sciences Kansas State University Lecture 30 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 30 of 42 Wednesday, 09.
Introduction to Parametric Curve and Surface Modeling.
1 Spherical manifolds for hierarchical surface modeling Cindy Grimm.
Games Development Practices 3D Modelling
CS 445 / 645 Introduction to Computer Graphics
You can check broken videos in this slide here :
CSE 167 [Win 17], Lecture 9: Curves 1 Ravi Ramamoorthi
© University of Wisconsin, CS559 Spring 2004
Skeletons and Skinning
Computer Animation and Visualisation Lecture 4. Skinning
Real-time Skeletal Skinning with Optimized Centers of Rotation
Chapter XIII Character Animation
Facial Expressions & Rigging
CSE 554 Lecture 10: Extrinsic Deformations
Three-Dimensional Object Representation
Introduction to Parametric Curve and Surface Modeling
Presentation transcript:

Advanced Skinning CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004

Project 2 Load a.skin file and attach it to a skeleton using the smooth skin algorithm Render it shaded using at least 2 different colored lights Add a simple interface for selecting a DOF and adjusting it within its limits Take a.skin and.skel file name from the command line Due Monday, 11:59pm, 2/2/04

Project 2: Extra Credit Render the skin with a texture map. A version of a.skin file with texture information and texture coordinates will be supplied (1 point) Load several.morph files and add vertex blending. Add additional user controlled DOFs to blend the morph targets (2 points)

Skin File (part 1) positions [numverts] { [x] [y] [z] } normals [numverts] { [x] [y] [z] } skinweights [numverts] { [numattachments] [joint0] [weight0] … [jN-1] [wN-1] }

Skin File (part 2) triangles [numtriangles] { [index0] [index1] [index2] } bindings [numjoints] { matrix { [ax] [ay] [az] [bx] [by] [bz] [cx] [cy] [cz] [dx] [dy] [dz] }

Skinning

Morphing & Smooth Skinning

Weighted Blending & Averaging Weighted sum: Weighted average: Convex average: Additive blend:

Shape Interpolation Algorithm To compute a blended vertex position: The blended position is the base position plus a contribution from each target whose DOF value is greater than 0 To blend the normals, we use a similar equation: We don’t need to normalize them now, as that will happen later in the skinning phase

Smooth Skin Algorithm The deformed vertex position is a weighted average over all of the joints that the vertex is attached to: W is a joint’s world matrix and B is a joint’s binding matrix that describes where it’s world matrix was when it was attached to the skin model (at skin creation time) Each joint transforms the vertex as if it were rigidly attached, and then those results are blended based on user specified weights All of the weights must add up to 1: Blending normals is essentially the same, except we transform them as directions (x,y,z,0) and then renormalize the results

Layered Approach We use a simple layered approach Skeleton Kinematics Shape Interpolation Smooth Skinning Most character rigging systems are based on some sort of layered system approach combined with general purpose data flow to allow for customization

Equation Summary Skeleton Morphing Skinning

Skeleton, Morph, & Skin Data Flow

Rig Data Flow Rigging System

Rigging and Animation Animation System Pose Rigging System Triangles Renderer

Pose Space Deformation

“Pose Space Deformation: A Unified Approach to Shape Interpolation and Skeleton-Driven Deformation” J. P. Lewis, Matt Cordner, Nickson Fong

Paper Outline 1. Introduction 2. Background 3. Deformation as Scattered Interpolation 4. Pose Space Deformation 5. Applications and Discussion 6. Conclusion

Key Goals of a Skinning System “The algorithm should handle the general problem of skeleton-influenced deformation rather than treating each area of anatomy as a special case. New creature topologies should be accommodated without programming or considerable setup efforts.”

Key Goals of a Skinning System “It should be possible to specify arbitrary desired deformations at arbitrary points in the parameter space, with smooth interpolation of the deformation between these points.”

Key Goals of a Skinning System “The system should allow direct manipulation of the desired deformations”

Key Goals of a Skinning System “The locality of deformation should be controllable, both spatially and in the skeleton’s configuration space (pose space).”

Key Goals of a Skinning System “In addition, we target a conventional animator- controlled work process rather than an approach based on automatic simulation. As such we require that animators be able to visualize the interaction of a reasonably high-resolution model with an environment in real time. Real time synthesis is also required for applications such as avatars and computer games”

Paper Outline (section 2) 2. Background 2.1 Surface Deformation Models 2.2 Multi-Layered and Physically Inspired Models 2.3 Common Practice Shape Interpolation Skeleton-Subspace Deformation Unified Approaches 2.4 Kinematic or Physical Simulation?

Key Technology Scattered Data Interpolation Using Radial Basis Functions

Key Technology Scattered Data Interpolation Using Radial Basis Functions Huh?

Interpolation Interpolation vs. Extrapolation Linear Interpolation vs. Higher Order Structured vs. Scattered 1-Dimensional vs. Multi-Dimensional Interpolation vs. Approximation

Interpolation Techniques Splines (cubic, B-splines, NURBS…) Series (polynomial, Fourier, radial basis functions, wavelets…) Rational functions Exact solution, minimization, fitting, approximation

Radial Basis Functions What is a radial basis function? How do we use them to interpolate data?

What is an RBF? A radial basis function (RBF) is simply a function based on a scalar radius: ψ(r) We can use it as a spherically symmetric function based on the distance from a point In 3D space, for example, you can think of a field emanating from a point that is symmetric in every direction (like a gravitational field of a planet) The value of that field is based entirely on the distance from the point (i.e., the radius)

Radial Basis Functions If we placed a RBF at location x k in space, and we want to know the value of the field at location x, we just compute: ψ(|x-x k |) This works with an x of any number of dimensions

Radial Basis Functions What function should we use for ψ(r) ? Well, technically, we could use any function we want We will choose to use a Gaussian:

Gaussian RBF Why use a Gaussian RBF? We want a function that has a localized influence that drops off to 0 at a distance We want to be able to adjust the range of influence (that’s what σ is for) We want a smooth function We want a function whose value is 1 at r=0 We want the first derivative to be 0 at r=0. This causes the function to be flat across the top and avoids spikes We want to use something that is relatively fast to compute

How Do We Use RBFs? How do we use radial basis functions to interpolate scattered data? We define the interpolated value at a point as a weighted sum of radial basis functions: The RBFs must be positioned and the weights adjusted so that the result best approximates the scattered data and smoothly interpolates the space between the data points

Example in One Dimension

Solving For Weight Values

Note on SDI in PSD Paper I use: Where the paper uses: The two are equivalent, and I don’t know why they do it the other way. It looks slower and more prone to numerical error, but I’ll look into it. Besides, the matrix is symmetric, so:

SDI, RBFs, and PSD PSD uses SDI as an improved technique for shape interpolation As RBFs drop to 0 away from the data points, it’s nice if you use them to interpolate functions that are close to 0. Therefore, they subtract off the default pose and treat all other poses as deviations from the default pose. They describe several other details of the implementation in sections 4 & 5

Performance of PSD At runtime, to compute a deformed vertex position, one must evaluate: for each component of the vertex. We can expand this to:

Performance of PSD Compare to simple morphing: PSD:

Memory Usage of PSD With morphing, every vertex must store Mx3 floats, where M is the number of targets that affect that vertex With PSD, every vertex must store Nx3+NxR floats, where N is the number of poses for the vertex and R is the number of DOFs affecting the vertex

Surface Oriented Free Form Deformations

Surface Oriented Free Form Deformation “Skinning Characters using Surface-Oriented Free-Form Deformations” Karan Singh Evangelos Kokkevis

Paper Outline 1. Introduction 2. Free-Form Deformation Techniques 3. Surface-Oriented Deformations 3.1 Overview of the Algorithm 3.2 Registration 3.3 Deformation 4. Algorithm Analysis 5. Skinning Workflow 6. Results and Conclusion

Registration Phase When the model is set up, every vertex in the high detail mesh must be attached to nearby triangles in the low detail mesh The attachment weights are based on a distance function And then normalized (so they sum up to 1) A vertex will generally only attach to a small number of triangles For every attachment, we find the coordinates in the triangle’s space

Registration To find the vertex position relative to the control triangle i, we build a registration matrix R i that defines the triangle’s space Note: I use different notation than the paper t1t1 t2t2 t3t3 a b c

Registration Both the high detail skin and the low detail control mesh are constructed in the skin local space If a vertex on the high detail skin is v, then its position v* in triangle i’s space is:

Deformation When the triangles of the control mesh get positioned into world space, we compute a new deformation matrix D using the same technique as we used to compute R Then, we transform the triangle-local vertex by this matrix This is done for all triangles affecting a vertex, and then we take a weighted sum

Deformation This looks familiar…

Deformation This looks familiar… When compared to: We see that SOFFD’s do the exact same math as smooth skinning! Instead of using matrices from skeletal joints they use matrices based on triangles

Layered Approach Skeleton Posing Pose Space Deformation Surface Oriented Free Form Deformation High Order Surface Tessellation