われがわログ

最適化アルゴリズムとかプログラミングについて書きたい

週末レイトレーシングを読んでレイトレーサを作った

レイトレーシングのやり方が気になったので、以下のページを読みつつレイトレーサをつくったのでメモ。 英語のタイトルは「Ray Tracing in One Weekend」。 著者はNVIDIAの社員とのこと。すごい。 inzkyk.xyz

成果物は以下のリポジトリにおいた。 github.com

f:id:estshorter:20200809165552p:plain
出力画像1
f:id:estshorter:20200809165717p:plain

感想としては、アンチエイリアスとか、反射の方法についてちゃんと勉強できて非常に参考になった。 ベクトル(線形代数)の知識があれば誰でも読めると思う。 外積とか正規直交基底が何の説明もなく出てくるので高校レベルだときついか。 また、中空ガラス球や、焦点ボケに関しては説明が少なく、自分が正しく理解できたか心配。 また、日本語版はコードや記述に間違いがあったりするので(翻訳が悪いわけではなく、海外版は更新が速いため修正されている)、原著の方も参考にしたほうがよいと思われる。 日本語版の、屈折したレイの導出には間違いがあって、私はここでかなり時間がもっていかれた。 https://raytracing.github.io/books/RayTracingInOneWeekend.html

ちなみに、下記のページにもあるように、最後の画像の出力にはめっちゃ時間がかかる。 この記事は画像生成中に書いている。 questbeat.hatenablog.jp

なお、日本語版は、訳者が異なる2つのバージョンが存在する。 tatsu-zine.com

inzkyk.booth.pm

最初のリンクのバージョンは無料で読める&htmlなのでコード実行しやすくありがたい。しかも、3冊目まで訳されている。 BoothではPDF版が購入でき、学生なら無料で入手できる。