Real-time Skeletal Skinning with Optimized Centers of Rotation

Slides:



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

Configuration Space. Recap Represent environments as graphs –Paths are connected vertices –Make assumption that robot is a point Need to be able to use.
GRAPP, Lisbon, February 2009 University of Ioannina Skeleton-based Rigid Skinning for Character Animation Andreas Vasilakis and Ioannis Fudos Department.
Skinning CS418 Computer Graphics John C. Hart. Simple Inverse Kinematics Given target point (x,y) in position space, what are the parameters ( ,  )
CSE554Extrinsic DeformationsSlide 1 CSE 554 Lecture 9: Extrinsic Deformations Fall 2012.
Modeling the Shape of People from 3D Range Scans
3D Graphics for Game Programming (J. Han) Chapter XI Character Animation.
Linear Blend Skinning.
Introduction It is not uncommon for people to think of geometric figures, such as triangles and quadrilaterals, to be separate from algebra; however, we.
Uncertainty Representation. Gaussian Distribution variance Standard deviation.
Motion Analysis (contd.) Slides are from RPI Registration Class.
Advanced Skinning CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2004.
1cs426-winter-2008 Notes  Collision notes part 1 (primitive operations) should be up on the weekend.
Announcements Take home quiz given out Thursday 10/23 –Due 10/30.
1 Free-Form Deformations Free-Form Deformation of Solid Geometric Models Fast Volume-Preserving Free Form Deformation Using Multi-Level Optimization Free-Form.
CSE 473 Dr. Charles B. Owen Fundamentals of 3D Game Development1 Skeletons and Skinning Bones and Skeletons Mesh Skinning.
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.
Chapter 5.2 Character Animation. CS Overview Fundamental Concepts Animation Storage Playing Animations Blending Animations Motion Extraction Mesh.
Faking Dynamics of Cloth Animation for Animated Films Fabian Di Fiore Expertise Centre for Digital Media Hasselt University, Belgium
Laplacian Surface Editing
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.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
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.
Shape Matching for Model Alignment 3D Scan Matching and Registration, Part I ICCV 2005 Short Course Michael Kazhdan Johns Hopkins University.
CS 551/651 Advanced Computer Graphics Warping and Morphing Spring 2002.
Week 2 - Wednesday CS361.
Week 5 - Wednesday.  What did we talk about last time?  Project 2  Normal transforms  Euler angles  Quaternions.
Character Animation for Realtime Applications Michael Putz Klaus Hufnagl Institute of Computer Graphics Graz University of Technology Austria.
Computer Graphics Soft Body Animation - Skinning CO2409 Computer Graphics Week 22.
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.
Multimedia System and Networking UTD Slide- 1 University of Texas at Dallas B. Prabhakaran Rigging.
AS-RIGID-AS-POSSIBLE SHAPE MANIPULATION
Algirdas Beinaravičius Gediminas Mazrimas.  Introduction  Motion capture and motion data  Used techniques  Animating human body  Problems  Conclusion.
David Levin Tel-Aviv University Afrigraph 2009 Shape Preserving Deformation David Levin Tel-Aviv University Afrigraph 2009 Based on joint works with Yaron.
Sculpted Data Driven and Physically Based Character Deformation Patrick Coleman CSC 2529 Character Animation February 12, 2003.
Basic Perspective Projection Watt Section 5.2, some typos Define a focal distance, d, and shift the origin to be at that distance (note d is negative)
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 9 Ravi Ramamoorthi
CS 450: COMPUTER GRAPHICS ANIMATION SPRING 2015 DR. MICHAEL J. REALE.
Skeletal Animation and Skinning A (hardware friendly) software approach By: Brandon Furtwangler.
Spring 2014 CS274: Automatic Rigging
Basic Theory (for curve 01). 1.1 Points and Vectors  Real life methods for constructing curves and surfaces often start with points and vectors, which.
3D GRAPHICS RENDERING PIPELINE CS / TECHNICAL BACKGROUND PAGE 11.
CGDD 4003 Character Animation. The Skeletal Hierarchy (aka the “rig”) Based on the concept of bones Each bone has exactly one parent Each bone has a transform.
Shape2Pose: Human Centric Shape Analysis CMPT888 Vladimir G. Kim Siddhartha Chaudhuri Leonidas Guibas Thomas Funkhouser Stanford University Princeton University.
11/25/03 3D Model Acquisition by Tracking 2D Wireframes Presenter: Jing Han Shiau M. Brown, T. Drummond and R. Cipolla Department of Engineering University.
Efficient Dynamic Skinning with Low-Rank Helper Bone Controllers Tomohiko Mukai, Tokai University Shigeru Kuriyama, Toyohashi University of Technology.
Sculpted Data Driven and Physically Based Character Deformation
Bones Skeletal Unity-2D How & When
Morphing and Shape Processing
Introduction A chef takes a knife and slices a carrot in half. What shape results? Depending on the direction of the cut, the resulting shape may resemble.
You can check broken videos in this slide here :
Introduction It is not uncommon for people to think of geometric figures, such as triangles and quadrilaterals, to be separate from algebra; however, we.
Craig Schroeder October 26, 2004
Skeletons and Skinning
Computer Animation and Visualisation Lecture 4. Skinning
Combining Geometric- and View-Based Approaches for Articulated Pose Estimation David Demirdjian MIT Computer Science and Artificial Intelligence Laboratory.
Chapter XIII Character Animation
Prepared by: Engr . Syed Atir Iftikhar
UMBC Graphics for Games
Introduction Congruent triangles have corresponding parts with angle measures that are the same and side lengths that are the same. If two triangles are.
CSE 554 Lecture 10: Extrinsic Deformations
Synthesis of Motion from Simple Animations
Computer Animation Algorithms and Techniques
A9 Graphs of non-linear functions
Simplification of Articulated Mesh
Presentation transcript:

Real-time Skeletal Skinning with Optimized Centers of Rotation Dionysi Alexandridis 5523532 Kevin Makatipu 4297024

Contents Introduction Related Work Linear Blend Skinning Method Results Limitations Conclusion Discussion

Contents Introduction Related Work Linear Blend Skinning Method Results Limitations Conclusion Discussion

Introduction https://doc.cgal.org/latest/Surface_mesh_deformation/index.html

Introduction Geometric skinning Physical based methods Skeletal skinning Physical based methods Collisions Jiggling Data-driven methods Blend shapes

Contents Introduction Related Work Linear Blend Skinning Method Results Limitations Conclusion Discussion

Related Work Log Matrix Skinning (LMS) Spherical Blend Skinning (SBS) Linear Blend Skinning (LBS) Dual Quaternion Skinning (DQS)

Contents Introduction Related Work Linear Blend Skinning Method Results Limitations Conclusion Discussion

Linear Blend Skinning Early ideas appeared in: Exact description in: BADLER, N. I., AND MORRIS, M. 1982. Modelling flexible articulated objects. In Proc. Computer Graphics’ 82, Online Conf, 305–314. MAGNENAT-THALMANN, N., LAPERRIÈRE, R., AND THALMANN, D. 1988. Joint-dependent local deformations for hand animation and object grasping. In Graphics Interface, 26–33.\ Exact description in: LEWIS, J. P., CORDNER, M., AND FONG, N. 2000. Pose space deformation: a unified approach to shape interpolation and skeleton-driven deformation. In Proceedings of ACM SIGGRAPH, 165–172. Kavan, L. 2014. SIGGRAPH Course 2014 - Skinning: Real-time Shape Deformation, Part I: Direct Skinning Methods and Deformation Primitives in ACM SIGGRAPH 2014 Courses

Linear Blend Skinning Input data: Rest pose shape: e.g. polygon mesh Bone transformations Skinning weights Output: Deformed mesh

Linear Blend Skinning 𝑣 𝑖 ′ = 𝑗=1 𝑚 𝑤 𝑖𝑗 𝑇 𝑗 𝑣 𝑖 𝑣 𝑖 ′ = 𝑗=1 𝑚 𝑤 𝑖𝑗 𝑇 𝑗 𝑣 𝑖 𝑤 𝑖𝑗 Skinning weight for vertex 𝑖 for bone 𝑗 𝑇 𝑗 Transformation for bone 𝑗 𝑣 𝑖 Vertex 𝑖

Linear Blend Skinning Interpolate according to skinning weights 𝑣 𝑖 ′ = 𝑗=1 𝑚 𝑤 𝑖𝑗 𝑇 𝑗 𝑣 𝑖

Linear Blend Skinning Interpolate according to skinning weights 𝑣 𝑖 ′ = 𝑗=1 𝑚 𝑤 𝑖𝑗 𝑇 𝑗 𝑣 𝑖

Linear Blend Skinning Interpolate according to skinning weights 𝑣 𝑖 ′ = 𝑗=1 𝑚 𝑤 𝑖𝑗 𝑇 𝑗 𝑣 𝑖

Contents Introduction Related Work Linear Blend Skinning Method Results Limitations Conclusion Discussion

Method – Requirements & Assumptions Backward compatible with existing animation pipelines Rest pose Skeleton Skinning weights Local transformations rigid Similar skinning weights? Similar transformations I’ll now start explaining our paper’s method of skinning. Most important requirement: backward compatible Two key assumptions

Method – Transformation For every vertex 𝒑 of rest pose, transform with 𝑅 𝒑 𝑡 𝒑 Get 𝑅 𝒑 with QLERP So how are we going to transform a rest-pose vertex? We want for every vertex p a transformation matrix. The rotation we can get with LERP, or more specifically…

Method – Transformation For every vertex 𝒑 of rest pose, transform with 𝑅 𝒑 𝑡 𝒑 Get 𝑅 𝒑 with QLERP And tp? …QLERP, which can interpolate in circles instead of straight lines. Won’t go into detail. But what about tp?

Method – Transformation Translation A vertex 𝒗 with similar skinning weights to 𝒑 has similar transformations 𝒑 and all similar vertices 𝒗 undergo rigid transformation ⇩ Try to rigidly translate, match 𝒑 and all 𝒗 to LBS-deformed pose as much as possible Use that translation as 𝑡 𝒑 ! Taking back our two assumptions. Try to translate entire region to match LBS as much as possible. LBS isn’t rigid, but we try to rigidly translate p and {v} to LBS. We use that translation purely for p.

Method – Transformation Translation How do we get all vertices 𝒗 similar to 𝒑? How do we match 𝒑 and all 𝒗 to LBS-deformed pose rigidly? Two problems remain: How do we get similar vertices? How do we match the regions with LBS? We’ll first tackle the first problem.

Method – Transformation Translation – Similarity How do we get all vertices 𝒗 similar to 𝒑? We want a similarity function 𝑠 𝑤 𝒑 , 𝑤 𝒗 Based on: Contribution of bones Some “distance” between weights How do we get {v}? We want a similarity function s(…) that gives the similarity. Based on these two things.

Method – Transformation Translation – Similarity We want a similarity function 𝑠 𝑤 𝒑 , 𝑤 𝒗 Based on: Contribution of bones Some “distance” between weights Compare effect of all pairs of bones 𝑗,𝑘 on 𝒑,𝒗: Contribution of bones: 𝑤 𝒑𝑗 𝑤 𝒑𝑘 𝑤 𝒗𝑗 𝑤 𝒗𝑘 (higher = better) Distance between weights: 𝑤 𝒑𝑗 : 𝑤 𝒑𝑘 ≈ 𝑤 𝒗𝑗 : 𝑤 𝒗𝑘 𝑤 𝒑𝑗 𝑤 𝒗𝑘 − 𝑤 𝒑𝑘 𝑤 𝒗𝑗 ≈0 p j v k Take our example arm back. For vertex p, we want to find similarity with a vertex v. Compare effect of all possible pairs of bones j and k on vertices. Contribution of bones is represented by this. Distance between weights by this. Ratio should be equal, shuffle things around and get this. We’re not going too in-depth on this.

Method – Transformation Translation – Similarity Compare effect of all pairs of bones 𝑗,𝑘 on 𝒑,𝒗: Contribution of bones: 𝑤 𝒑𝑗 𝑤 𝒑𝑘 𝑤 𝒗𝑗 𝑤 𝒗𝑘 (higher = better) Distance between weights: 𝑤 𝒑𝑗 : 𝑤 𝒑𝑘 ≈ 𝑤 𝒗𝑗 : 𝑤 𝒗𝑘 𝑤 𝒑𝑗 𝑤 𝒗𝑘 − 𝑤 𝒑𝑘 𝑤 𝒗𝑗 ≈0 𝑠 𝑤 𝒑 , 𝑤 𝒗 = ∀𝑗≠𝑘 𝑤 𝒑𝑗 𝑤 𝒑𝑘 𝑤 𝒗𝑗 𝑤 𝒗𝑘 𝑒 − 𝑤 𝒑𝑗 𝑤 𝒗𝑘 − 𝑤 𝒑𝑘 𝑤 𝒗𝑗 2 𝜎 2 So having this, our similarity function becomes this. Yellow sums over all pairs. Green is contribution of bones. Cyan is distance between weights, with the exponential making it so that higher = more similar. Now we have our similarity function.

Method – Transformation Translation How do we get all vertices 𝒗 similar to 𝒑? How do we match 𝒑 and all 𝒗 to LBS-deformed pose rigidly? Going back to the two problems we needed to solve to get tp, we now have solved the first one.

Method – Transformation Translation How do we get all vertices 𝒗 similar to 𝒑? ⇒ 𝑠 𝑤 𝒑 , 𝑤 𝒗 How do we match 𝒑 and all 𝒗 to LBS-deformed pose rigidly? We have our similarity function, but the second problem still remains.

Method – Transformation Translation How do we match 𝒑 and all 𝒗 to LBS-deformed pose rigidly? 𝑡 𝒑 = arg min 𝑡 𝒗∈Ω 𝑠 𝑤 𝒑 , 𝑤 𝒗 𝑅 𝒑 𝒗+𝑡− 𝒗 𝟐 ⅆ𝒗 𝒗 = 𝑗=1 𝑚 𝑤 𝒑𝑗 𝑅 𝑗 𝒗+ 𝑡 𝑗 = LBS-deformed 𝒗 So how do we deform p and similar vertices {v}? With this function. Again, I won’t go in-depth. Basically: For every vertex in the pose: Rotate vertices Try out different t and translate Subtract by LBS-deformed v To get distance and thus error Multiply by similarity Get the t that minimizes this

Method – Transformation Translation 𝒑 𝑳𝑩𝑺 ∗ How do we match 𝒑 and all 𝒗 to LBS-deformed pose rigidly? 𝑡 𝒑 = arg min 𝑡 𝒗∈Ω 𝑠 𝑤 𝒑 , 𝑤 𝒗 𝑅 𝒑 𝒗+𝑡− 𝒗 𝟐 ⅆ𝒗 = 𝑗=1 𝑚 𝑤 𝒑𝑗 𝑅 𝑗 𝒑 ∗ + 𝑡 𝑗 − 𝑅 𝒑 𝒑 ∗ 𝑡 𝒑 ∗ 𝒑 𝒓𝒆𝒔𝒕 ∗ 𝒑 ∗ independent of bone transformations! Pre-compute it 𝒑 ∗ plays role of center of rotation (CoR) of rest-pose 𝒑 Yellow = LBS applied to 𝒑 ∗ = CoR of transformed 𝒑 𝒑 ∗ = 𝒗∈Ω 𝑠 𝑤 𝒑 , 𝑤 𝒗 𝒗ⅆ𝒗 𝒗∈Ω 𝑠 𝑤 𝒑 , 𝑤 𝒗 ⅆ𝒗 Math magic rewrites the function to this. Minimization problem is removed. p* is substitution, weird integral that takes long to compute. a to b = area triangle, height = similarity. Anyhow, observations the researchers made. p* can be pre-computed. p* = CoR. Yellow = LBS p*.

Method – Transformation Translation How do we get all vertices 𝒗 similar to 𝒑? ⇒ 𝑠 𝑤 𝒑 , 𝑤 𝒗 How do we match 𝒑 and all 𝒗 to LBS-deformed pose rigidly? Know we finally know how to match p and {v} to LBS.

Method – Transformation Translation How do we get all vertices 𝒗 similar to 𝒑? ⇒ 𝑠 𝑤 𝒑 , 𝑤 𝒗 How do we match 𝒑 and all 𝒗 to LBS-deformed pose rigidly? ⇒ 𝑗=1 𝑚 𝑤 𝒑𝑗 𝑅 𝑗 𝒑 ∗ + 𝑡 𝑗 − 𝑅 𝒑 𝒑 ∗ With this function, pre-computing p*.

Method – Transformation For every vertex 𝒑 of rest pose, transform with 𝑅 𝒑 𝑡 𝒑 Get 𝑅 𝒑 with QLERP And tp? So now we have both the rotation and the translation of our transformation!

Method – Transformation For every vertex 𝒑 of rest pose, transform with 𝑅 𝒑 𝑡 𝒑 Get 𝑅 𝒑 with QLERP And tp with 𝑗=1 𝑚 𝑤 𝒑𝑗 𝑅 𝑗 𝒑 ∗ + 𝑡 𝑗 − 𝑅 𝒑 𝒑 ∗ Here.

Contents Introduction Related Work Linear Blend Skinning Method Results Limitations Conclusion Discussion

Results https://www.youtube.com/watch?v=DfIfcQiC2oA&t=164

Results Method is not sensitive to parameter selection

Results Method is not sensitive to parameter selection Low pre-computational time

Results Method is not sensitive to parameter selection Low pre-computational time Tackles Artifacts produced by LBS and DQS Volume Loss Collapsing elbow Bulging

Contents Introduction Related Work Linear Blend Skinning Method Algorithm Results Limitations Conclusion Discussion

Limitations Limitations of direct skinning methods: Intersections Jiggling Still produces volume loss For 3D-CoR bodies Determining skinning weights Real-time visualization of CoRs

Contents Introduction Related Work Linear Blend Skinning Method Algorithm Results Limitations Conclusion Discussion

Conclusion Addresses common artifacts of LBS and DQS Can still produce volume loss at smaller rate Drop-in for many existing applications Compute CoRs from only rest-pose Performs in real-time

Contents Introduction Related Work Linear Blend Skinning Method Algorithm Results Limitations Conclusion Discussion

Discussion The authors assume that “local transformations are rigid”, however distance between vertices is never taken into account by the provided equations. Do you think that this assumption is necessary? We expect that the authors assume that vertices with similar skinning weights are close to each other, since the distance between vertices is not taken into account in their method. Their method also tries to transform the vertices with similar skinning weights rigidly, which together with their assumption implies that local transformations are also rigid. We also expect that vertices with similar skinning weights, that also have a large distance to each other, are uncommon.

Questions?