レイトレーサーを実装してみた。(レイトレーシングを実行するプログラムな)
-
Copilotに依頼したら短いプログラムを出力してくれたので、これをベースに処理するクラスを作成してみた。
自分が実装したことあるのはシェーダベースのレイマーチングによるものなので、それもなかなか偏ってるので、まずレイトレとはどうやって実装するものぞというのを調べてみたもの。
現在作っているのが2Dのラスタライザなので、あくまでラスタライザ上で描画する対象としてレイトレーシングを動かす。
実装としてはアプリケーション側から描画命令を呼び出す。
レイトレーサー内の更新はゲームスレッドで動かして、レイトレーシングを描画命令で起動することにした。
更新と描画は別スレッドでの動作してるせいか、割とさくさく動いてビビる。