Efficient data-parallel tree-traversal for BlobTrees

The hierarchical implicit modelling paradigm, as exemplified by the BlobTree, makes it possible to support not only Boolean operations and affine transformations, but also various forms of blending and space warping. Typically, the resulting solid is converted to a boundary representation, a triangle mesh approximation, for rendering. These triangles are obtained by evaluating the corresponding implicit function (field) at the samples of a dense regular three-dimensional grid and by performing a local iso-surface extraction at each voxel. The performance bottleneck of this rendering process lies in the cost of the tree traversal (which typically must be executed hundreds of millions of times) and in the cost of applying the inverses of the space transformations associated with some of the nodes of the tree to the grid samples.Tree pruning is commonly used to reduce the number of samples for which the field value must be computed. Here, we propose a complementary strategy, which reduces the costs of both the traversal and of applying the inverses of the blending and warping transformations that are associated with each evaluation.Without blending or warping, a BlobTree can be reduced to a CSG tree only containing Boolean nodes and affine transformations, which can be reordered to increase memory coherence. Furthermore, the cumulative effects of the affine transformations can be precomputed via matrix multiplication. We propose extensions of these techniques from CSG trees to the fully general BlobTrees. These extensions are based on tree reordering, bottom-up traversal, and caching of the combined matrix for uninterrupted runs of affine transformations in the BlobTree.We show that these new techniques result in an order of magnitude performance improvement for rendering large BlobTrees on modern Single Program Multiple Data (SPMD) devices. We show how to improve BlobTree traversal time by one order of magnitude.We demonstrate how to incorporate Warp Transformations within the BlobTree into new traversal.The performance is measured on computer generated and hand built models.

[1]  William Gropp,et al.  Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis , 2013, HiPC 2013.

[2]  Sun UltraSPARC,et al.  A closer look at GPUs , 2008, Commun. ACM.

[3]  Jarek Rossignac,et al.  Ordered Boolean List (OBL): Reducing the Footprint for Evaluating Boolean Expressions , 2011, IEEE Transactions on Visualization and Computer Graphics.

[4]  A. Ricci,et al.  A Constructive Geometry for Computer Graphics , 1973, Computer/law journal.

[5]  Gershon Elber,et al.  Generalized filleting and blending operations toward functional and decorative applications , 2005, Graph. Model..

[6]  Brian Wyvill,et al.  Extending the CSG Tree. Warping, Blending and Boolean Operations in an Implicit Surface Modeling System , 1999, Comput. Graph. Forum.

[7]  Ingo Wald,et al.  Realtime ray tracing and interactive global illumination , 2004, Ausgezeichnete Informatikdissertationen.

[8]  Pierre Poulin,et al.  Fitted BVH for Fast Raytracing of Metaballs , 2010, Comput. Graph. Forum.

[9]  Aaftab Munshi,et al.  The OpenCL specification , 2009, 2009 IEEE Hot Chips 21 Symposium (HCS).

[10]  Philippe Flajolet,et al.  The Number of Registers Required for Evaluating Arithmetic Expressions , 1979, Theor. Comput. Sci..

[11]  Brian Wyvill,et al.  Robust iso-surface tracking for interactive character skinning , 2014, ACM Trans. Graph..

[12]  Matt Pharr,et al.  Gpu gems 2: programming techniques for high-performance graphics and general-purpose computation , 2005 .

[13]  Frederica Darema,et al.  A single-program-multiple-data computational model for EPEX/FORTRAN , 1988, Parallel Comput..

[14]  Brian E. Smits Efficiency issues for ray tracing , 1998, J. Graphics, GPU, & Game Tools.

[15]  Samir Akkouche,et al.  Adaptive Implicit Surface Polygonization Using Marching Triangles , 2001, Comput. Graph. Forum.

[16]  Jarek Rossignac,et al.  Relative blending , 2009, Comput. Aided Des..

[17]  Brian Wyvill,et al.  A Gradient-Based Implicit Blend , 2012 .

[18]  Michael Todd Bunnell,et al.  Dynamic Ambient Occlusion and Indirect Lighting , 2005 .

[19]  M. Pharr,et al.  ispc: A SPMD compiler for high-performance CPU programming , 2012, 2012 Innovative Parallel Computing (InPar).

[20]  Timothy G. Mattson,et al.  OpenCL Programming Guide , 2011 .

[21]  Devendra Kalra,et al.  Guaranteed ray intersections with implicit surfaces , 1989, SIGGRAPH.

[22]  Brian Wyvill,et al.  WarpCurves: A tool for explicit manipulation of implicit surfaces , 2010, Comput. Graph..

[23]  Brian Wyvill,et al.  Polygonization of Implicit Surfaces on Multi-Core Architectures with SIMD Instructions , 2012, EGPGV@Eurographics.

[24]  Luiz Velho,et al.  Hardware-assisted Rendering of CSG Models , 2006, 2006 19th Brazilian Symposium on Computer Graphics and Image Processing.

[25]  Van Wyk,et al.  Data structures and C programs , 1988 .

[26]  Tim Reiner,et al.  Interactive modeling of implicit surfaces using a direct visualization approach with signed distance functions , 2011, Comput. Graph..

[27]  Loïc Barthe,et al.  Adequate inner bound for geometric modeling with compact field functions , 2013, Comput. Graph..

[28]  Paul S. Heckbert,et al.  Graphics gems IV , 1994 .

[29]  John M. Snyder,et al.  Interval analysis for computer graphics , 1992, SIGGRAPH.

[30]  Brian Wyvill,et al.  Interactive implicit modeling with hierarchical spatial caching , 2005, International Conference on Shape Modeling and Applications 2005 (SMI' 05).

[31]  Jules Bloomenthal,et al.  An Implicit Surface Polygonizer , 1994, Graphics Gems.

[32]  Christopher J. Van Wyk,et al.  Data Structures and C Programs, 2nd Ed. (Addison-Wesley Series in Computer Science) , 1991 .

[33]  Brian Wyvill,et al.  Controllable Binary Csg Operators for "soft Objects" , 2004, Int. J. Shape Model..

[34]  Iddo Hanniel,et al.  Direct Rendering of Solid CAD Models on the GPU , 2011, 2011 12th International Conference on Computer-Aided Design and Computer Graphics.

[35]  Henry Fuchs,et al.  On visible surface generation by a priori tree structures , 1980, SIGGRAPH '80.

[36]  Brian Wyvill,et al.  Implicit skinning , 2013, ACM Trans. Graph..

[37]  Samir Akkouche,et al.  A Fast Particle System Framework for Interactive Implicit Modeling , 2006, IEEE International Conference on Shape Modeling and Applications 2006 (SMI'06).

[38]  Peter Shirley,et al.  Fundamentals of computer graphics , 2018 .

[39]  Brian Wyvill,et al.  Introduction to Implicit Surfaces , 1997 .

[40]  Martti Mäntylä,et al.  Introduction to Solid Modeling , 1988 .

[41]  Carsten Benthin,et al.  Realtime ray tracing on current CPU architectures , 2006 .

[42]  Hans-Peter Seidel,et al.  EUROGRAPHICS 2007 / D. Cohen-Or and P. Slavík (Guest Editors) Stackless KD-Tree Traversal for High Performance GPU Ray Tracing , 2022 .

[43]  Turner Whitted,et al.  A 3-dimensional representation for fast rendering of complex scenes , 1980, SIGGRAPH '80.

[44]  Brian Wyvill,et al.  Efficient use of the BlobTree for rendering purposes , 2001, Proceedings International Conference on Shape Modeling and Applications.

[45]  Brian Wyvill,et al.  ShapeShop: sketch-based solid modeling with BlobTrees , 2006, SBM.

[46]  Kevin Skadron,et al.  Scalable parallel programming , 2008, 2008 IEEE Hot Chips 20 Symposium (HCS).

[47]  Frederik W. Jansen,et al.  Depth-order point classification techniques for CSG display algorithms , 1991, TOGS.

[48]  J. Rossignac Blist: A Boolean List Formulation of CSG Trees , 1999 .

[49]  Michael Goldfarb,et al.  General transformations for GPU execution of tree traversals , 2013, 2013 SC - International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

[50]  Jarek Rossignac,et al.  CST: Constructive Solid Trimming for Rendering BReps and CSG , 2007, IEEE Transactions on Visualization and Computer Graphics.

[51]  Erwin de Groot Blobtree modelling , 2008 .

[52]  Hans Hagen,et al.  Fast Ray Tracing of Arbitrary Implicit Surfaces with Interval and Affine Arithmetic , 2009, Comput. Graph. Forum.

[53]  Jarek Rossignac,et al.  Blister: GPU-based rendering of Boolean combinations of free-form triangulated shapes , 2005, SIGGRAPH '05.