• Accelerated Single Ray Tracing for Wide Vector Units image/svg+xml

    The annual High Performance Graphics conference (HPG’17) is kicking off today in LA with a very promising line-up of papers. A side effect of the continued VR hype is an increased interest in ray tracing methods motivated by adaptive rendering algorithms. In addition, production rendering has seen wide-spread adoption of ray tracing. So these are good times for ray tracing research and HPG offers two papers focused on accelerated ray traversal methods, one targeted at the GPU by Nvidia (view), and one targeted at the CPU by myself. You can read my contribution here, and after that keep on reading this blog post which describes some further optimizations of the algorithm (named WiVe) introduced in the paper.

  • Part II: Parallel BVH construction image/svg+xml

    The best known BVH construction algorithm in terms of ray tracing performance is the BVH with spatial splits (SBVH). In contrast to a standard BVH where sibling nodes overlap in space if the corresponding primitives do, the SBVH allows to split overlapping primitives resulting in spatially disjunct sibling nodes. Primitive splitting is a costly operation and considerably complicates multi-threaded BVH construction due to recursively growing memory buffers.

    The raPT renderer contains a highly efficient multi-threaded and vectorized SBVH construction framework, which is described in the paper Parallel Spatial Splits in Bounding Volume Hierarchies published in this year’s Eurographics Symposium on Parallel Graphics and Visualization (EGPGV16).

  • Part I: The raPT acceleration structure image/svg+xml

    This is the first part of a series about the inner workings of the raPT renderer, uncovering techniques and implementation details. The topic for today is the acceleration structure implemented in raPT to speed up the calculation of ray-geometry intersections.

  • Introducing the raPT renderer image/svg+xml

    Front view of a path-traced Audi R8 Alternate front view of a path-traced Audi R8 Rear view of a path-traced Audi R8
    Bottom view of a path-traced Boeing 777 Front view of a path-traced Boeing 777 Inside view of a path-traced Boeing 777

    Over the past few weeks the testbed surrounding my fast ray tracing kernels has evolved into a fully capable rendering system, featuring HDR environment lighting, mesh lights, next event estimation, low discrepancy samples, Russian roulette, and a simple material model supporting glossy and specular reflections and refractions.

  • Processing HDR maps for importance sampling image/svg+xml

    Currently I’m implementing a HDR pipeline for environment map lighting in raPT, and I have found HDR image processing to be quite demanding computationally. In particular the generation of full resolution CDF tables for importance sampling can take a long time with a straightforward single-threaded implementation. For example, only building the CDF table for a 8k×4k HDR image (floats) already requires about 600ms on my Intel Xeon E5 v3. Since I want to use a slider to adjust exposure and rotation of the environment maps in my scenes, this is real annoyance instead of real time.

  • Fast ray tracing kernels image/svg+xml

    Front view of a path-traced Boeing 777 Bottom view of a path-traced Boeing 777 Side view of a path-traced Boeing 777

    This is my first raPT blog post so welcome and thanks for reading. A couple of days ago JCGT published my paper Efficient Ray Tracing Kernels for Modern CPU Architectures which introduces refined algorithms for BVH4 traversal of coherent and incoherent rays, named CLPT and ORST respectively.