Spring 2014 CS274: Automatic Rigging

Embed Size (px)

DESCRIPTION

Motivation

Citation preview

Spring 2014 CS274: Automatic Rigging
Zhinan Xu, Tianyuan Qin, Yue Liu Motivation Algorithm Overview Primary 3D Silhouette Detection
global search, local search Curve Skeleton Extraction triangulation, pruning, joint detection Animation Skeleton Generation decomposition, refinement Skin Attachment skeleton hierarchical movement skin transformation interpolation Primary 3D Silhouette Detection
Global Search: Project all points to a 2D plane Find the 2D silhouette using a process similar to Jarvis March for convex hull computation Local Search: Connect all vertices according to the connectivity of the original 3D mesh model. Curve Skeleton Extraction
Triangulation Perform constrained Delaunay triangulation on 2D silhouette. Extract the 2D medial axes. Generate 3D medial axes from the 2D medial axes coupled with depth information which is interpolated from the 3D silhouette. Triangle Pruning Prune & Joint detection
Terminal Prune (cryan line) iteration Junction Prune BFS Joint Detection(red point) local minimal Branch Connection straight skeleton Curve Skeleton Extraction
Decomposition Medial axes generated from the previous step are separated to different branches. Assign vertices on the mesh to different groups base on their distance to each branches. Each branch now has a group of vertices belongs to it. Curve Skeleton Extraction
Curve Skeleton Refinement Depth information of the branches is not accurate. For each part, find a second projection plane that is perpendicular to the first projection plane. Construct another 3D silhouette based on the second projection. Adjust the depth of the branch base on it distance to the second silhouette Smooth the branches to get the curve skeleton Animation Skeleton Generation
Generate Skeleton Hierarchy Refined joint position Connection information Calculate the mass center joint as root Generate hierarchy starting from root with DFS Father Child Grandchild Rotate Hierarchy Skin Attachment Linear Blend Skinning
Find joints related to the skin vertices with weight Interpolate the joint transformations as vertices transformation Control them with UI Result by demo Implemenetation Language: C++ Libraries: OpenGL, OpenMesh, Face2D, Qt. Future Work Algorithm Limitations Future Work
Models need to be fully extended Algorithm is too sensitive to the occlusion Linear blend skinning causes lots of artifact Future Work Instead of forward kinematics, implement inverse kinematics Implement dual quaternion skinning Questions??? Thank you!!!