Pose-independent Simplification of Skeletally Articulated Meshes Christopher DeCoro Overview • Meshes & Simplification • Animation & Skeletal Articulation • Pose-independent Error Metric • Results and Conclusions Triangle Meshes • Boundary representation of solid objects – The object volume is contained inside the boundary • Set of triangles placed end-to-end – Simplicial complex. Represents 2-manifold, possibly with boundary – Can represent smooth surfaces to arbitrary precision • As number of triangles increases: – Detail and Smoothness increases (good) – Rendering time increases (bad) Images by Hugues Hoppe Mesh Simplification • Mesh usually approximates underlying real-world geometry – Smooth surfaces cannot be represented exactly – Microscopic detail is too small to be perceived • We can create an approximation to the mesh – Minimize some distance, e.g. Hausdorff distance Images by Hugues Hoppe Framework: Greedy Simplification • Apply sequence of primitive operations – Can achieve any level of triangle resolution (1) – Apply the primitive operation causing least error • Possible alternative frameworks: – Independent sets – Lazy/Estimating selection Original High Error Low Error Primitive: Edge Collapse • Collapse an edge (u,v) into a vertex (w) – This is our primitive operation: edge collapse / ecol – Removes 2 faces, 1 vertex from the mesh • Place new vertex – Endpoints: keep one of the original endpoints – Midpoint: use the average of the two vertices – Optimal: find best location for vertex by solving for minimum error • Other primitives – Vertex removal with hole filling – Face collapse – Vertex clustering Metric: Point-to-Plane Distance • Hausdorff distance computationally infeasible – Requires integration over all points, or correspondences • Give vertex has a set of associated planes – Measure error as total distance from point to all planes p1 p2 E1 E2 E3 p3 E = E12+E22+E32 Metric: Point-to-Plane Distance • For initial vertex, use planes of adjacent faces – Implies that the original mesh is the one of lowest error • After ecol(u,v) w, use planes(w) = planes(u) U planes(v) – Vertex w now approximates u & v, should respect their constraints • We use implicit form of planes: Ax + By + Cz + D = 0 – Let plane p = (A, B, C, D), homogenous vertex v = (x,y,z,1) – Distance from p to v is pTv Quadric Error Metric • Compute sum-of-squared distances over all planes – We can factor out vertices from the summation • Factor planes into error quadrics (symmetric 4x4 matrices) – Avoids requirement to keep list of planes – Common math technique to represent quadratic form as a matrix multiplication – Scale by Voronoi area to compensate for triple count Quadric Error Metric • Plane union is equivalent to quadric addition – By associativity of matrix addition – For collapse (u,v) w, use Qw = Qu + Qv • Quadrics have two purposes – For a collapse (u,v) w, compute the collapse error – For an edge (u,v), find wopt such that the error is minimized wopt u v wmid Non-homogenous Quadrics • Often simpler to view a 4x4 quadric as (A,b,c) – Symmetric 3x3 matrix A – 3-vector b – Scalar value c • Error can be computed with 3d coordinates Optimal Vertex Position • Error is quadratic. Set gradient to 0, compute minimum. – Vertex wopt is the optimal position after edge collapse – If A is singular, solve least-squares solution – Or take the minimum of endpoints and middle • Optimal vertex is often not on the edge wopt u v wmid QSlim Simplification Algorithm • Combine framework, primitive, and metric: QSlim – Framework: Greedy selection – Primitive: Edge collapse – Metric: Quadric error • • • • Compute initial quadrics Qv for every vertex v Compute optimal error for each edge collapse Place into min-priority queue keyed on collapse cost While the queue is not empty – Collapse the edge on the top of the queue to a single vertex – Update the costs of all edges in the affected neighborhood Reference from “Surface Simplification using Quadric Error Metrics”, M. Garland, P. Heckbert Overview • Meshes & Simplification • Animation & Skeletal Articulation • Pose-independent Error Metric • Results and Conclusions Kinematic Skeleton • Tree of linear transforms – Every node n has a parent p, except the root – Node n has an associated linear transform Mn (local transform) – Global transform of n is Mn applied recursively to Mp Benefits of Kinematic Skeletons • Human-intuitive control – We are used to concepts like “bend elbow” • Compact representation of animation – Store only animation of bones, not vertices • Straight-forward blending and interpolation – Represents transformations as rotations and translations – Rotations do not blend properly with Euclidean interpolation Linear Blend Skinning • Each vertex of skin potentially influenced by all bones – Normalized weight vertex gives influence of each bone transform – When bones move, influenced vertices also move • We can compute a transformation Mv for a skinned vertex – For each bone » Compute transformation Nb from bind pose to bone coordinates » Compute global bone transformation Mb from parent transformation – For each vertex » Take a linear combination of bone transforms » Apply transformation to vertex in original pose Overview • Meshes & Simplification • Animation & Skeletal Articulation • Pose-independent Error Metric • Results and Conclusions Simplifying Articulated Models • We would like to apply simplification to articulated models – Static models are not entirely useful in computer graphics • PROBLEM: Static methods only consider one pose – We call this the “bind” pose; original pose before animation – Good collapses may become bad after animation Intuitive Expectations • Suppose we have a “leg” model – Joint bends at the knee, 90 degree range of motion • What do we expect to see? – Areas away from the joints dramatically simplified – Crease at the bottom preserved in high detail – Rounded top maintains mid-level of detail Heuristics for Static Methods • We can apply heuristics to adapt static methods • Bend joints before applying simplification – Can overcompensate and lead to poor unbent configuration – Does not consider 2-DOF joints, or those with wide range of motion – Requires manual intervention • Preserve high detail near joints – Could be manual or automatic – Leads to excessive preservation of detail • Use models with geometric creases near joints – Requires pre-existing property of the model Pose-independent Simplification • Our Input: – Triangle mesh M with kinematic skeleton B – Probability distribution over configurations of B • Our Metric: – Compute expected point-to-plane distance over all poses, weighted by – Each pose p has an vertex vp that maps to v – The pose-dependent quadric Qv,p can be computed directly – We could naïvely compute pose-dependent error over all poses – Our goal will be to factor the vertices out of the integral, and define a pose-independent quadric that incorporates all poses Advantages of Pose-independence • Naïve Method – Consider error in each pose for every collapse Foreach collapse Foreach pose Compute error Perform collapse • Our Method – Consider all poses in a preprocess – Collapses are independent of pose Foreach vertex Foreach pose Compute quadric Combine quadrics from all poses Foreach collapse Use single quadric to compute error Perform collapse Algorithm Overview: • Similar structure to Qslim – Makes large changes to initial quadric computation – We define a metric, which is independent of framework • Integrated over every pose – Compute initial quadrics Qv for every vertex v – Map quadrics into reference coordinate system • Compute optimal error for each edge collapse • Place into min-priority queue keyed on collapse cost • While the queue is not empty – Collapse the edge on the top of the queue to a single vertex – Compute new skin influence vector – Update the costs of all edges in the affected neighborhood Geometric Interpretation of Quadrics • We consider quadric error as defining an error isosurface – Usually ellipsoid, but may be degenerate • The shape of the quadric indicates local geometry – Elongated along creases – Wide and flat along planar regions Remapping Quadrics: Intuition • Map quadrics into a common pose – Otherwise, we are penalizing for deformation when it does not exist • Two components of skeleton transformation – Rigid body transformation – Local surface deformation • We want to remove rigid body effects Remapping Quadrics: Derivation • A vertex v in pose P is transformed by Mv(P) – We can let vP = Mv(P)v, then factor out Qv independent of pose • As k goes to infinity, the summation becomes an integral – Weight each pose with probability distribution • We are applying quadric update rule with Mv-1 Assigning Probability Distributions • Simplest: Box functions – Range of values for which probability is non-zero • More control: Gaussian distributions – Assign “preferred angle” (mean), “stiffness” (standard deviation) – Corresponds to intuitive quantities • Detailed control: sampled functions – Pre-defined animations – Motion capture Function Dimensionality • Pose-independent quadric function has high dimensionality – Affine transformation (3x4 matrix) – 12 degrees of freedom per bone – Can apply reparameterization to 3d rotation m11 M b m21 m 31 m12 m13 m22 m23 m32 m33 m14 m24 m34 • Analytical methods and quadrature are not applicable – No clear analytical solution – Quadrature runs in exponential time with respect to dimensionality Monte Carlo Integration • Compute definite integral through sampling – Take random discrete samples, compute average – Time independent of dimensionality • Error expressed as noise – Need to reduce variance of approximation Image by Peter Shirley Recursive Stratified Sampling • Consider the sample space as a n-d parallelepiped – Stratified sampling helps to reduced variance – Should not spend extra samples in dims with low variance • Slice along the longest dim into 2 smaller regions – Continue recursively until desired level of subdivision reached – Can also test for variance explicitly y x • In the example, we avoid unnecessary stratification in y Iterative Contraction • New vertices must be given a bone influence vector – – – – Each parent exerts an influence on the child per bone Directly proportional to bone influence on parent vertex Influence falls-off based on distance Use the following linear interpolation system: • We will see that this method has empirical justification Overview • Meshes & Simplification • Animation & Skeletal Articulation • Pose-independent Error Metric • Results and Conclusions Intuitive Results • Previously, we discussed our intuitive expectations • We show various levels of simplification colored randomly colored by area Less simplified More simplified • We can see these were achieved in the results – Crease kept in highest detail Comparison to Static Methods • Standard QEM: does not preserve detail • Preserve near joint: too much detail at joint, too little elsewhere Weight-update Rule Tests • We show both procedural and automatic weights – Procedural weights are “ground truth” • Our method is virtually indistinguishable from ground truth Simplification Results • Standard Qslim is on the left, our method is on the right • Our method correctly preserves detail about the joints Simplification Results • As simplification increases, detail is preserved at joints Algorithm Timings • Compares favorably to standard Qslim – About 25% overhead w/ 16 samples, less with fewer samples • For larger models, QSlim iterative contraction dominates – Our preprocess is O(kn), the contraction is O(kn + n log n) Model Vertices Bones 4 Samples 8 Samples 16 Samples 32 Samples Leg 2306 2 .06 .525 .11 .574 .22 .677 .15 .895 Horse 48485 22 1.5 18.7 2.8 19.9 5.43 22.4 10.8 28.0 Cop 63881 15 1.9 25.1 3.9 27.9 7.2 30.6 13.7 36.9 Future Work • Apply to more general classes of deformations – Linear Free Form Deformation is a natural choice – Time-dependent animation requires fitting transforms • Analyze the effect of importance sampling – Does it effectively reduce variance? • Would this technique be applicable to other methods? – “Memoryless” quadric simplification – Vertex clustering (with or without quadrics) – Global simplification techniques Conclusions • Efficient methods for simplification of articulated objects require factoring pose-dependent information • We have shown a method to efficiently compute poseindependent quadrics • Our method is shown to be accurate and efficient