pose-independent simplification of skeletally articulated meshes
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Christopher DeCoro
Pose-independent Simplification Pose-independent Simplification of Skeletally Articulated Meshesof Skeletally Articulated Meshes
OverviewOverview• Meshes & SimplificationMeshes & Simplification
• Animation & Skeletal ArticulationAnimation & Skeletal Articulation
• Pose-independent Error MetricPose-independent Error Metric
• Results and ConclusionsResults and Conclusions
Triangle MeshesTriangle Meshes• Boundary representation of solid objectsBoundary representation of solid objects
– The object volume is contained inside the boundary• Set of triangles placed end-to-endSet 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:As number of triangles increases:– Detail and Smoothness increases (good)– Rendering time increases (bad)
Images by Hugues Hoppe
Mesh SimplificationMesh Simplification
• Mesh usually approximates underlying real-world geometryMesh 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 meshWe can create an approximation to the mesh– Minimize some distance, e.g. Hausdorff distance
Images by Hugues Hoppe
Framework: Greedy SimplificationFramework: Greedy Simplification
• Apply sequence of primitive operationsApply sequence of primitive operations– Can achieve any level of triangle resolution (1)– Apply the primitive operation causing least error
• Possible alternative frameworks:Possible alternative frameworks:– Independent sets– Lazy/Estimating selection
Original High Error Low Error
Primitive: Edge CollapsePrimitive: Edge Collapse• Collapse an edge Collapse an edge (u,v)(u,v) into a vertex into a vertex (w)(w)
– This is our primitive operation: edge collapse / ecol– Removes 2 faces, 1 vertex from the mesh
• Place new vertexPlace 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 primitivesOther primitives– Vertex removal with hole filling– Face collapse– Vertex clustering
Metric: Point-to-Plane DistanceMetric: Point-to-Plane Distance• Hausdorff distance computationally infeasibleHausdorff distance computationally infeasible
– Requires integration over all points, or correspondences
• Give vertex has a set of associated planesGive vertex has a set of associated planes– Measure error as total distance from point to all planes
p2p1
p3
E1 E2
E3
E = E12+E2
2+E32
Metric: Point-to-Plane DistanceMetric: Point-to-Plane Distance• For initial vertex, use planes of adjacent facesFor initial vertex, use planes of adjacent faces
– Implies that the original mesh is the one of lowest error
• After After ecol(u,v) ecol(u,v) w, w, use use planes(w) = planes(u) planes(w) = planes(u) U U planes(v)planes(v)– Vertex w now approximates u & v, should respect their constraints
• We use implicit form of planes: Ax + By + Cz + D = 0We 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 MetricQuadric Error Metric• Compute sum-of-squared distances over all planesCompute sum-of-squared distances over all planes
– We can factor out vertices from the summation
• Factor planes into error quadrics (symmetric 4x4 matrices)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 MetricQuadric Error Metric• Plane union is equivalent to quadric addition Plane union is equivalent to quadric addition
– By associativity of matrix addition– For collapse (u,v) w, use Qw = Qu + Qv
• Quadrics have two purposesQuadrics 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
u vwopt
wmid
Non-homogenous QuadricsNon-homogenous Quadrics
• Often simpler to view a 4x4 quadric as (Often simpler to view a 4x4 quadric as (AA,,bb,c),c)– Symmetric 3x3 matrix A– 3-vector b– Scalar value c
• Error can be computed with 3d coordinatesError can be computed with 3d coordinates
Optimal Vertex PositionOptimal Vertex Position
• Error is quadratic. Set gradient to 0, compute minimum.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 edgeOptimal vertex is often not on the edge
u vwopt
wmid
QSlim Simplification AlgorithmQSlim Simplification Algorithm
• Combine framework, primitive, and metric: QSlimCombine framework, primitive, and metric: QSlim– Framework: Greedy selection– Primitive: Edge collapse– Metric: Quadric error
• Compute initial quadrics Compute initial quadrics QQvv for every vertex for every vertex vv• Compute optimal error for each edge collapseCompute optimal error for each edge collapse• Place into min-priority queue keyed on collapse costPlace into min-priority queue keyed on collapse cost• While the queue is not emptyWhile 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
OverviewOverview• Meshes & SimplificationMeshes & Simplification
• Animation & Skeletal ArticulationAnimation & Skeletal Articulation
• Pose-independent Error MetricPose-independent Error Metric
• Results and ConclusionsResults and Conclusions
Kinematic SkeletonKinematic Skeleton• Tree of linear transformsTree 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 SkeletonsBenefits of Kinematic Skeletons• Human-intuitive control Human-intuitive control
– We are used to concepts like “bend elbow”
• Compact representation of animationCompact representation of animation– Store only animation of bones, not vertices
• Straight-forward blending and interpolationStraight-forward blending and interpolation– Represents transformations as rotations and translations– Rotations do not blend properly with Euclidean interpolation
Linear Blend SkinningLinear Blend Skinning• Each vertex of skin potentially influenced by all bonesEach 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 MWe can compute a transformation Mvv for a skinned vertex 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
OverviewOverview• Meshes & SimplificationMeshes & Simplification
• Animation & Skeletal ArticulationAnimation & Skeletal Articulation
• Pose-independent Error MetricPose-independent Error Metric
• Results and ConclusionsResults and Conclusions
Simplifying Articulated ModelsSimplifying Articulated Models• We would like to apply simplification to 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 posePROBLEM: Static methods only consider one pose– We call this the “bind” pose; original pose before animation– Good collapses may become bad after animation
Intuitive ExpectationsIntuitive Expectations• Suppose we have a “leg” modelSuppose we have a “leg” model
– Joint bends at the knee, 90 degree range of motion
• What do we expect to see? 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 MethodsHeuristics for Static Methods• We can apply heuristics to adapt static methodsWe can apply heuristics to adapt static methods
• Bend joints before applying simplificationBend 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 jointsPreserve high detail near joints– Could be manual or automatic– Leads to excessive preservation of detail
• Use models with geometric creases near jointsUse models with geometric creases near joints– Requires pre-existing property of the model
Pose-independent SimplificationPose-independent Simplification• Our Input: Our Input:
– Triangle mesh M with kinematic skeleton B– Probability distribution over configurations of B
• Our Metric: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-independenceAdvantages of Pose-independence• Naïve MethodNaïve Method
– Consider error in each pose for every collapse
• Our MethodOur Method– Consider all poses in a preprocess– Collapses are independent of pose
Foreach collapseForeach pose
Compute errorPerform collapse
Foreach vertexForeach pose
Compute quadricCombine quadrics from all poses
Foreach collapseUse single quadric to compute errorPerform collapse
Algorithm Overview:Algorithm Overview:• Similar structure to QslimSimilar structure to Qslim
– Makes large changes to initial quadric computation– We define a metric, which is independent of framework
• Integrated over every poseIntegrated over every pose– Compute initial quadrics Qv for every vertex v– Map quadrics into reference coordinate system
• Compute optimal error for each edge collapseCompute optimal error for each edge collapse• Place into min-priority queue keyed on collapse costPlace into min-priority queue keyed on collapse cost• While the queue is not emptyWhile 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 QuadricsGeometric Interpretation of Quadrics• We consider quadric error as defining an error isosurfaceWe consider quadric error as defining an error isosurface
– Usually ellipsoid, but may be degenerate
• The shape of the quadric indicates local geometryThe shape of the quadric indicates local geometry– Elongated along creases– Wide and flat along planar regions
Remapping Quadrics: IntuitionRemapping Quadrics: Intuition• Map quadrics into a Map quadrics into a
common posecommon pose– Otherwise, we are
penalizing for deformation when it does not exist
• Two components of Two components of skeleton transformationskeleton transformation– Rigid body transformation– Local surface deformation
• We want to remove rigid We want to remove rigid body effectsbody effects
Remapping Quadrics: DerivationRemapping Quadrics: Derivation• A vertex A vertex vv in pose in pose PP is transformed by is transformed by MMvv(P)(P)
– We can let vP = Mv(P)v, then factor out Qv independent of pose
• As k goes to infinity, the summation becomes an integralAs k goes to infinity, the summation becomes an integral– Weight each pose with probability distribution
• We are applying quadric update rule with MWe are applying quadric update rule with Mvv-1-1
Assigning Probability DistributionsAssigning Probability Distributions• Simplest: Box functionsSimplest: Box functions
– Range of values for which probability is non-zero
• More control: Gaussian distributionsMore control: Gaussian distributions– Assign “preferred angle” (mean), “stiffness” (standard deviation)– Corresponds to intuitive quantities
• Detailed control: sampled functionsDetailed control: sampled functions– Pre-defined animations– Motion capture
Function DimensionalityFunction Dimensionality• Pose-independent quadric function has high dimensionalityPose-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 applicableAnalytical methods and quadrature are not applicable– No clear analytical solution– Quadrature runs in exponential time with respect to dimensionality
34333231
24232221
14131211
mmmm
mmmm
mmmm
bM
Monte Carlo IntegrationMonte Carlo Integration• Compute definite integral through samplingCompute definite integral through sampling
– Take random discrete samples, compute average– Time independent of dimensionality
• Error expressed as noiseError expressed as noise– Need to reduce variance of approximation
Image by Peter Shirley
Recursive Stratified SamplingRecursive Stratified Sampling• Consider the sample space as a n-d parallelepipedConsider 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 regionsSlice 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 yIn the example, we avoid unnecessary stratification in y
y
x
Iterative ContractionIterative Contraction• New vertices must be given a bone influence vectorNew 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 justificationWe will see that this method has empirical justification
OverviewOverview• Meshes & SimplificationMeshes & Simplification
• Animation & Skeletal ArticulationAnimation & Skeletal Articulation
• Pose-independent Error MetricPose-independent Error Metric
• Results and ConclusionsResults and Conclusions
Intuitive ResultsIntuitive Results• Previously, we discussed our intuitive expectationsPreviously, we discussed our intuitive expectations• We show various levels of simplificationWe show various levels of simplification
• We can see these were achieved in the resultsWe can see these were achieved in the results– Crease kept in highest detail
Less simplified More simplified
colored randomly
coloredby area
Comparison to Static MethodsComparison to Static Methods• Standard QEM: does not Standard QEM: does not
preserve detailpreserve detail• Preserve near joint: Preserve near joint:
too much detail at joint, too much detail at joint, too little elsewheretoo little elsewhere
Weight-update Rule TestsWeight-update Rule Tests• We show both procedural and automatic weightsWe show both procedural and automatic weights
– Procedural weights are “ground truth”
• Our method is virtually indistinguishable from ground truthOur method is virtually indistinguishable from ground truth
Simplification ResultsSimplification Results• Standard Qslim is on the left, our method is on the rightStandard Qslim is on the left, our method is on the right
• Our method correctly preserves detail about the jointsOur method correctly preserves detail about the joints
Simplification ResultsSimplification Results• As simplification increases, detail is preserved at jointsAs simplification increases, detail is preserved at joints
Algorithm TimingsAlgorithm Timings• Compares favorably to standard QslimCompares favorably to standard Qslim
– About 25% overhead w/ 16 samples, less with fewer samples
• For larger models, QSlim iterative contraction dominatesFor larger models, QSlim iterative contraction dominates– Our preprocess is O(kn), the contraction is O(kn + n log n)
ModelModel VerticeVerticess
BonesBones 4 Samples4 Samples 8 Samples8 Samples 16 Samples16 Samples 32 Samples32 Samples
LegLeg 23062306 22 .06.06 .525.525 .11.11 .574.574 .22.22 .677.677 .15.15 .895.895
HorseHorse 4848548485 2222 1.51.5 18.718.7 2.82.8 19.919.9 5.435.43 22.422.4 10.810.8 28.028.0
CopCop 6388163881 1515 1.91.9 25.125.1 3.93.9 27.927.9 7.27.2 30.630.6 13.713.7 36.936.9
Future WorkFuture Work• Apply to more general classes of deformationsApply 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 samplingAnalyze the effect of importance sampling– Does it effectively reduce variance?
• Would this technique be applicable to other methods?Would this technique be applicable to other methods?– “Memoryless” quadric simplification– Vertex clustering (with or without quadrics)– Global simplification techniques
ConclusionsConclusions• Efficient methods for simplification of articulated objects Efficient methods for simplification of articulated objects
require factoring pose-dependent informationrequire factoring pose-dependent information• We have shown a method to efficiently compute pose-We have shown a method to efficiently compute pose-
independent quadricsindependent quadrics• Our method is shown to be accurate and efficientOur method is shown to be accurate and efficient