Rust レイトレーシング ⑨ 金属・ガラス


金属とガラスを実装した。


それぞれMaterial Traitを実装し、光が当たったときのその光のゆく方向を計算する。


再帰の呼び出しに条件を付けることで、不必要なほどの反射光の計算を適当に減らす。


fuzzは反射時のランダム要素


ガラスの球と屈折率

f:id:katakanan:20180213225531p:plain:w300
わかりにくいが手前にガラスの球。右側に金属の球がある。

f:id:katakanan:20180213230235p:plain
スレッド数でだいぶ差が出るようになった。

今は単純にスレッドを分割しているが、物体に当たるとわかったらスレッド数を増やして
動的にスーパーサンプリング数を増やすとかできたら良いかもしれない?。