Raysail是一种基于一个周末系列使用Rust的Learn Ray Tracing的Monte Carlo Type Raytracer。它是从Remda项目中分配的,Remda项目实现了该系列的前两本书的功能。我试图添加第三个功能,但是我怀疑我的代码实际上是正确的,即使结果图像看起来还不错。
此外,Raysnail将QBVH-RUST射线跟踪器中的代码(即三角形网格模块,OBJ文件加载和Blinn-Phong材料代码代码)结合在一起。
除了纳入该系列第三本书中的所有改进的持续工作之外,恰当地命名为“您的余生”之外,接下来还有一些我想添加到Raysnail的功能。
在示例“ Preview_sdl2”示例中,目前有一个非常粗略的预览窗口实现,但是使用预览,它需要与场景示例和命令行参数更加分开,以便使用预览的给定高度和宽度来追踪某些场景。
我想至少对Povray场景定义语言(SDL)实现部分支持。可悲的是,Povray的材料定义与Raysnail中的材料有很大不同,并且过去的琐碎示例可能很难甚至不可能正确模仿Povray材料。在撰写本文时,我实现了一个非常基本的SDL解析器,可以读取Povray摄像头和Sphere定义(请参见SDL/example.sdl)。我想将其扩展以获取更多的几何形状和材料定义,但可能只能支持Povray SDL功能的一个子集。
作为3D分形的粉丝,我想实现一些分形渲染代码。目前,曼德尔布尔(Mandelbulb)有一个粗略的暗示,它的质量仅质量很低,但它可以作为概念证明,即IUT可以使用Raysnail代码来渲染3D分形。也许需要不同的前端。
请检查Wiki以获取功能和计划的完整列表:https://github.com/varkalandar/raysnail/wiki
如果您已经安装了Rust和货物,那么运行Raysnail的一种简单方法是此命令:
cargo run -r --bin raysnail -- -w 800 -h 500 --samples 65 --scene sdl/example.sdlGPLV3
除了:
example/earth-map.png ,从NASA下载,属于公共领域。