600 likes | 1.2k Views
Measuring Simplification Error. Jonathan Cohen Computer Science Department Johns Hopkins University <cohen@cs.jhu.edu> http://www.cs.jhu.edu/~cohen. Why Measure Error?. * Guide simplification process Making better choices produces better simplifications Know quality of results
E N D
Measuring Simplification Error Jonathan Cohen Computer Science Department Johns Hopkins University <cohen@cs.jhu.edu> http://www.cs.jhu.edu/~cohen
Why Measure Error? • * Guide simplification process • Making better choices produces better simplifications • Know quality of results • Object-space error bounds describes quality • Know when to show a particular LOD • Which LOD for a given screen-space error • * Balance quality for large environments • What error bound for a given polygon count
Geometric Error Measures • Promote accurate 3D shape preservation • Also preserves screen-space shape • Silhouettes • Pixel coverage
Ford Bronco Model Triangles: 41,855 27,970 20,922 12,939 8,385 4,766 courtesy of Division and Viewpoint
Performing Simplification • Measure cost of possible operations according to error measure • Crucial to simplification quality • Place operations in queue according to error • Perform operations in queue • After each operation, re-evaluate error of operations in neighborhood
Classifying Geometric Error Metrics • Vertex-vertex distance • Vertex-plane distance • Point-surface distance • Surface-surface distance
Vertex-Vertex Distance • E = max( dist(v1,v3) , dist(v2,v3) ) • Measures the maximum distance travelled by merging vertices • Appropriate during topology changes • Rossignac and Borrel 93, • Luebke and Erikson 97 • Loose for topology-preserving collapses v3 v2 v1
Minimizing/Propagating Error • Error spheres record error at each vertex • Guaranteed bound, but very conservative • Minimum location lies on edge • Not always at the center
Vertex-Plane Distance • Store set of planes with each vertex • Error based on distance from vertex to planes • When vertices are merged, merge sets • Ronfard and Rossignac 96 • Store plane sets • Compute max distance • Error Quadrics - Garland and Heckbert 96 • Store quadratic form (symmetric 4x4 matrix) • Compute sum of square distances a c b b a c
Minimizing/Propagating Error • Minimal position found by solving 4x4 linear system • Error propagated by summing 4x4 matrices of merged vertices Error quadrics visualized as ellipsoids (Garland/Heckbert 1997)
Memoryless Simplification • Don’t measure error from original mesh • Measure from the current mesh • Incremental rather than total error • Lindstrom/Turk 98 • New minimization process • Preserve volume and area as simplification progresses • Low error demonstrated after-the-fact • Metro - Cignoni et al. 96
Point-Surface Distance • Used in Hoppe 93 and 96 • Map point set to closest points on simplified surface • Compute sum of square distances
Minimizing/Propagating Error • Error is minimized by solving a linear least squares system • Propagation is unnecessary • Error always measured from original, high-resolution points • Slows down as more points associated with simplified mesh region
Surface-Surface Distance • Bound maximum distance between input and simplified surfaces • Tolerance Volumes - Guéziec 96 • Simplification Envelopes - Cohen/Varshney 96 • Hausdorf Distance - Klein 96 • Mapping Distance - Bajaj/Schikore 96, Cohen et al. 97
Minimizing/Propagating Error • Minimum position need not lie on edge • Bounding volume covers surface, not just vertices • Simplified mesh volume always contains original mesh
Vertex-Vertex != Surface-Surface • Error is zero at vertices and exterior edges • Error is non-zero everywhere else • Be careful! – Not captured by vertex-vertex or vertex-plane metrics Edge swap
Attribute Error Metrics • Attributes include colors, normals, and texture coordinates • Promote accuracy of final pixel colors
Classifying Attribute Error Metrics • Vertex-vertex distance • Vertex-plane distance • Point-surface distance • Surface-surface distance • Image-driven metric • Perceptually-based metric
Vertex-Vertex Distance • GAPS point clouds - Erikson/Manocha 98 • Measure sum of square distances from vertex to its constituent vertices (area-weighted) • Used for colors, normals, and texture coordinates • Normal cones • Luebke/Erikson 97, Xia et al. 97
Vertex-Plane Distance • Higher-dimensional error quadrics • Garland and Heckbert 98 • Vertices live in higher-dimensional position + attribute space • Planes defined in this space • Multiple attribute quadrics • Hoppe 99 • Decouples affects of position and attributes • Reduces storage and computational complexity
Point-Surface Distance • Extension of geometric point-surface distance • Hoppe 96 • Geometric correspondences found between original surface samples and simplified surface • Sum of square attribute distances minimized • Used primarily for vertex colors
Surface-Surface Distance • Bajaj / Schikore 96 • Geometric projections provide local mappings • Maximum distance of scalar attributes measured over surface
Image-driven Simplification • Measure error by rendering • Compare resulting images • Lindstrom/Turk 2000 • Captures attribute and shading error, as well as texture content 12 cameras used to capture quality of bunny simplification (Lindstrom/Turk 2000)
Perceptually-guided Simplification • Use contrast sensitivity function to guide simplification • Gives some handle on perceptibility • Williams et al. 2003 • Measure contrast and spatial frequency of changes induced by operation Lit, textured model Texture contrast Lit texture contrast
Screen-space Attribute Error? • Normal error controls dynamic refinement around highlights • Xia et al. 97, Klein 98 • Doesn’t allow more simplification as objects recede • Color control? • Texture coordinates work like geometric error • Cohen et al. 98 • Perceptual metrics can weigh relative importance of color, normal, textures, lighting and silhouettes – for a price
Appearance Preserving Simplification • Preserve three appearance attributes: • Surface Position • Surface Curvature • Material Color • Each may require different sampling
Normals Undersampled 1,749 triangles 10 pixel surface deviation 13,433 triangles
Normals Properly Sampled 1,749 triangles, 10 pixel deviation 13,433 triangles
Traditional Polygonal Representation v2, c2, n2 v1, c1, n1 v3, c3, n3 v = vertex coordinate = (x,y,z) c = color = (r,g,b) n = normal = (nx,ny,nz)
Traditional Simplification • Filters surface position, colors, and normals • Must filter all three equally
Decoupled Representation v2, t2 texture map c2 c1 c3 v1, t1 v3, t3 normal map v = vertex coordinate = (x,y,z) t = texture coordinate = (u,v) c = color = (r,g,b) n = normal vector = (nx,ny,nz) n2 n3 n1
Decoupled Approach • Simplification filters surface position and texture coordinates • Color and normal attributes filtered per-pixel (mip-mapping, etc.)
Sample Normal Map polygonal surface patch normal map
Normal Map vs. Bump Map • Normal map • Absolute normals in object space • Constant as object is simplified • Same normal map okay for all LODs • Bump map • Perturbations of triangle normal • Changes as object is simplified • Need different bump map for each LOD
Texture Deviation Metric • Distance between corresponding 3D points • Same 2D texture coordinates • Projects at run time to 2D pixel deviation • Intuitive error tolerance specification • Pixels of deviation for both surface position and texture error!
Point Correspondence mesh Mi mesh Mi+1 (i+1)st edge collapse Xi Xi+1 x ei,i+1(x) = dist(Xi, Xi+1) Ei,i+1 = max ei,i+1(x) xÎP P 2D texture domain
Hardware Requirements • Texture and normal (or bump) map capability • Bandwidth for attribute map lookups • Per-pixel lighting computation • Demonstrated originally on PixelFlow • Possible on most modern graphics hardware
Model Requirements • Parameterized model • Ideal parameterization • Each patch fills [0,1] texture space • Allows each patch to simplify to 2 triangles • Allows equal texture resolution along patch boundaries • Allows standard mip-mapping • Acceptable parameterization • Each patch occupies simple polygon in texture space • Simplification limited by polygon sides • Mip-mapping problematic • Want to minimize required resolution
APS Level-of-detail Hierarchy 7,809 tris 488 tris 975 tris 1,951 tris 3,905 tris model courtesy of Stanford and Caltech
250,000 Tris Original
Phong Shading 62,000 Tris 3 pixel error
250,000 Tris Original
Normal Map 62,000 Tris 3 pixel error
250,000 Tris Original
Phong Shading 8,000 Tris 15 pixel error
250,000 Tris Original
Normal Map 8,000 Tris 15 pixel error
250,000 Tris Original