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下載,屬於公共領域。