Presentation is loading. Please wait.

Presentation is loading. Please wait.

Real-time Skeletal Skinning with Optimized Centers of Rotation

Similar presentations


Presentation on theme: "Real-time Skeletal Skinning with Optimized Centers of Rotation"— Presentation transcript:

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

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

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

4 Introduction

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

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

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

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

9 Linear Blend Skinning Early ideas appeared in: Exact description in:
BADLER, N. I., AND MORRIS, M Modelling flexible articulated objects. In Proc. Computer Graphics’ 82, Online Conf, 305–314. MAGNENAT-THALMANN, N., LAPERRIÈRE, R., AND THALMANN, D 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 Pose space deformation: a unified approach to shape interpolation and skeleton-driven deformation. In Proceedings of ACM SIGGRAPH, 165–172. Kavan, L SIGGRAPH Course Skinning: Real-time Shape Deformation, Part I: Direct Skinning Methods and Deformation Primitives in ACM SIGGRAPH 2014 Courses

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

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

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

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

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

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

16 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

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

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

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

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

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

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

23 Method – Transformation Translation – Similarity
Compare effect of all pairs of bones 𝑗,𝑘 on 𝒑,𝒗: Contribution of bones: 𝑤 𝒑𝑗 𝑤 𝒑𝑘 𝑤 𝒗𝑗 𝑤 𝒗𝑘 (higher = better) Distance between weights: 𝑤 𝒑𝑗 : 𝑤 𝒑𝑘 ≈ 𝑤 𝒗𝑗 : 𝑤 𝒗𝑘 𝑤 𝒑𝑗 𝑤 𝒗𝑘 − 𝑤 𝒑𝑘 𝑤 𝒗𝑗 ≈0 𝑠 𝑤 𝒑 , 𝑤 𝒗 = ∀𝑗≠𝑘 𝑤 𝒑𝑗 𝑤 𝒑𝑘 𝑤 𝒗𝑗 𝑤 𝒗𝑘 𝑒 − 𝑤 𝒑𝑗 𝑤 𝒗𝑘 − 𝑤 𝒑𝑘 𝑤 𝒗𝑗 𝜎 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.

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

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

26 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

27 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*.

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

29 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*.

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

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

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

33 Results

34 Results Method is not sensitive to parameter selection

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

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

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

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

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

40 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

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

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

43 Questions?


Download ppt "Real-time Skeletal Skinning with Optimized Centers of Rotation"

Similar presentations


Ads by Google