ユーザ用ツール

サイト用ツール


2026:02:21

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
2026:02:21 [2026/02/21 12:45] machiaworx2026:02:21 [2026/02/21 17:38] (現在) machiaworx
行 2: 行 2:
  
 ===== プログラム ===== ===== プログラム =====
 +  * レイトレーサーを実装してみた。
 +  * https://x.com/__machia__/status/2025073094340346166?s=20
 +  * Copilotに依頼したら出力してくれたので、これをベースに処理するクラスを作成してみた。
 +  * 自分が実装したことあるのはシェーダベースのレイマーチングによるものなので、それもなかなか偏ってるので、まずレイトレとはどうやって実装するものぞというのを調べてみたもの。
 +  * 現在作っているのが2Dのラスタライザなので、あくまでラスタライザ上で描画する対象としてレイトレーシングを動かす。
 +  * 実装としてはアプリケーション側から描画命令を呼び出す。
 +  * レイトレーサー内の更新はゲームスレッドで動かして、レイトレーシングを描画命令で起動することにした。
 +  * 更新と描画は別スレッドでの動作してるせいか、割とさくさく動いてビビる。
 +
 +----
 +  * やってることは当然ながらレイマーチングと似ている。
 +  * 画面のピクセルごとに「どの地点から光が飛んでいて、どう反射しているの」をシミュレートしている。
 +  * カメラの仰角とかの絡みがいまいちわかってない気がする。
 +
 +----
   * ここ1週間でテンションが上がりすぎてソースコード書き散らしてた。   * ここ1週間でテンションが上がりすぎてソースコード書き散らしてた。
   * 結果、内部がなかなかやべえ変数名だったりコメントがなかったりしてた。   * 結果、内部がなかなかやべえ変数名だったりコメントがなかったりしてた。
行 23: 行 38:
 ---- ----
   * 殴り書きなせいで処理自体が重複していた部分や無駄に比較している処理があったので、少し修正済み。   * 殴り書きなせいで処理自体が重複していた部分や無駄に比較している処理があったので、少し修正済み。
-  * 結果、FPS80前後だったのがFPS115-120くらい出るようになった。+  * 結果、負荷かけた描画がFPS80前後だったのがFPS115-120くらい出るようになった。
  
 +----
 +  * これよさそう
 +  * https://github.com/sejja/2D-Software-Rasterizer
 +  * 
2026/02/21.1771645511.txt.gz · 最終更新: 2026/02/21 12:45 by machiaworx