IT用語集 › プログラミング › 凸分解

凸分解

プログラミング Svenska → 更新: 2026-10-24

凹形状のメッシュを凸な部品の集合に分割し、物理エンジンが高速に衝突判定できるようにする処理。

GJKやSATといった衝突判定アルゴリズムは、形状が凸であることを前提にしている。ボウルも椅子も文字の形も凹形状で、この前提を満たさない。対策は、凹形状を、全体でおおよそ中身を埋める複数の凸包に置き換えることだ。厳密な分解は数学的には正しいが、部品が多すぎて実用にならない。そのためエンジンは、許容する凹み具合を決めた近似凸分解で妥協する。

標準的なツールはV-HACD(Khaled Mamou、2011年ごろ)で、メッシュをボクセル化し、クラスタを貪欲に統合して上限数の凸包にまとめる。Bullet、Unity、Unrealに組み込まれている。トレードオフは単純で、凸包が少なければ速いが形は粗く、多ければ形は正確だがコストが上がる。

← 用語集に戻る