GLSL-PathTracer
一个在GLSL片段着色器中运行的基于物理的路径追踪器。
特性
- 单向路径追踪器
- 用于实例化的两级BVH
- Disney BSDF
- 纹理映射(反照率、金属度-粗糙度、法线、发光)
- 解析光源(球形、矩形、定向)
- 基于图像的照明
- 多重重要性采样
- 分块渲染
- OpenImageDenoise
- 随机alpha测试
- MagicaVoxel风格的均匀体积
- GLTF/GLB支持(进行中)
构建说明
Windows系统请参阅INSTALL-WIN.txt,Linux系统请参阅INSTALL-LINUX.txt获取构建说明。
示例场景
仓库中提供了几个示例场景。可以从以下链接下载更多场景: https://drive.google.com/file/d/1UFMMoVb5uB7WIvCeHOfQ2dCQSxNMXluB/view
画廊
参考文献/致谢
- 非常感谢Cedric Guillemet (https://github.com/CedricGuillemet) 清理代码、添加UI、集成ImGuizmo、cmake以及进行了大量修复。
- Tinsel渲染器 (https://github.com/mmacklin/tinsel) 本项目使用了该项目的场景描述和加载器的修改版本。
- 《Ray Tracing in One Weekend》 (https://github.com/petershirley/raytracinginoneweekend) Peter Shirley的这本优秀的光线追踪入门书籍帮助我开始了这个项目。
- Erich Loftis的THREE.js路径追踪器 (https://github.com/erichlof/THREE.js-PathTracing-Renderer)。
- OptiX介绍示例 (https://github.com/nvpro-samples/optix_advanced_samples/tree/master/src/optixIntroduction)
- Mitsuba渲染器 (https://github.com/mitsuba-renderer/mitsuba) 用于验证的参考。
- PBRT-v3 (https://github.com/mmp/pbrt-v3) 提供了无尽的知识来源。在线书籍是一份永不枯竭的礼物。
- 模型链接/致谢在assets文件夹中(参见:Model Credits.txt)