41
Christopher DeCoro Pose-independent Pose-independent Simplification of Simplification of Skeletally Articulated Skeletally Articulated Meshes Meshes

Pose-independent Simplification of Skeletally Articulated Meshes

  • Upload
    ham

  • View
    59

  • Download
    0

Embed Size (px)

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 Presentation

Citation preview

Page 1: Pose-independent Simplification of Skeletally Articulated Meshes

Christopher DeCoro

Pose-independent Simplification Pose-independent Simplification of Skeletally Articulated Meshesof Skeletally Articulated Meshes

Page 2: Pose-independent Simplification of Skeletally Articulated Meshes

OverviewOverview• Meshes & SimplificationMeshes & Simplification

• Animation & Skeletal ArticulationAnimation & Skeletal Articulation

• Pose-independent Error MetricPose-independent Error Metric

• Results and ConclusionsResults and Conclusions

Page 3: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 4: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 5: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 6: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 7: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 8: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 9: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 10: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 11: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 12: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 13: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 14: Pose-independent Simplification of Skeletally Articulated Meshes

OverviewOverview• Meshes & SimplificationMeshes & Simplification

• Animation & Skeletal ArticulationAnimation & Skeletal Articulation

• Pose-independent Error MetricPose-independent Error Metric

• Results and ConclusionsResults and Conclusions

Page 15: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 16: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 17: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 18: Pose-independent Simplification of Skeletally Articulated Meshes

OverviewOverview• Meshes & SimplificationMeshes & Simplification

• Animation & Skeletal ArticulationAnimation & Skeletal Articulation

• Pose-independent Error MetricPose-independent Error Metric

• Results and ConclusionsResults and Conclusions

Page 19: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 20: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 21: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 22: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 23: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 24: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 25: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 26: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 27: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 28: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 29: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 30: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 31: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 32: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 33: Pose-independent Simplification of Skeletally Articulated Meshes

OverviewOverview• Meshes & SimplificationMeshes & Simplification

• Animation & Skeletal ArticulationAnimation & Skeletal Articulation

• Pose-independent Error MetricPose-independent Error Metric

• Results and ConclusionsResults and Conclusions

Page 34: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 35: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 36: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 37: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 38: Pose-independent Simplification of Skeletally Articulated Meshes

Simplification ResultsSimplification Results• As simplification increases, detail is preserved at jointsAs simplification increases, detail is preserved at joints

Page 39: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 40: Pose-independent Simplification of Skeletally Articulated Meshes

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

Page 41: Pose-independent Simplification of Skeletally Articulated Meshes

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