3 个版本 (1 个稳定版本)
1.0.0 | 2024年1月1日 |
---|---|
0.1.1 | 2023年11月3日 |
0.1.0 | 2023年6月2日 |
在 科学 分类中排名 161
3.5MB
3.5K SLoC
🌟 Photo
: 精确光线追踪
🔭 概述
Photo
是一个基于 Rust 的光线追踪库,强调精确性和模块化,旨在为照片级真实感提供精确的光线模拟。它独特地利用 CPU 功能,增强硬件兼容性和精确度。
🔗 GPU 适配:Photo GPU 分支。
🚀 关键特性
- 🖥️ 高精度与并行处理:针对多核 CPU 优化。它采用基于瓦片的渲染,减少内存使用并启用渲染检查点。
- 🎨 高级渲染技术:弃用传统纹理,
Photo
使用色图和详细的阴影计算,以生成逼真的图像。 - 🌐 灵活的场景描述:提供 JSON 配置的场景,并支持 .obj 文件作为模型输入,提供广泛的创意自由。
🏎️ 支持
- 光线追踪
- 基于瓦片的渲染
- 时间渲染
- 边界体积层次结构
- 网格实例化
- 表面类型
- 不透明
- 反射
- 折射
- 许多渲染引擎
- 后期处理效果
🏁 快速入门
克隆仓库并将根目录设置为当前工作目录
git clone https://github.com/FreddyWordingham/photo.git photo
cd photo
使用 Cargo 构建包
cargo build --release
然后运行二进制文件,指定输入参数文件
cargo run --release ./input/parameters.json
然后您可以使用包含的脚本将瓦片拼接成一张单独的图片
sh scripts/stitch.sh path/to/tile/directory
📖 详细信息
Photo
是一个用 Rust 编写的光线追踪库,非常注重精确性和模块化。它旨在非常精确,重点是对场景中光线传输的物理精确模拟,以生成照片级真实感图像。
它使用 CPU 而不是 GPU 进行光线追踪,允许它在广泛的硬件上运行,并且比 GPU 允许的精度更高。(有关针对 GPU 的库实现的实现,请参阅 GPU 分支。)
尽管该库针对CPU进行设计,但它被设计成高度并行化,可以利用多核处理器。图像通过一系列瓦片进行渲染,这最小化了内存占用,并允许对渲染进行检查点。
而不是使用纹理,Photo
使用颜色图和阴影计算来生成逼真的图像。场景描述以JSON编写,输入模型是wavefront (.obj) 文件,这使得场景描述具有很高的灵活性。
依赖关系
~22–31MB
~314K SLoC