arXiv 2025

From Particles to Fields

Reframing Photon Mapping with Continuous Gaussian Photon Fields

Jiachen Tao1,2 Benjamin Planche2 Van Nguyen Nguyen2 Junyi Wu1,2 Yuchun Liu2 Haoxuan Wang1 Zhongpai Gao2 Gengyu Zhang1 Meng Zheng2 Feiran Wang1 Anwesa Choudhuri2 Zhenghao Zhao1 Weitai Kang1 Terrence Chen2 Yan Yan1 Ziyan Wu2
1University of Illinois Chicago 2United Imaging Intelligence
Paper (PDF) arXiv Contact
Gaussian Photon Field teaser showing results on caustics and indirect lighting compared to SPPM and Path Tracing

Gaussian Photon Field (GPF) unifies photon mapping and neural field representations, achieving physically accurate, efficient, and view-reusable global illumination across diverse scenes, including indirect lighting (left) and water caustics (right).

Abstract

Accurately modeling light transport is essential for realistic image synthesis. Photon mapping provides physically grounded estimates of complex global illumination effects such as caustics and specular-diffuse interactions, yet its per-view radiance estimation remains computationally inefficient when rendering multiple views of the same scene. The inefficiency arises from independent photon tracing and stochastic kernel estimation at each viewpoint, leading to inevitable redundant computation.

To accelerate multi-view rendering, we reformulate photon mapping as a continuous and reusable radiance function. Specifically, we introduce the Gaussian Photon Field (GPF), a learnable representation that encodes photon distributions as anisotropic 3D Gaussian primitives parameterized by position, rotation, scale, and spectrum. GPF is initialized from physically traced photons in the first SPPM iteration and optimized using multi-view supervision of final radiance, distilling photon-based light transport into a continuous field.

Once trained, the field enables differentiable radiance evaluation along camera rays without repeated photon tracing or iterative refinement. Extensive experiments on scenes with complex light transport demonstrate that GPF attains photon-level accuracy while reducing computation by orders of magnitude, unifying the physical rigor of photon-based rendering with the efficiency of neural scene representations.

Key Contributions

🔮

Gaussian Photon Field

A novel learnable representation encoding photon distributions as anisotropic 3D Gaussian primitives, bridging traditional photon mapping with modern neural representations.

âš¡

Orders of Magnitude Faster

Once trained, GPF enables efficient radiance evaluation without repeated photon tracing, reducing multi-view rendering costs dramatically compared to SPPM.

🎯

Photon-Level Accuracy

Achieves substantially higher structural similarity (SSIM) compared to path tracing while preserving the physical accuracy of photon-based global illumination.

Method Overview

GPF Pipeline: Initialization from SPPM photons, Radiance Query with anisotropic Gaussians, and Multi-view Optimization GPF Pipeline: Initialization from SPPM photons, Radiance Query with anisotropic Gaussians, and Multi-view Optimization

GPF Pipeline. (1) Gaussian primitives are initialized from physically traced photons. (2) A differentiable radiance query aggregates nearby Gaussian contributions. (3) The field is optimized using sparse multi-view supervision against SPPM reference.

1

Initialization

Gaussian primitives are initialized from photons traced in a single iteration of Stochastic Progressive Photon Mapping (SPPM), providing a physically grounded starting point with proper spatial distribution.

2

Radiance Query

A differentiable mechanism aggregates contributions from nearby Gaussians using anisotropic kernels to estimate surface radiance, triggered at the first diffuse intersection.

3

Optimization

The field is optimized end-to-end against reference radiance computed offline by SPPM using sparse multi-view supervision, distilling complex light transport into a continuous, reusable field.

gaussian_radiance_query.py
def query_gaussian_radiance(x, view_dir, G, kd_tree, r=0.02, k_min=3):
    """Query radiance from Gaussian Photon Field at surface point x."""
    # Phase 1: radius query for local photons
    idx_r = kd_tree.ball_query(x, r)
    
    # Phase 2: supplement with kNN if sparse
    if len(idx_r) < k_min:
        idx_knn = kd_tree.knn_query(x, k_min)
        idx = dedup(idx_r + idx_knn)
    else:
        idx = idx_r
    
    # Phase 3: accumulate weighted contributions
    L, Z = 0.0, 0.0
    for j in idx:
        mu, sigma, quat, color = G[j]
        w = compute_anisotropic_weight(x, mu, sigma, quat, r)
        L += color * w
        Z += w
    
    return L / max(Z, 1e-6)

Results

Multi-View Rendering Results

Multi-view rendering results across various scenes

💧

Water Caustics

Complex refractive caustics through water surfaces

SSIM ↑ PSNR 27.12
🚪

Veach Ajar

Indirect illumination through partially open door

Clean GI Low Noise
✨

Specular-Diffuse

Complex light paths with multiple bounces

Stable View-Consistent

Citation

@article{tao2025gaussianphotonfield, title={From Particles to Fields: Reframing Photon Mapping with Continuous Gaussian Photon Fields}, author={Tao, Jiachen and Planche, Benjamin and Nguyen, Van Nguyen and Wu, Junyi and Liu, Yuchun and Wang, Haoxuan and Gao, Zhongpai and Zhang, Gengyu and Zheng, Meng and Wang, Feiran and Choudhuri, Anwesa and Zhao, Zhenghao and Kang, Weitai and Chen, Terrence and Yan, Yan and Wu, Ziyan}, journal={arXiv preprint arXiv:2512.12459}, year={2025} }