Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "5/1/2000Deepak Bandyopadhyay / UNC Chapel Hill 1 Extended Quadric Error Functions for Surface Simplification Deepak Bandyopadhyay COMP 258 F2000 Project."— Presentation transcript:

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

2 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography2 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, Q v = i  Q i for all planes intersecting at v –Vertices combine during edge collapse: Q = Q 1 + Q 2 Find new point X s.t. x T Q x is minimized

3 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography3 QEM Algorithm (QSlim package) The main steps of the algorithm: –Initialize the quadrics at each vertex –Process each valid vertex pair (edge (v 1, v 2 )) 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.

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

5 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography5 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”

6 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography6 What is the “distance function” ? A term that refers to the following non-Euclidean distance –for 2 points p and q, with normals N p and N q : DF(p,q)=  ||p-q|| + (1-  ) * { p T Q q p + q T Q p q } Observation: Euclidean term does more harm than good –take  =0

7 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography7 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).

8 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography8 Vertex Errors In original quadric, implicitly p T Q p p is the vertex error (distance of p from planes) The error of an edge collapse is –E(x) = Min x [x T (Q p +Q q )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.

9 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography9 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)

10 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography10 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) + x T (Q p +Q q )x

11 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography11 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 p T 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

12 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography12 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 p T 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 p T Q q p and q T Q p q which have already been computed for ME(p,q,x)

13 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography13 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 min 25 sec Full in depth profiling not done –Code is still unoptimized, results wouldn’t be accurate

14 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography14 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.

15 11/6/2000Deepak Bandyopadhyay / 258 / 3D Photography15 Results : Full Resolution Models Cow (5.8 k triangles) Bunny (69 k triangles)

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

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

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

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

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


Download ppt "5/1/2000Deepak Bandyopadhyay / UNC Chapel Hill 1 Extended Quadric Error Functions for Surface Simplification Deepak Bandyopadhyay COMP 258 F2000 Project."

Similar presentations


Ads by Google