TIM-1EARCHIVE TERMINAL // 2026

PUBLICATION · 学术成果

Proxy Tracing: Unbiased Reciprocal Estimation for Optimized Sampling in BDPT

ACM Transactions on Graphics 43(4), Article 97 · SIGGRAPH

Fujia Su, Bingxuan Li, Qingyang Yin, Yanchen ZhangME, Sheng Li

SECTION01

Exhibit

展示

Proxy Tracing: Unbiased Reciprocal Estimation for Optimized Sampling in BDPT 的效果图
SECTION02

Access Ports

访问入口

SECTION03

Brief

概要

ABSTRACT · 摘要

Robust light transport algorithms, particularly bidirectional path tracing (BDPT), face significant challenges when dealing with specular or highly glossy involved paths. BDPT constructs the full path by connecting sub-paths traced individually from the light source and camera. However, it remains difficult to sample by connecting vertices on specular and glossy surfaces with narrow-lobed BSDF, as it poses severe constraints on sampling in the feasible direction. To address this issue, we propose a novel approach, called proxy sampling, that enables efficient sub-path connection of these challenging paths. When a low-contribution specular/glossy connection occurs, we drop out the problematic neighboring vertex next to this specular/glossy vertex from the original path, then retrace an alternative sub-path as a proxy to complement this incomplete path. This newly constructed complete path ensures that the connection adheres to the constraint of the narrow lobe within the BSDF of the specular/glossy surface. Unbiased reciprocal estimation is the key to our method to obtain a probability density function (PDF) reciprocal to ensure unbiased rendering. We derive the reciprocal estimation method and provide an efficiency-optimized setting for efficient sampling and connection. Our method provides a robust tool for substituting problematic paths with favorable alternatives while ensuring unbiasedness. We validate this approach in the probabilistic connections BDPT for addressing specular-involved difficult paths. Experimental results have proved the effectiveness and efficiency of our approach, showcasing high-performance rendering capabilities across diverse settings.

SECTION04

Cite

引用

BIBTEX
@article{su2024proxy,
  title     = {Proxy Tracing: Unbiased Reciprocal Estimation for Optimized Sampling in BDPT},
  author    = {Fujia Su and Bingxuan Li and Qingyang Yin and Yanchen Zhang and Sheng Li},
  journal   = {ACM Transactions on Graphics},
  volume    = {43},
  number    = {4},
  articleno = {97},
  year      = {2024},
  doi       = {10.1145/3658216}
}
SECTION05

Repositories

代码仓库

ssufujia /

SPCBPT-OptiX7 ↗

An OptiX 7 implementation of SPCBPT: Subspace-based Probabilistic Connections for Bidirectional Path Tracing

STARS
15
FORKS
3
PUSHED
2026.08.08
  • C++64.5%
  • Cuda20.4%
  • Python7.5%
  • PowerShell3.4%
  • Other4.2%

SPCBPT-OptiX7

基于 OptiX 9 / CUDA 的验证性双向路径追踪渲染器。当前默认配置为 LVCBPT + Path Guiding + Proxy (Experimental),Optimal-E 使用 CUDA mirror descent,初始学习率为 1.0。

实验脚本和回归测试随仓库提交;约 3.49 GiB 的原始 snapshot、候选矩阵和日志 仅保存在本地 ignored build/experiments/,不上传 GitHub。

本仓库是论文 SPCBPT:基于子空间概率连接的双向路径追踪 的 OptiX 实验实现。当前实现以验证渲染流程、数据结构和 Blender 接入为主, 不以完整复现论文全部算法为目标。

在 11 个场景真实 snapshot 上补做的 33 组同口径计时中,CUDA mirror lr=1.0 平均耗时 0.277850 s,旧 CUDA Adam lr=0.05 为 0.280028 s。两者速度和 loss 降幅都接近,没有为了速度切换算法的依据, 因此生产端保留实现更简单的 mirror。

环境要求

已验证的基线环境为 OptiX 9.1、CUDA 12.2、MSVC x64、Ninja 和 CMake 3.27 以上版本;全新构建另使用 CMake 4.4.0 验证通过。仓库内第三方 依赖版本见 third_party/README.md。

构建

仓库根目录是唯一支持的 CMake 源码入口,项目会拒绝源码内构建。

  1. 将 CMakeUserPresets.json.example 复制为 CMakeUserPresets.json。
  2. 填写本机的 OptiX_ROOT 和 Ninja 路径。
  3. 打开 x64 Visual Studio Developer PowerShell。
  4. 执行:
cmake --fresh --preset release-optix9-local
cmake --build --preset release-optix9-local

可执行文件位于 build/release-optix9/bin/optixPathTracer.exe;原生 OptiX-IR 文件会部署到同级的 bin/optix-ir/。

普通运行不需要传参数:先把 renderer_config.json.example 复制为 renderer_config.json,然后在仓库根目录直接启动:

.\build\release-optix9\bin\optixPathTracer.exe

程序默认读取当前目录的 renderer_config.json,并在启动时打印实际配置 来源、场景、算法、尺寸、路径模式、path guiding 与 Optimal-E 训练参数。 --config、--scene、--dim 只用于临时覆盖;完整字段说明见 docs/operation.md。

构建目标

  • spcbpt_renderer:OptiX 场景、pipeline、算法和原生 CUDA;不依赖 GLFW、glad、ImGui 或 OpenGL。
  • spcbpt_viewer:窗口、输入、显示与界面。
  • optixPathTracer:应用入口和 CLI 组装。
  • spcbpt_optix_ir:由 CMake 原生编译的两个 OptiX shader。

嵌入 Blender 等只需要渲染核心的宿主可设置 -DSPCBPT_BUILD_VIEWER=OFF -DBUILD_TESTING=OFF。此模式不配置 GLFW、 Dear ImGui、glad 或 OpenGL,只生成 spcbpt_renderer 与 OptiX-IR 相关目标; 如需核心测试,可单独保留 BUILD_TESTING=ON。

场景资源位于 assets/,第三方依赖位于 third_party/,运行与界面操作见 docs/operation.md。

许可证

项目原创代码按 BSD-3-Clause 许可;源文件中已有的 NVIDIA 等版权声明及 third_party/ 自带许可证继续有效。assets/ 不属于可再分发的 renderer-core 源码快照;除非单个资产明确附带许可证,本项目不授予其再分发权。 完整边界见 LICENSE 与 NOTICE.md。

与论文版本的差异

  • 当前禁用 t=1 策略,即光源子路径直接连接相机的策略,因为它通常效率较低。
  • 跨迭代复用光源子路径、环境贴图和透明材质尚未完整实现。
  • 子空间分类暂不考虑方向;多数场景中位置和法线更重要。
  • 子空间采样矩阵从对应子空间对路径完整贡献积分构造的初始矩阵开始训练, 以加快收敛。
  • 训练路径由带 NEE 的简单单向路径追踪器生成。
  • 过亮 firefly 仍比论文版本略多,后续再处理。