われがわログ

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

「週末レイトレーシング 第二週」を読んだ

前回記事で紹介した「週末レイトレーシング」の第2巻を読んだのでメモ。

waregawa-log.hatenablog.com

inzkyk.xyz

原著: https://raytracing.github.io/books/RayTracingTheNextWeek.html

感想としては、効率的に衝突を判定するデータ構造であるBVHのところはかなり面白い。今回のレンダリング画像だと、最後のやつ以外使っていないんだけど。 一方、ノイズ処理だったりボリュームレンダリングのところの説明が足りないなぁという印象。後者については訳注+コードを読みつつ自分の頭で考えたらわかったが、前者はコードだけがある状態だったので、なぜこれでうまくいくのかが納得できなかった。 ただ、全体的にはわかりやすく、この本をやると板・直方体・光源がレンダリングできるようになって汎用性が増すので、前作をやった人は是非やってみてほしい。 複数光源がある場合、どう処理するのか疑問だったのですっきりした。 ちなみに、最後の画像の出力には私のPCでは半日以上かかった。

以下、出力画像集。

f:id:estshorter:20200814124433p:plain
跳ねる球とチェッカーテクスチャ
f:id:estshorter:20200814124437p:plain
チェッカーテクスチャの球2つ。コードギアスでこんな構図(ルルーシュがギアス受け取るらへん?)あったなと思った。
f:id:estshorter:20200814124441p:plain
パーリンノイズテクスチャ
f:id:estshorter:20200814124458p:plain
パーリンノイズをいい感じにしたやつ
f:id:estshorter:20200814124501p:plain
乱流ノイズ
f:id:estshorter:20200814124505p:plain
パーリン+乱流ノイズ。大理石のようになる。
f:id:estshorter:20200814124510p:plain
画像テクスチャの貼り付け
f:id:estshorter:20200814124519p:plain
発光オブジェクトの追加
f:id:estshorter:20200814124534p:plain
コーネルボックス。光源が小さく、ちゃんとサンプリングできていないのでノイズがでている。
f:id:estshorter:20200814124538p:plain
ボリューム(霧)レンダリング
f:id:estshorter:20200814124542p:plain
詰め合わせ