kdツリーの構築

ようやくkdツリーを構築することが出来ました。ケアレスミスのせいでAABBと三角形の交差判定処理の実装に少々時間がかかってしまいましたが、なんとか動いてくれてほっとしてます。先日作成したビューワーで生成したツリーを表示させてみたところ、期待する表示が得られたので多分大丈夫でしょう。

この辺の手続きは、最終的には、

  • テストプログラムを実行して、構築したkdツリーのノード情報を収集する
  • 収集したノード情報をデータベース(SQLite)に保存する
  • データベースから取り出したノード情報を元にモデルデータを出力する
  • 出力したモデルデータをビューワーからインポートして視覚化する

となりました。今回データベースを導入したのは、kdツリーだけに限らず、他の目的で収集した様々なデータを保存するリポジトリとして便利だと思ったからです。ちょっと回りくどい感じがしますが、一旦データベースにレコードとして放り込んでしまえば、色んな言語やツールを使って編集・加工がしやすいですし、そもそもデータ解析のような処理はC++よりもスクリプト言語を使った方がずっと楽。後は、kdツリーを使ってレイと交差するオブジェクトを検索できればひとまず完成ですね。