JavaScriptでレイトレーシング。
2016/8/31
こんな小さなプログラムでテカテカの3Dグラフィックが描画できる。
復刻!レイトレーシング! で紹介されていた Tiny Raytracer の source code を参考に、しくみを理解しつつ整形していったのだが、数式は大半が理解できていない。
初めてレイトレーシングに出会ったのは、大阪大学のLINKS-1を紹介したムック本だった。市販マイコンはZ80が主流のころに、Z8000 + 8087のレンダリングボード(今でいうGPUか)を64台並べたスーパーマシンで高精細な画像を出力していた。それでも描画には数分から数時間かかると書かれていた記憶がある。手元のZ80だと何時間もかけて320×200ぐらいの粗いディザリングのグラフィックがようやく出来上がる感じ。それが今ではJavaScriptでさえリアルタイムに描画できる。すごい。