Parallel processing of intersections for ray-tracing in application-specific processors and GPGPUs

The ray tracing rendering algorithm can produce high-fidelity images of 3-D scenes, including shadow effects, as well as reflections and transparencies. This is currently done at a processing speed of 30 frames per second. Therefore, current implementations of the algorithm are not yet suitable for interactive real-time rendering, which is required in games and virtual reality based applications. Nonetheless, the algorithm allows for massive parallelization of its computations, which is a strong reason of further improvements. Also, we present a parallel architecture for ray tracing based on a uniform spatial subdivision of the scene that exploits an embedded computation of ray-triangle intersections. This approach allows for a significant acceleration of intersection computations, as well as a reduction of the total number of the required intersections checks. Furthermore, it allows for these checks to be performed in parallel and in advance for each ray. In this paper we discuss and analyze an ASIP-based implementation using FPGAs and a GPGPU-based parallel implementation of the proposed architecture, both running different 3-D scenes. The performance of both implementations are reported and compared. Furthermore, a second GPU has been included in the GPGPU-based implementation, running the same parallel architecture. Thus, primary rays are split among both GPUs for parallel execution and their performance are also presented and compared.

[1]  Tomas Akenine-Möller,et al.  Real-time rendering , 1997 .

[2]  Andreas Dietrich,et al.  OptiX: a general purpose ray tracing engine , 2010, SIGGRAPH 2010.

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

[4]  Markus Wagner,et al.  Interactive Distributed Ray Tracing of Highly Complex Models , 2001, Rendering Techniques.

[5]  Mary K. Vernon,et al.  Toward a multicore architecture for real-time ray-tracing , 2008, 2008 41st IEEE/ACM International Symposium on Microarchitecture.

[6]  Philipp Slusallek,et al.  Distributed interactive ray tracing of dynamic scenes , 2003, IEEE Symposium on Parallel and Large-Data Visualization and Graphics, 2003. PVG 2003..

[7]  John Amanatides,et al.  A Fast Voxel Traversal Algorithm for Ray Tracing , 1987, Eurographics.

[8]  Naga K. Govindaraju,et al.  A Survey of General‐Purpose Computation on Graphics Hardware , 2007 .

[9]  John C. Hart,et al.  The ray engine , 2002, HWWS '02.

[10]  P.H. Christensen,et al.  Ray Tracing for the Movie `Cars' , 2006, 2006 IEEE Symposium on Interactive Ray Tracing.

[11]  Turner Whitted,et al.  An improved illumination model for shaded display , 1979, CACM.

[12]  Tarek A. El-Ghazawi,et al.  The Promise of High-Performance Reconfigurable Computing , 2008, Computer.

[13]  Nadia Nedjah,et al.  Efficient hardware implementation of Ray Tracing based on an embedded software for intersection computation , 2013, J. Syst. Archit..

[14]  Helen H. Hu,et al.  Ray Tracing from the Ground Up , 2007 .

[15]  Jim Hurley,et al.  Ray Tracing Goes Mainstream , 2005 .

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

[17]  Ingo Wald Active thread compaction for GPU path tracing , 2011, HPG '11.

[18]  Nadia Nedjah,et al.  A parallel architecture for ray-tracing with an embedded intersection algorithm , 2011, 2011 IEEE International Symposium of Circuits and Systems (ISCAS).

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

[20]  Bui Tuong Phong Illumination for computer generated pictures , 1975, Commun. ACM.

[21]  Maxim Shevtsov,et al.  Ray-Triangle Intersection Algorithm for Modern CPU Architectures , 2007 .

[22]  Nadia Nedjah,et al.  An efficient parallel architecture for ray-tracing , 2012 .

[23]  Aaron Knoll,et al.  Ray tracing animated scenes using coherent grid traversal , 2006, SIGGRAPH 2006.

[24]  Nadia Nedjah,et al.  Two Alternative Parallel Implementations for Ray Tracing: OpenMP and MPI , 2010 .

[25]  Hans-Peter Seidel,et al.  Exploring the use of ray tracing for future games , 2006, Sandbox '06.

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

[27]  Pat Hanrahan,et al.  Ray tracing on programmable graphics hardware , 2002, SIGGRAPH Courses.

[28]  C.B. Cameron Using FPGAs to Supplement Ray-Tracing Computations on the Cray XD-1 , 2007, 2007 DoD High Performance Computing Modernization Program Users Group Conference.