2021-07-31 (土)
とても眠い.
以前メタセコイアのプラグイン用に書いてたBSP Tree周りの実装を整理したりしていた.https://github.com/binzume/cppgeom
BSP木で3Dオブジェクトを扱う実装,ツリー内にポリゴンを保持することが多い気がするけど,元々がBSP木でオブジェクト同士のブーリアン演算するためのやつだったので,ノードには境界面のみを保持してツリー自体が形状を表現するシンプルなやつにした.
動作確認とベンチマークのためにrayとBSP木の交差判定するスクリプト書いてみたけど,ここまで来るとレイトレーサー書きたくなるやつだ.
交差判定時の重なった面を無視するために雑に入れたepsilonを消したいのだけど,浮動小数点数の扱いむずい.