1 / 20

Extended Quadric Error Functions for Surface Simplification

Extended Quadric Error Functions for Surface Simplification . Deepak Bandyopadhyay COMP 258 F2000 Project. Quadric-based Simplification (Garland and Heckbert, SIGGRAPH97 ). Works on triangle meshes Iterative edge-collapse based (also face)

heidi
Download Presentation

Extended Quadric Error Functions for Surface Simplification

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Extended Quadric Error Functions for Surface Simplification Deepak Bandyopadhyay COMP 258 F2000 Project Deepak Bandyopadhyay / UNC Chapel Hill

  2. Quadric-based Simplification(Garland and Heckbert, SIGGRAPH97) • Works on triangle meshes • Iterative edge-collapse based (also face) • Edge to collapse picked (and new vertex position chosen) to minimize error according to a metric. • The Quadric Error Metric: • ax+by+cz+d=0 is equation for plane i thru v • Initially, Qv = iQi for all planes intersecting at v • Vertices combine during edge collapse: • Q = Q1 + Q2 • Find new point X s.t. xT Q x is minimized Deepak Bandyopadhyay / 258 / 3D Photography

  3. QEM Algorithm (QSlim package) • The main steps of the algorithm: • Initialize the quadrics at each vertex • Process each valid vertex pair (edge (v1, v2)) and compute optimal contracted vertex (v) and its error • Place all pairs in heap, min error on top. • Repeat • Remove pair from heap, contract it, update edge links and error values for these edges • Until desired face/edge count achieved. Deepak Bandyopadhyay / 258 / 3D Photography

  4. QEM, Characteristics • Very good simplification, very fast • Sharp features and non-manifolds preserved until triangle count really low (5.8k to 1000, here) Deepak Bandyopadhyay / 258 / 3D Photography

  5. Improvements to QEM • Some wasted work in finding optimal target for each edge if not going to collapse all edges. • Could an approximation be used • to pick the least cost edge ? • to compute position of new vertex? • to compute error of new vertex (if storing per-vertex error) ? • Tried all three of these, with varying results • Basis of approximation - “distance function” Deepak Bandyopadhyay / 258 / 3D Photography

  6. What is the “distance function” ? • A term that refers to the following non-Euclidean distance • for 2 points p and q, with normals Np and Nq : • DF(p,q)=  ||p-q|| + (1-) * { pTQqp + qTQpq } • Observation: Euclidean term does more harm than good • take =0 Deepak Bandyopadhyay / 258 / 3D Photography

  7. Quadric Variants (good ones underlined) • Original quadric (algorithm as presented) • Variant 1: Quadric with vertex error propagation • Distance fn. only for picking edge (midterm results) • Variant 2: Distance function for edge picking with vertex error propagation • Same, change DF by varying  • Variant 3: Distance function for edge picking, new vertex computation and propagation (the works). Deepak Bandyopadhyay / 258 / 3D Photography

  8. Vertex Errors • In original quadric, implicitly pTQpp is the vertex error (distance of p from planes) • The error of an edge collapse is • E(x) = Minx [xT(Qp+Qq)x] • referred to as “Merge Error of x” or ME(p,q,x) • We add to this terms for the accumulated error of p and q, which is zero initially for all vertices since they lie on all their planes. Deepak Bandyopadhyay / 258 / 3D Photography

  9. Error Propagation • Merge error may be optimum quadric error (best case), or distance fn error (an approximation) • Specially for DF, E(p)+E(q) is very important • it weights against merging heavily merged vertices which might otherwise have an attractive distance fn. • New vertex created stores error value E(x) E(x) = E(p) + E(q) + ME(p,q,x) Deepak Bandyopadhyay / 258 / 3D Photography

  10. Summary of Successful Variants • Variant 1 (Quadric w/ vertex errors) • ME(p,q,x) is optimum quadric error • Just like original, ME’s on all possible edges precomputed • vertex error propagation is used • heap key for an edge (p,q) that collapses to x is E(x) = E(p) + E(q) + xT(Qp+Qq)x Deepak Bandyopadhyay / 258 / 3D Photography

  11. Summary of Successful Variants • Variant 2 (Distance function w/ vertex error) • ME(p,q,x) is DF(p,q), vertex error propagates • Value on heap is E(x). So DF is precomputed for each edge • Involves two pT Q p - type quadric evaluations; very fast • However, new vertex position still chosen to optimize quadric error • Optimization (involves a matrix inversion) is not computed except for edges that are actually chosen to collapse Deepak Bandyopadhyay / 258 / 3D Photography

  12. Summary of Successful Variants • Variant 3 (Distance function for vertex placement) • ME(p,q,x) is DF(p,q), vertex error propagates • Value on heap is E(x). So DF is precomputed for each edge • Involves two pT Q p - type quadric evaluations; very fast • New vertex position is chosen to try to reduce DF error • Placement strategy : place closer to q if q is closer to the planes of p than p is to the planes of q (linear interpolation) • Optimization involves pTQqp and qTQpq which have already been computed for ME(p,q,x) Deepak Bandyopadhyay / 258 / 3D Photography

  13. Comparison of Performance • “Worst” case - 69k 100 triangles • Original, Var1, Var2, Var3 all about 18 sec • Why bad? Because almost all edges collapsed anyway! • “Average” case - 69k 10k triangles • Original 15 sec, Var1 17 sec, Var2 13.5 sec, Var3 13 sec • “Heavy load” case - 407k 40k triangles • Original (slowest) 1 min 40 sec, Var3 (fastest) 1 min25 sec • Full in depth profiling not done • Code is still unoptimized, results wouldn’t be accurate Deepak Bandyopadhyay / 258 / 3D Photography

  14. How to compare quality ? • Visually compare models at different resolutions • how well appearance, detail, extremal features preserved • Compare the lowest resolution models. • who can do the best with 100 ’s? Active research topic! • Use my “average (RMS) plane radius” function: Avg. Radius = • Average distance of point p from a plane in its quadric. Deepak Bandyopadhyay / 258 / 3D Photography

  15. Results : Full Resolution Models Cow (5.8 k triangles) Bunny (69 k triangles) Deepak Bandyopadhyay / 258 / 3D Photography

  16. Results: Cow, 3000 triangles Original Quadric(0) Quadric w/ Vertex Error (1) Spheres drawn per vertex, radius = Average Plane Radius x 1000 Deepak Bandyopadhyay / 258 / 3D Photography

  17. Results : Cow, 3000 triangles DF w/ vertex error (2) 2 + DF to calc new vertex (3) Spheres are drawn x1000 Deepak Bandyopadhyay / 258 / 3D Photography

  18. Results: Cow, 250 triangles Original Quadric(0) Quadric w/ Vertex Error (1) Spheres are drawn x100 Deepak Bandyopadhyay / 258 / 3D Photography

  19. Results : Cow, 250 triangles DF w/ vertex error (2) 2 + DF to calc new vertex (3) Deepak Bandyopadhyay / 258 / 3D Photography

  20. Results: Bunny, 1000 triangles Original quadric (0) DF all the way (3) Still looks pretty good : large errors near holes in the topology Deepak Bandyopadhyay / 258 / 3D Photography

More Related