Convex (Конвекс, выпуклая геометрия)
Convex (Конвекс) — выпуклая геометрия (если две произвольных точки объекта соединить линией, то линия будет принадлежать объекту).
Несмотря на то, что английские слова «convex hull» означают «выпуклая оболочка», в литературе об определении столкновений (Collision Detection) под конвексом обычно понимается выпуклая замкнутая поверхность, представленная множеством треугольников.
Для нахождения пересечений между выпуклыми телами существует 3 основных метода: Separating Axis Theorem, V-Clip, Gilbert-Johnson-Keerthi. Особой популярностью в последнее время стал пользоваться последний (GJK) ввиду хорошей кешируемости и наличия хороших алгоритмов нахождении дополнительной контактной информации (нормаль контакта, глубина проникновения, точки контакта) — Expanded Polytope Algorithm (EPA), Minkowski Portal Refinement (MPR — он является заменой GJK, основанной на тех же принципах, и позволяет проще получить контактную информацию).
Для определения столкновений между произвольными телами с помощью описанных выше алгоритмов требуется либо построить вокруг тела выпуклую оболочку (грубая аппроксимация), либо разбить тело на выпуклые составляющие с нужной точностью (менее грубая аппроксимация, алгоритмы носят название Approximate Convex Decomposition).
Что такое Convex (Конвекс, выпуклая геометрия)?
9 февраля 2008 (Обновление: 2 сен 2009)
Комментарии [4]