概要
立方体を配置したり飛ばしたりして、立方体の物理的な挙動を見ることができるシミュレーションソフトです。立方体の質量や摩擦係数、弾性力をリアルタイムで変更し実行することも可能です。
物理演算処理は1から自分で作成しています。
制作期間: 3か月
制作人数: 1人
技術紹介
・シミュレーションパイプライン
ブロードフェーズ...AABBによる衝突している可能性のあるオブジェクトの検出
↓
ナローフェーズ...OBB及びポリゴン単位での当たり判定&衝突点検出
↓
拘束の解消...解析法による拘束の解消
・空間分割(オクトツリー)

オブジェクトの数が多いとブロードフェーズにおけるAABB判定を総当たりでやると計算に時間がかかってしまうため、空間分割を行い判定回数を減らしています。
また、モートンオーダーを使用しているため、空間へのアクセス時間を短縮しています。
・CUDA

CUDAを使用することでGPUでの並列処理を行い処理時間を大幅に短縮しています。
処理時間比較表

アピールポイント
一番力を入れた部分は立方体を積み上げても安定するようにした部分です。書籍や過去に行われたCEDECの資料を参考にし、ウォームスタートや貫通許容を利用することで実装しました。
