Brownie Renderer: A Parallelized Path Tracing Light Transport Simulator
布朗尼渲染器:高质量多核路径追踪渲染器。
本渲染器的目标是成为一个轻量化、可扩展、跨平台的基于物理的高性能渲染器,在接近实时渲染的低采样率下达到最佳效果。
- 无限次反弹路径追踪
- 低采样高收敛
- 完美的漫反射表面渲染
- 自定义渲染质量
- 多核心并行加速(OpenMP)
- 跨平台:macOS(Apple Silicon + Intel)、Linux(x86-64 + ARM64)
- 进一步的采样优化
- ReSTIR 蓄水池时空重要性重采样算法
- 自定义场景
- 多种材质支持 ...等等。
![]() |
![]() |
![]() |
|---|---|---|
| 2 spp | 4 spp | 16 spp |
需要 Xcode Command Line Tools 和 libomp:
brew install libomp编译:
make # Debug(build/debug/)
make release # Release(build/release/,-O3)
make run # Release 编译 + 运行
make clean也可以直接用 CMake:
mkdir build && cd build
cmake .. \
-DCMAKE_CXX_FLAGS="-Xpreprocessor -fopenmp -I$(brew --prefix libomp)/include" \
-DCMAKE_EXE_LINKER_FLAGS="-L$(brew --prefix libomp)/lib -lomp"
make需要 GCC(自带 OpenMP)和 CMake:
sudo apt install g++ cmake make # Debian / Ubuntu
sudo dnf install gcc-c++ cmake make # Fedora编译:
make # Debug
make release # Release(-O3)
make run # Release 编译 + 运行
make clean直接用 CMake(不需要任何特殊 flag):
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
makedocker build -t brownie-renderer .make run或
./build/release/RayTracing程序会提示输入每像素采样数(samples per pixel, spp),输入数字后开始渲染。
以下数据在 16 spp、Cornell Box 场景、784x784 分辨率下测得。
| 平台 | 编译 | 线程 | 墙钟 | User CPU |
|---|---|---|---|---|
| Apple M5 Max (macOS) | Release | 18 (6P+12E) | 3.8s | 61.1s |
| Apple M5 Max (macOS) | Release | 6 (P-cores) | 4.7s | 27.8s |
| Apple M5 Max (macOS) | Debug | 18 (6P+12E) | 16.0s | 258.2s |
| Rosetta 2 x86_64 (Docker) | Release | 18 (virtual) | 4.9s | 83.7s |
Apple Silicon 上 E-cores 对渲染加速贡献很小但功耗不小。用
OMP_NUM_THREADS=6 make run仅用 P-cores 可以在几乎不损失速度的前提下大幅降低 CPU 功耗。



