Ray tracing with reduced-precision bounding volume hierarchies

Bounding volume hierarchies (BVHs) are an effective method for improving the performance of ray tracing algorithms. A BVH consists of a tree of bounding volumes enclosing the objects within the scene. Bounding volumes are typically axis-aligned bounding boxes, or AABBs. This research first presents up-to-date surveys of literature relevant to BVHs and ray tracing hardware. A new method is derived for determining if a ray and an AABB overlap using Plucker coordinates. When used in a BVH, this method improves ray tracing performance by up to 27%. A reduced-precision, hierarchical, integer representation for the BVH's AABB coordinates is investigated that reduces BVH memory requirements by 63% to 75%. Unfortunately, significant computational overhead is incurred because the integer representation must be converted back to floating point during ray tracing. Coherent ray tracing is employed to amortize the conversion cost over many rays, reducing the overhead to a negligible level. Lastly, reduced-precision, integer ray-AABB overlap tests are derived and hardware designs are compared to the equivalent floating-point tests. These integer tests are guaranteed to produce identical images to the higher-precision floating-point tests because they correctly handle uncertainty clue to numerical imprecision. The integer tests are shown to reduce the circuit size and complexity of a hardware ray-AABB test by roughly half.

[1]  Jack E. Volder The CORDIC Trigonometric Computing Technique , 1959, IRE Trans. Electron. Comput..

[2]  Arthur Appel,et al.  Some techniques for shading machine renderings of solids , 1968, AFIPS Spring Joint Computing Conference.

[3]  Donald P. Greenberg,et al.  Transparency for computer synthesized images , 1979, SIGGRAPH.

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

[5]  Tom Lyche,et al.  Discrete B-splines and subdivision techniques in computer-aided geometric design and computer graphics , 1980 .

[6]  John G. Cleary,et al.  Design and analysis of a parallel ray tracing computer , 1983 .

[7]  Andrew S. Glassner,et al.  Space subdivision for fast ray tracing , 1984, IEEE Computer Graphics and Applications.

[8]  Donald P. Greenberg,et al.  Improved Computational Methods for Ray Tracing , 1984, TOGS.

[9]  Donald P. Greenberg,et al.  Modeling the interaction of light between diffuse surfaces , 1984, SIGGRAPH.

[10]  James T. Kajiya,et al.  The rendering equation , 1986, SIGGRAPH.

[11]  Kellogg S. Booth,et al.  Report from the chair , 1986 .

[12]  John A. Kapenga,et al.  VLSI Chip for Ray Tracing Bicubic Patches , 1987, Advances in Computer Graphics Hardware.

[13]  Takayuki Tanaka,et al.  ARTS: Accelerated Ray-Tracing System , 1986, IEEE Computer Graphics and Applications.

[14]  James T. Kajiya,et al.  Ray tracing complex scenes , 1986, SIGGRAPH.

[15]  Brian Wyvill,et al.  Multiprocessor Ray Tracing , 1986, Comput. Graph. Forum.

[16]  P. Leray Towards a Z-Buffer and Ray-Tracing Multimode System based on Parallel Architecture and VLSI chips , 1986, Advances in Computer Graphics Hardware.

[17]  Tadashi Naruse,et al.  SIGHT‐A Dedicated Computer Graphics Machine , 1987, Comput. Graph. Forum.

[18]  James Arvo,et al.  Fast ray tracing by ray classification , 1987, SIGGRAPH '87.

[19]  John A. Kapenga,et al.  The Feasibility of a VLSI Chip for Ray Tracing Bicublic Patches , 1987, IEEE Computer Graphics and Applications.

[20]  John Salmon,et al.  Automatic Creation of Object Hierarchies for Ray Tracing , 1987, IEEE Computer Graphics and Applications.

[21]  Bengt-Olaf Schneider,et al.  Ray Tracing Rational B-Spline Patches in VLSI , 1988, Advances in Computer Graphics Hardware.

[22]  Kalpathi R. Subramanian,et al.  Fast Ray Tracing Using K-d Trees , 1988 .

[23]  Andrew S. Glassner,et al.  Spacetime ray tracing for animation , 1988, IEEE Computer Graphics and Applications.

[24]  Brian Wyvill,et al.  ADAPTIVE VOXEL SUBDIVISION FOR RAY TRACING , 1988 .

[25]  James Arvo,et al.  A survey of ray tracing acceleration techniques , 1989 .

[26]  Michael Potmesil,et al.  The pixel machine: a parallel image computer , 1989, SIGGRAPH.

[27]  Ed F. Deprettere,et al.  A Hardware Algorithm for Fast Realistic Image Synthesis , 1989, Advances in Computer Graphics Hardware.

[28]  Tadashi Naruse,et al.  A Dedicated Graphics Processor SIGHT-2 , 1989, Advances in Computer Graphics Hardware.

[29]  Andrew S. Glassner,et al.  An introduction to ray tracing , 1989 .

[30]  Kadi Bouatouch,et al.  A VLSI Chip for Ray Tracing Bicubic Patches , 1989, Eurographics.

[31]  Andrew Woo,et al.  Fast ray-box intersection , 1990 .

[32]  Samuel Degrande,et al.  A Cellular Architecture for Ray Tracing , 1990, Advances in Computer Graphics Hardware V.

[33]  Jack Ritter,et al.  An efficient bounding sphere , 1990 .

[34]  Eric Haines EFFICIENCY IMPROVEMENTS FOR HIERARCHY TRAVERSAL IN RAY TRACING , 1991 .

[35]  Ben Trumbore Rectangular Bounding Volumes for Popular Primitives , 1992, Graphics Gems III.

[36]  Xiaolin Wu A linear-Time Simple Bounding Volume Algorithm , 1992, Graphics Gems III.

[37]  Hsien C Sung The area sampling machine , 1992 .

[38]  I. Koren Computer arithmetic algorithms , 2018 .

[39]  Andrew Pearce,et al.  It's really not a rendering bug, you see , 1996, IEEE Computer Graphics and Applications.

[40]  Tomas Akenine-Möller,et al.  Fast, Minimum Storage Ray-Triangle Intersection , 1997, J. Graphics, GPU, & Game Tools.

[41]  M. Carter Computer graphics: Principles and practice , 1997 .

[42]  Fujio Yamaguchi,et al.  Some basic geometric test conditions in terms of Plücker coordinates and Plücker coefficients , 1997, The Visual Computer.

[43]  Seth J. Teller,et al.  Determining the Lines Through Four Lines , 1999, J. Graphics, GPU, & Game Tools.

[44]  Fadi J. Kurdahi,et al.  The MorphoSys Parallel Reconfigurable System , 1999, Euro-Par.

[45]  Peter Shirley,et al.  Realistic ray tracing , 2000 .

[46]  Marc Levoy,et al.  QSplat: a multiresolution point rendering system for large meshes , 2000, SIGGRAPH.

[47]  William J. Dally,et al.  Smart Memories: a modular reconfigurable architecture , 2000, ISCA '00.

[48]  M. Y. Niamat,et al.  FPGA implementation of the ray tracing algorithm used in the XPATCH software , 2001, Proceedings of the 44th IEEE 2001 Midwest Symposium on Circuits and Systems. MWSCAS 2001 (Cat. No.01CH37257).

[49]  H. Jensen Realistic Image Synthesis Using Photon Mapping , 2001 .

[50]  Wayne Luk,et al.  Reconfigurable Designs for Ray Tracing , 2001, The 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'01).

[51]  Tadao Nakamura,et al.  3DCGiRAM: an intelligent memory architecture for photo-realistic image synthesis , 2001, Proceedings 2001 IEEE International Conference on Computer Design: VLSI in Computers and Processors. ICCD 2001.

[52]  Philipp Slusallek,et al.  SaarCOR: a hardware architecture for ray tracing , 2002, HWWS '02.

[53]  Nozar Tabrizi,et al.  Interactive ray tracing using a SIMD reconfigurable architecture , 2002, 14th Symposium on Computer Architecture and High Performance Computing, 2002. Proceedings..

[54]  Stephen Mann,et al.  Geometric Algebra: A Computational Framework for Geometrical Applications (Part 2) , 2002, IEEE Computer Graphics and Applications.

[55]  Philipp Slusallek,et al.  A virtual memory architecture for real-time ray tracing hardware , 2003, Comput. Graph..

[56]  R. Lewis,et al.  A pipelined architecture for ray/B ´ ezier patch intersection computation Une architecture en pipeline pour le calcul de l'intersection de pi ` eces de surfaces de B ´ ezier , 2003 .

[57]  Jonathan Rose,et al.  A high-speed ray tracing engine built on a field-programmable system , 2003, Proceedings. 2003 IEEE International Conference on Field-Programmable Technology (FPT) (IEEE Cat. No.03EX798).

[58]  Nozar Tabrizi,et al.  Interactive Ray Tracing on Reconfigurable SIMD Morphosys , 2003, Embedded Software for SoC.

[59]  Philipp Slusallek,et al.  Realtime ray tracing of dynamic scenes on an FPGA chip , 2004, Graphics Hardware.

[60]  Peter MacMurphy,et al.  The Use of Subdivision Surfaces in the Modeling of Plants , 2004 .

[61]  Pat Hanrahan,et al.  Ray tracing on a stream processor , 2004 .

[62]  David Harris,et al.  CMOS VLSI Design: A Circuits and Systems Perspective , 2004 .

[63]  Kellogg S. Booth,et al.  Heuristics for ray tracing using space subdivision , 1990, The Visual Computer.

[64]  Hao-Ren Ke,et al.  An efficient hierarchicaltraversal algorithm for ray tracing , 2005, The Visual Computer.

[65]  Isaac D. Scherson,et al.  Efficient traversal of well-behaved hierarchical trees of extents for ray-tracing complex scenes , 1990, The Visual Computer.

[66]  Ed F. Deprettere,et al.  A VLSI system architecture for high-speed radiative transfer 3D image synthesis , 1989, The Visual Computer.

[67]  Jon Rokne,et al.  Homogeneous coordinates , 1994, The Visual Computer.

[68]  Ming C. Lin,et al.  A framework for fast and accurate collision detection for haptic interaction , 2005, SIGGRAPH Courses.

[69]  Turner Whitted,et al.  An improved illumination model for shaded display , 1979, SIGGRAPH Courses.

[70]  Geoff Wyvill,et al.  Analysis of an algorithm for fast ray tracing using uniform space subdivision , 1988, The Visual Computer.

[71]  Peter Shirley,et al.  An Efficient and Robust Ray-Box Intersection Algorithm , 2005, J. Graph. Tools.

[72]  Philipp Slusallek,et al.  RPU: a programmable ray processing unit for realtime ray tracing , 2005, ACM Trans. Graph..

[73]  William J. Kubitz,et al.  Tracing rays with the area sampling machine , 1995, The Visual Computer.