420 likes | 612 Views
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
E N D
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 High Error Original 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 E3 E2 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
wopt u v wmid 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
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
wopt u v wmid 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
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 • Our Method • Consider all poses in a preprocess • Collapses are independent of pose Foreach collapse Foreach pose Compute error Perform collapse 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 Qvindependentof 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 • 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 • In the example, we avoid unnecessary stratification in y y x
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 • We can see these were achieved in the results • Crease kept in highest detail colored randomly coloredby area Less simplified More simplified
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)
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 pose-independent quadrics • Our method is shown to be accurate and efficient