Large Mesh Simplification using Processing Sequences - PowerPoint PPT Presentation

large mesh simplification using processing sequences n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Large Mesh Simplification using Processing Sequences PowerPoint Presentation
Download Presentation
Large Mesh Simplification using Processing Sequences

play fullscreen
1 / 106
Large Mesh Simplification using Processing Sequences
157 Views
Download Presentation
petra-leonard
Download Presentation

Large Mesh Simplification using Processing Sequences

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Large Mesh Simplificationusing Processing Sequences Martin Isenburg UNCChapel Hill Peter Lindstrom LLNLLivermore Stefan Gumhold GRISTubingen Jack Snoeyink UNCChapel Hill

  2. Overview • Motivation • Background • Processing Sequences • Adapted Simplification Schemes • OOCS • Wu & Kobbelt • Conclusion

  3. Motivation

  4. Large Meshes 3D scans isosurfaces

  5. Large Meshes 3D scans isosurfaces

  6. hampers: • distributing / loading • rendering • processing PPM isosurface • 235 million rtices • million triangles • 235 million vertices • 469 million triangles over8 Gigabyte !

  7. current out-of-core approaches: 1. piece by piece 2. external memory 3. polygon soup [Hoppe ’98] [Cignoni et al. ’03] [Lindstrom ’00] • alternative: processing sequence Mesh Simplification • in-core algorithms of choice: • Qslim • Rsimp [Garland & Heckbert ’97] require ~200 bytesper vertex [Brodsky & Watson ’00]

  8. Background

  9. Related Work • Large Mesh Processing • Simplification • Compression • Visualization Systems • Main Techniques 1. Mesh Cutting 2. Online Processing 3. Batch Processing

  10. figure courtesy of Hugues Hoppe 1. Mesh Cutting • cut mesh into small pieces • process each separately • special treatment for cuts • stitch result back together

  11. figure courtesy of Paolo Cignoni 2. Online Processing • external memory datastructures • “random” mesh access

  12. [Lindstrom ’00] 3. Batch Processing (1) • polygon soup • single scan over stream ofde-referenced triangles • noexplicitconnectivity

  13. [Wu & Kobbelt ’03] figure courtesy of Jianhua Wu and Leif Kobbelt 3. Batch Processing (2) • polygon soup • single scan over stream ofde-referenced triangles • noexplicitconnectivity (coherent) reconstruct

  14. [Isenburg & Gumhold ’03] Sequenced Processing • coherent triangle orderinginterleaved with vertices • small footprint streaming • finalization of vertices

  15. Quadric Error Matrices • accumulate error • vertex placement • sum of squareddistances of point to set of planes • quadric error: q00 q01 q02 q03 q10q11 q12 q13 q20 q21q22 q23 q30 q31 q32q33 Q = figure courtesy of Michael Garland [Garland & Heckbert ’97] vTQv

  16. Processing Sequences

  17. A little history … • Compressor • region growing

  18. A little history … • Compressor • region growing • Out-of-CoreMesh • transparent • caching clusters

  19. A little history … • Compressor • region growing • Out-of-CoreMesh • transparent • caching clusters • Compact Format • small footprint • streaming

  20. A little history … • Compressor • region growing • Out-of-CoreMesh • transparent • caching clusters • Compact Format • small footprint • streaming

  21. A little history … • Compressor • region growing • Out-of-CoreMesh • transparent • caching clusters • Compact Format • small footprint • streaming

  22. processingboundary Q7 Q1 Q4 borderedges Processing Sequences • interleaved ordering of triangles and vertices that “grows regions” • available information: • first & last use of edges & vertices • surface border • maintaindata alongboundary

  23. processed region waiting area processingboundary unprocessed region Abstractions • boundary-based • one boundary • process immediately

  24. processed region processed region processingboundary in-corebuffer output boundary input boundary unprocessed region unprocessed region Abstractions waiting area • boundary-based • one boundary • process immediately • buffer-based • two boundaries • process in buffer • read to fill • write to empty

  25. OOCS

  26. OOCS • stream in polygon soup • triangle after triangle • vertex clustering • one quadric per grid cell • output sensitive • store all quadrics • no border info • tangential term added

  27. Q Q OOCS output input

  28. Q Q OOCS output input Q Q

  29. Q Q OOCS output input Q Q

  30. Q Q Q Q Q OOCS output input Q Q

  31. OOCS output input Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

  32. OOCS output input Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

  33. OOCS output input Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

  34. OOCS output input Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

  35. OOCS output input Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

  36. OOCS using PS

  37. OOCS using PS • fewer artifacts • do not collapse multiple layers into single vertex • improved surface boundaries • memory insensitive • maintain much fewer quadrics • streaming output

  38. Q7 7 5 Q5 5 5 Q3 3 4 4 Q4 OOCS using PS (detail) unprocessedregion processedregion

  39. OOCS using PS (detail) Q7 unprocessedregion processedregion 7 5 Q5 5 Q3 3 4 4 Q4

  40. quadric turns into vertex OOCS using PS (detail) Q7 unprocessedregion processedregion 7 5 Q5 5 Q3 4 4 Q4

  41. Q8 8 OOCS using PS (detail) Q7 unprocessedregion processedregion 7 5 Q5 5 4 4 Q4

  42. Q8 8 OOCS using PS (detail) Q7 unprocessedregion processedregion 7 5 Q5 5 4 Q4

  43. Q8 8 quadric turns into vertex OOCS using PS (detail) Q7 unprocessedregion processedregion 7 5 Q5 5 8 Q4

  44. Q9 9 Q8 8 OOCS using PS (detail) Q7 unprocessedregion processedregion 7 5 Q5 5 8

  45. Q9 9 Q8 quadricmerge 8 OOCS using PS (detail) Q7 unprocessedregion processedregion 7 5 Q5 8

  46. Q Q OOCS using PS output input

  47. OOCS using PS output input Q Q Q Q

  48. OOCS using PS output input Q Q Q Q Q Q Q Q

  49. OOCS using PS output input Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

  50. OOCS using PS output input Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q