结合 Taichi GPU 并行经典渲染与 Grover 量子搜索 / 模拟退火 协处理器。实现完整 Disney 原则 BRDF (2012),支持标准 Cornell Box 场景。
┌──────────────┐ ┌──────────────────┐ ┌──────────────┐
│ Scene Build │─────▶│ Taichi Renderer │─────▶│ PNG Output │
│ (trimesh) │ │ (GPU kernel) │ │ │
└──────────────┘ └────────┬─────────┘ └──────────────┘
│ quantum_ratio > 0
┌───────▼────────────────┐
│ HybridIntersectSolver │
│ ├─ Grover (Qiskit) │ ← 量子路径
│ └─ Annealing (CPU) │ ← 本地算力回退
└────────────────────────┘
- Möller-Trumbore 光线-三角形相交 (暴力并行)
- Disney BRDF 着色 (
@ti.funcon GPU) - 面光源 4x 采样 + 软阴影
- Reinhard tone mapping
- Per-triangle albedo 支持
自动选择后端:
- Grover 量子搜索 (Qiskit 可用且 qubit ≤ 12 时)
- Oracle 编码三角形 AABB 相交信息
- 相位翻转标记态 + 扩散算子放大
- O(N) → O(√N) 复杂度降低
- 模拟退火 (Qiskit 不可用或场景过大时)
- 将最近相交建模为组合优化
- 能量 = 命中距离, Metropolis 接受准则
- 多链并行退火, 指数冷却调度
- 利用本地 CPU 算力
# 安装依赖
pip install -r requirements.txt
# 渲染标准 Cornell Box (纯经典)
python render_cornell.py
# 混合渲染 (10% 光线走协处理器)
python render_cornell.py --quantum 0.1 --demo-search
# 自定义分辨率
python render_cornell.py --width 1024 --height 1024 --output hd.png
# 加载外部 mesh
python main.py --mesh scene.obj --quantum 0.05quantum_raytracer/
├── main.py # 通用入口 (mesh 加载 / Cornell Box)
├── render_cornell.py # 标准 Cornell Box 渲染入口
├── taichi_renderer.py # Taichi GPU 渲染管线 + Disney BRDF
├── quantum_oracle.py # Grover 量子搜索 + 模拟退火 + 混合调度器
├── disney_brdf.py # Disney BRDF CPU 参考实现 + 预设材质
├── mesh_loader.py # trimesh 网格加载 + BVH 构建
├── requirements.txt # 依赖
└── README.md
- QRF — arXiv:2211.03418: 量子电路隐式场景表示
- Towards Quantum Ray Tracing — IEEE TVCG 2025: Grover O(√N) 交点查询
- A Framework for Quantum Ray Tracing — arXiv:2203.15451: Oracle 设计
- Quantum Ray Tracing — CNMAC 2025: Qiskit 实现细节
- Kirkpatrick et al. 1983 — "Optimization by Simulated Annealing", Science
- Burley 2012 — Disney Principled BRDF, SIGGRAPH Course Notes
- Möller & Trumbore 1997 — Fast Ray-Triangle Intersection, JGT
- Heitz 2014 — Understanding Masking-Shadowing in Microfacet BRDFs
