Raysailは、Rustを使用した1つの週末シリーズの学習レイトレースに基づいたモンテカルロタイプのレイトレーサーです。これは、シリーズの最初の2冊の本から機能を実装するREMDAプロジェクトからフォークされました。 3番目の機能を追加しようとしましたが、結果の画像が大丈夫に見えることでさえ、私のコードが実際に正しいことを疑います。
さらに、Raysnailには、QBVH-Rust-Ray-Tracerのコード、つまりTriangle Meshモジュール、OBJファイルの読み込み、Blinn-Phong Material Codeが組み込まれています。
シリーズの3冊目の本に「残りの人生の残り」と名付けられたすべての改善を組み込むための進行中の作業を超えて、次にRaysnailに追加したいいくつかの機能があります。
現在、「preview_sdl2」の例にはプレビューウィンドウの非常に粗い実装がありますが、プレビューを使用して与えられた高さと幅でいくつかのシーンをトレースするために、シーンの例とコマンドラインパラメーターからより分離する必要があります。
Povrayシーン定義言語(SDL)に少なくとも部分的なサポートを実装したいと思います。悲しいことに、Povrayの材料の定義は、Raysnailの材料とは大きく異なり、Povray素材を適切にエミュレートすることは困難または不可能でさえ、過去の些細な例です。これを書いている時点で、Povrayカメラと球体の定義を読み取ることができる非常に初歩的なSDLパーサーを実装しました(SDL/Example.sdlを参照)。より多くのジオメトリと物質的な定義のためにこれを拡張したいのですが、Povray SDL機能のサブセットのみをサポートする可能性があります。
3Dフラクタルのファンとして、フラクタルレンダリングコードを実装したいと思います。現時点では、マンデルバルブの粗いインプレンスがあり、非常に低い品質のみをレンダリングしますが、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からダウンロード、パブリックドメインに落ちます。