1 / 106

Large Mesh Simplification using Processing Sequences

Large Mesh Simplification using Processing Sequences. Martin Isenburg UNC Chapel Hill. Peter Lindstrom LLNL Livermore. Stefan Gumhold GRIS Tubingen. Jack Snoeyink UNC Chapel Hill. Overview. Motivation Background Processing Sequences Adapted Simplification Schemes OOCS Wu & Kobbelt

Télécharger la présentation

Large Mesh Simplification using Processing Sequences

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. 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

More Related