skip to main content
research-article

HCSG: Hashing for real-time CSG modeling

Published:25 July 2018Publication History
Skip Abstract Section

Abstract

Constructive Solid Geometry models solids as boolean combinations of base primitives. It is one of the classical modeling approaches in Computer Graphics. With the advent of 3D printing, it has received a renewed interest: CSG affords for the robust definition of solids, and fits well with parametric modeling, affording for easy customization of existing designs.

However, the interactive display and manipulation of CSG models is challenging: Ideally, CSG has to be performed between a variety of solid representations (meshes, implicit solids, voxels) and the renderer has to provide immediate feedback during parameter exploration. The end result has to be prepared for fabrication, which involves robustly extracting cross-sections of the model.

In this work we propose a novel screen space technique for the rendering, interactive modeling and direct fabrication of parametric CSG models. It builds upon spatial hashing techniques to efficiently evaluate CSG expressions, checking whether each interval along a view ray is solid in constant time, using constant local shader memory. In addition, the scene is rendered progressively, from front to back, bounding memory usage. We describe how the hash encoding the CSG is constructed on the fly during visualization, and analyze performance on a variety of 3d models.

References

  1. Dan A. Alcantara, Andrei Sharf, Fatemeh Abbasinejad, Shubhabrata Sengupta, Michael Mitzenmacher, John D. Owens, and Nina Amenta. 2009. Real-Time Parallel Hashing on the GPU. ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH Asia 2009) 28, 5 (2009). Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Hichem Barki, Gael Guennebaud, and Sebti Foufou. 2015. Exact, robust, and efficient regularized Booleans on general 3D meshes. Computers 8 Mathematics with Applications 70, 6 (2015), 1235--1254. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. I. Dolenc, A.and Mäkelä. 1994. Slicing procedures for layered manufacturing techniques. Computer-Aided Design 26, 2 (1994), 119--126.Google ScholarGoogle ScholarCross RefCross Ref
  4. Matthijs Douze, Jean-Sébastien Franco, and Bruno Raffin. 2015. QuickCSG: Arbitrary and Faster Boolean Combinations of N Solids. Research Report RR-8687. Inria--Research Centre Grenoble -- Rhône-Alpes; INRIA. https://hal.inria.fr/hal-01121419Google ScholarGoogle Scholar
  5. Elmar Eisemann and Xavier Décoret. 2008. Single-pass GPU Solid Voxelization for Real-time Applications. In Proceedings of Graphics Interface 2008 (GI '08). Canadian Information Processing Society, Toronto, Ont., Canada, Canada, 73--80. http://dl.acm.org/citation.cfm?id=1375714.1375728 Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Fansen F. Epstein D. and Rossignac J. 1989. Z-Buffer Rendering from CSG: The Trickle Algorithm. Research Report RC 15182. IBM.Google ScholarGoogle Scholar
  7. F. R. Feito, C. J. Ogayar, R. J. Segura, and M. L. Rivero. 2013. Fast and Accurate Evaluation of Regularized Boolean Operations on Triangulated Solids. Computer Aided Design 45, 3 (March 2013), 705--716. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Ismael García, Sylvain Lefebvre, Samuel Hornus, and Anass Lasram. 2011. Coherent Parallel Hashing. ACM Transactions on Graphics 30, 6 (Dec. 2011). https://hal.inria.fr/inria-00624777 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Andrew S. Glassner (Ed.). 1989. An Introduction to Ray Tracing. Academic Press Ltd., London, UK, UK. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. A. S. Glassner, J. Arvo, R. L. Cook, E. Haines, P. Hanrahan, P. Heckbert, and D. B. Kirk. 1989. Introduction to Ray Tracing. Academic Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Jack Goldfeather, Steven Monar, Greg Turk, and Henry Fuchs. 1989. Near Real-Time CSG Rendering Using Tree Normalization and Geometric Pruning. IEEE Comput. Graph. Appl. 9, 3 (May 1989), 20--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. John Hable and Jarek Rossignac. 2005. Blister: GPU-based Rendering of Boolean Combinations of Free-form Triangulated Shapes. ACM Trans. Graph. 24, 3 (July 2005), 1024--1031. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Tim Van Hook. 1986. Real-Time Shaded NC Milling Display. In Proceedings of SIGGRAPH. 15--20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. D. Kalra and A. H. Barr. 1989. Guaranteed Ray Intersections with Implicit Surfaces. SIGGRAPH Comput. Graph. 23, 3 (July 1989), 297--306. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Kensler. 2006. Ray tracing CSG objects using single hit intersections. (2006). http://xrt.wdfiles.com/local--files/doc%3Acsg/CSG.pdfGoogle ScholarGoogle Scholar
  16. Sylvain Lefebvre. 2013. IceSL: A GPU Accelerated CSG Modeler and Slicer. In AEFA'13, 18th European Forum on Additive Manufacturing. Paris, France. https://inriav3-preprod.archives-ouvertes.fr/hal-00926861Google ScholarGoogle Scholar
  17. Sylvain Lefebvre, Samuel Hornus, and Anass Lasram. 2014. Per-Pixel Lists for Single Pass A-Buffer. In GPU Pro 5: Advanced Rendering Techniques, Wolfgang Engel (Ed.). A K Peter / CRC Press. https://hal.inria.fr/hal-01093158Google ScholarGoogle Scholar
  18. Makerbot. 2013. Customizer. (2013). https://www.thingiverse.com/customizerGoogle ScholarGoogle Scholar
  19. M. Maule, J.L.D. Comba, R. Torchelsen, and R. Bastos. 2012. Memory-Efficient Order-Independent Transparency with Dynamic Fragment Buffer. In Proc. 25th Conference on Graphics, Patterns and Images (SIBGRAPI). IEEE, 134--141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Marilena Maule, João Luiz Dihl Comba Rafael P. Torchelsen, and Rui Bastos. 2011. A survey of raster-based transparency techniques. Computers 8 Graphics 35, 6 (2011), 1023--1034. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Timothy S. Newman and Hong Yi. 2006. A survey of the marching cubes algorithm. Computers 8 Graphics 30, 5 (2006), 854--879.Google ScholarGoogle Scholar
  22. C.J. Ogayar-Anguita, A.L. GarcÃŋa-Fernandez, F.R. Feito-Higueruela, and R.J. Segura-Sanchez. 2015. Deferred boundary evaluation of complex CSG models. Advances in Engineering Software 85 (2015), 51--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Arash Partow. 2012. Exprtk. (2012). http://partow.net/programming/exprtk/Google ScholarGoogle Scholar
  24. Alexander Pasko, Oleg Fryazinov, Turlif Vilbrandt, Pierre-Alain Fayolle, and Valery Adzhiev. 2011. Procedural Function-Based Modelling of Volumetric Microstructures. Graphical Models 73, 5 (2011), 165--181. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Ricci. 1973. A constructive geometry for computer graphics. Comput. J. 16, 2 (1973), 157--160.Google ScholarGoogle ScholarCross RefCross Ref
  26. Fabiano Romeiro, Luiz Velho, and Luiz Henrique de Figueiredo. 2008. Scalable GPU rendering of CSG models. Computers 8 Graphics 32, 5 (2008), 526--539. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Jarek Rossignac. 2011. Ordered Boolean List (OBL): Reducing the Footprint for Evaluating Boolean Expressions. IEEE Transactions on Visualization and Computer Graphics 17, 9 (Sept. 2011), 1337--1351. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Jarek R. Rossignac. 1998. Blist: A Boolean list formulation of CSG trees. (1998).Google ScholarGoogle Scholar
  29. Shane Ryoo, Christopher I. Rodrigues, Sara S. Baghsorkhi, Sam S. Stone, David B. Kirk, and Wen-mei W. Hwu. 2008. Optimization Principles and Application Performance Evaluation of a Multithreaded GPU Using CUDA. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP '08). ACM, 73--82. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Ryan Schmidt and Tyson Brochu. 2016. Adaptive Mesh Booleans. In Whitepaper arXiv.org.Google ScholarGoogle Scholar
  31. Maria Shugrina, Ariel Shamir, and Wojciech Matusik. 2015. Fab Forms: Customizable Objects for Fabrication with Validity and Geometry Caching. ACM Transactions on Graphics 34, 4 (2015). Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Nigel Stewart, Geoff Leach, and Sabu John. 1998. An Improved Z-buffer CSG Rendering Algorithm. In Proceedings of the ACM SIGGRAPH/EUROGRAPHICS Workshop on Graphics Hardware (HWWS '98). ACM, New York, NY, USA, 25--30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Nicolas Thibieroz. 2011. Order-Independent Transparency using Per-Pixel Linked Lists. In GPU Pro 2, Wolfgang Engel (Ed.). A K Peters, 409--431.Google ScholarGoogle Scholar
  34. D. Ulyanov, D. Bogolepov, and V. Turlapov. 2017. Interactive vizualization of constructive solid geometry scenes on graphic processors. Programming and Computer Software 43, 4 (01 Jul 2017), 258--267. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. A. A. Vasilakis, G. Papaioannou, and I. Fudos. 2015. k+ -buffer: An Efficient, Memory-Friendly and Dynamic k -buffer Framework. IEEE Transactions on Visualization and Computer Graphics 21, 6 (June 2015), 688--700.Google ScholarGoogle ScholarCross RefCross Ref
  36. Kiril Vidimče, Szu-Po Wang, Jonathan Ragan-Kelley, and Wojciech Matusik. 2013. OpenFab: A Programmable Pipeline for Multi-Material Fabrication. ACM Trans. Graph. 32, 4 (2013), 1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Charlie C.L. Wang. 2011. Approximate Boolean Operations on Large Polyhedral Solids with Partial Mesh Reconstruction. IEEE Transactions on Visualization and Computer Graphics 17, 6 (2011), 836--849. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Amy Williams, Steve Barrus, R. Keith Morley, and Peter Shirley. 2005. An Efficient and Robust Ray-box Intersection Algorithm. In ACM SIGGRAPH 2005 Courses (SIGGRAPH '05). ACM, New York, NY, USA, Article 9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Brian Wyvill, Andrew Guy, and Eric Galin. 1999. Extending the CSG Tree. Warping, Blending and Boolean Operations in an Implicit Surface Modeling System. Computer Graphics Forum 18, 2 (1999), 149--158.Google ScholarGoogle ScholarCross RefCross Ref
  40. Qingnan Zhou, Eitan Grinspun, Denis Zorin, and Alec Jacobson. 2016. Mesh Arrangements for Solid Geometry. ACM Trans. Graph. 35, 4, Article 39 (July 2016), 15 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. HCSG: Hashing for real-time CSG modeling

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image Proceedings of the ACM on Computer Graphics and Interactive Techniques
        Proceedings of the ACM on Computer Graphics and Interactive Techniques  Volume 1, Issue 1
        July 2018
        378 pages
        EISSN:2577-6193
        DOI:10.1145/3242771
        Issue’s Table of Contents

        Copyright © 2018 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 25 July 2018
        Published in pacmcgit Volume 1, Issue 1

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!