We introduce a novel algorithm for progressively removing noise from view-independent photon maps while simultaneously minimizing residual bias. Our method refines a primal set of photons using data from multiple successive passes to estimate the incident flux local to each photon. We show how this information can be used to guide a relaxation step with the goal of enforcing a constant, per-photon flux. Using a reformulation of the radiance estimate, we demonstrate how the resulting blue noise photon distribution yields a radiance reconstruction in which error is significantly reduced. Our approach has an open-ended runtime of the same order as unbiased and asymptotically consistent rendering methods, converging over time to a stable result. We demonstrate its effectiveness at storing caustic illumination within a view-independent framework and at a fidelity visually comparable to reference images rendered using progressive photon mapping.
We present an efficient ray-tracing algorithm which, for the first time, does not store any data structures when performing spatial subdivisions, and directly computes intersections inside the scene. This new algorithm is often faster than comparable ray-tracing methods at rendering dynamic scenes, and has a similar level of performance when compared to static ray-tracers. Memory management is made minimal and deterministic, which simplifies ray-tracing engineering, as spatial subdivision data structures are no longer considered in the graphics pipeline. This is possible with a modification of Whitted’s naive ray-tracing algorithm by using a divide-and-conquer approach, and by having a sufficient collection of rays in order to reduce the complexity of naive ray-tracing. In particular, the algorithm excels at spontaneously solving large Ray/Primitive intersection problems.