MacDirectory Magazine

Asia Ladowska

MacDirectory magazine is the premiere creative lifestyle magazine for Apple enthusiasts featuring interviews, in-depth tech reviews, Apple news, insights, latest Apple patents, apps, market analysis, entertainment and more.

Issue link: https://digital.macdirectory.com/i/1401427

Contents of this Issue

Navigation

Page 79 of 123

Progressive photon mapping is the first algorithm capable of rendering global illumination and caustics in general scenes. To illustrate this figure 3 shows a simple reflective cube on a diffuse plane illuminated by a point light source. If this cube is rendered using path tracing it completely lacks the caustics due to light reflected off the cube onto the diffuse plane. More advanced algorithms such as bidirectional path tracing, metropolis light transport can render the caustics on the diffuse plane, but none of these methods can render the reflection in the cube of this caustics (what is known as a specular-diffuse-specular interaction). Several current “physically based renderers” can only render the caustics shown in the middle image and lack the ability to render the reflection of caustics. Progressive photon mapping renders everything including the reflection as shown in the right image in figure 3. The progressive photon mapping algorithm is illustrated in figure 4. KeyShot has been using progressive photon mapping since its inception, and KeyShot has been able to render caustics with a single click since the first release. KeyShot is using a newer development of adaptive progressive photon mapping [3] to compute both caustics on complex indirect illumination. This algorithm is quite complex and it requires complex data structures to keep track of the photons and it runs only on the CPU. Caustics on the GPU Fast forward to 2018 I was attending the NVIDIA keynote where CEO Jensen Huang introduced the new RTX hardware ray tracing technology. He also showed an interactive demonstration of the new hardware that included caustics. After the keynote I spoke with Jacopo Pantaleoni (a research scientist at NVIDIA), who told me that he had to implement the caustics for the demonstration as Jensen Huang had explicitly asked for it. Jacopo had implemented a variation of photon mapping that used a screen based reconstruction kernel to avoid having to build a complex data structure. The interactive path tracing and caustics demonstrations at SIGGRAPH 2018 was an eye opening experience and after discussing the RTX technology with several researchers at NVIDIA and hearing their talks it became clear we needed this technology in KeyShot. The challenge was how to get the complex algorithms in KeyShot mapped to the GPU? Jacopo’s algorithm worked well, but it could not handle the reflections of the caustics as shown in figure 3. In KeyShot 9, we ended up implemented a full progressive photon mapping algorithm on the GPU capable of rendering caustics including the reflections. The GPU photon mapping algorithm renders the same image as the CPU version, but it was not quite as sophisticated. In most cases the raw power of the RTX GPUs compensated for this and made full rendering of caustics on the GPU possibly and still pretty fast. However, we had to tell some of our customers that for complex caustics they might be better off using the CPU as it would still be faster due to the advanced algorithms used.

Articles in this issue

Archives of this issue

view archives of MacDirectory Magazine - Asia Ladowska