Ограничивающий объем - Bounding volume

3D-модель с ограничивающей рамкой, нарисованной пунктирными линиями.

В компьютерная графика и вычислительная геометрия, а ограничивающий объем для набора объектов - это замкнутый объем, полностью содержащий союз предметов в наборе. Ограничивающие объемы используются для повышения эффективности геометрических операций за счет использования простых объемов для размещения более сложных объектов. Обычно для более простых томов есть более простые способы проверка на перекрытие.

Ограничивающий объем для набора объектов также является ограничивающим объемом для отдельного объекта, состоящего из их объединения, и наоборот. Следовательно, можно ограничить описание случаем одного объекта, который предполагается непустым и ограниченным (конечным).

Использует

Граничные объемы чаще всего используются для ускорения определенных видов тестов.

В трассировка лучей, ограничивающие объемы используются в тесты на пересечение лучей, и во многих алгоритмы рендеринга, они используются для просмотр усеченной пирамиды тесты. Если луч или усеченная пирамида не пересекают ограничивающий объем, он не может пересекать содержащийся внутри объект, что позволяет банальный отказ. Аналогично, если усеченная пирамида содержит весь ограничивающий объем, содержимое может быть тривиально принято без дополнительных тестов. Эти тесты пересечения создают список объектов, которые должны быть «отображены» (визуализированы; растеризованный ).

В обнаружение столкновения, когда два ограничивающих объема не пересекаются, содержащиеся объекты не могут столкнуться.

Тестирование ограничивающего объема обычно намного быстрее, чем тестирование самого объекта из-за более простой геометрии ограничивающего объема. Это связано с тем, что «объект» обычно состоит из многоугольников или структур данных, которые сводятся к многоугольному приближению. В любом случае, если объект не виден, проверка каждого многоугольника относительно объема обзора является затратной с точки зрения вычислений. (Экранные объекты должны быть «привязаны» к экрану, независимо от того, видны ли их поверхности на самом деле.)

Чтобы получить ограничивающие объемы сложных объектов, распространенный способ - разбить объекты / сцену, используя граф сцены или более конкретно иерархия ограничивающих объемов, например, OBB деревья. Основная идея состоит в том, чтобы организовать сцену в виде древовидной структуры, в которой корень содержит всю сцену, а каждый лист содержит меньшую часть.

Общие типы

Выбор типа ограничивающего объема для данного приложения определяется множеством факторов: вычислительными затратами на вычисление ограничивающего объема для объекта, стоимостью его обновления в приложениях, в которых объекты могут перемещаться или изменять форму или размер. , стоимость определения пересечений и желаемая точность теста пересечения. Точность теста на пересечение связана с количеством пространства в ограничивающем объеме, не связанным с ограниченным объектом, называемым Пустое пространство. Сложные ограничивающие объемы обычно позволяют меньше пустого пространства, но требуют больших вычислительных затрат. Обычно используется несколько типов вместе, например, дешевый для быстрого, но грубого теста в сочетании с более точным, но также более дорогим типом.

Все типы, рассматриваемые здесь, дают выпуклый ограничивающие объемы. Если известно, что ограничиваемый объект выпуклый, это не ограничение. Если требуются невыпуклые ограничивающие объемы, можно представить их как объединение ряда выпуклых ограничивающих объемов. К сожалению, тесты на пересечение становятся более дорогими, поскольку ограничивающие рамки становятся более сложными.

А Ограничительная рамка это кубовид, или в 2-D a прямоугольник, содержащий объект. В динамическое моделирование ограничивающие рамки предпочтительнее других форм ограничивающего объема, таких как ограничивающие сферы или цилиндры для объектов, имеющих примерно кубовидную форму, когда проверка пересечения должна быть достаточно точной. Преимущество очевидно, например, для объектов, которые опираются на других, таких как автомобиль, стоящий на земле: ограничивающая сфера покажет, что автомобиль, возможно, пересекается с землей, что затем необходимо будет отклонить более дорогим тестом актуальной модели автомобиля; ограничивающая рамка сразу показывает, что автомобиль не пересекается с землей, что позволяет избежать более дорогостоящего теста.

Во многих приложениях ограничивающая рамка выровнена с осями системы координат, и тогда она известна как выровненная по оси ограничительная рамка (AABB). Чтобы отличить общий случай от AABB, произвольный ограничивающий прямоугольник иногда называют ориентированная ограничивающая рамка (OBB) или OOBB когда существующий объект местная система координат используется. AABB намного проще проверить на пересечение, чем OBB, но у них есть недостаток, заключающийся в том, что при повороте модели их нельзя просто повернуть вместе с ней, а их необходимо пересчитывать.

А ограничивающая капсула это скользящая сфера (т. е. объем, который занимает сфера при движении по отрезку прямой), содержащий объект. Капсулы могут быть представлены радиусом охватываемой сферы и сегментом, по которому распространяется сфера). Он имеет черты, похожие на цилиндр, но его проще использовать, потому что тест на пересечение проще. Капсула и другой объект пересекаются, если расстояние между определяющим сегментом капсулы и некоторой особенностью другого объекта меньше, чем радиус капсулы. Например, две капсулы пересекаются, если расстояние между сегментами капсул меньше суммы их радиусов. Это справедливо для произвольно повернутых капсул, поэтому на практике они более привлекательны, чем цилиндры.

А ограничивающий цилиндр это цилиндр содержащий объект. В большинстве приложений ось цилиндра совмещена с вертикальным направлением сцены. Цилиндры подходят для трехмерных объектов, которые могут вращаться только вокруг вертикальной оси, но не вокруг других осей, и в остальном вынуждены двигаться только за счет перемещения. Два цилиндра, выровненных по вертикальной оси, пересекаются, когда одновременно пересекаются их проекции на вертикальную ось, которые являются двумя отрезками прямой, а также их проекции на горизонтальную плоскость, два круговых диска. Оба легко проверить. В видеоигры ограничивающие цилиндры часто используются как ограничивающие объемы для людей, стоящих вертикально.

А ограничивающий эллипсоид является эллипсоид содержащий объект. Эллипсоиды обычно обеспечивают более плотную посадку, чем сфера. Пересечения с эллипсоидами выполняются путем масштабирования другого объекта по главные оси эллипсоида на величину, равную мультипликативный обратный радиусов эллипсоида, тем самым сводя проблему к пересечению масштабированного объекта с единичная сфера. Следует проявлять осторожность, чтобы избежать проблем, если применяемое масштабирование вводит перекос. Перекос может сделать использование эллипсоидов непрактичным в некоторых случаях, например, при столкновении двух произвольных эллипсоидов.

А ограничивающая сфера это сфера содержащий объект. В 2-D графике это круг. Ограничивающие сферы представлены центром и радиусом. Их очень быстро проверяют на столкновение друг с другом: две сферы пересекаются, когда расстояние между их центрами не превышает сумму их радиусов. Это делает ограничивающие сферы подходящими для объектов, которые могут двигаться в любом количестве измерений.

А ограничивающая плита - это объем, который в определенной степени проецируется на ось, и его можно рассматривать как плиту, ограниченную между двумя плоскостями. Ограничивающая рамка - это пересечение ортогонально ориентированных ограничивающих плит. Ограничивающие плиты были использованы для ускорения трассировка лучей[1]

А ограничивающий треугольник в 2-D очень полезен для ускорения проверки на клиппирование или видимость кривой B-сплайна. Увидеть "Алгоритмы отсечения окружностей и B-сплайнов" в теме Вырезка (компьютерная графика) для примера использования.

А выпуклая оболочка - наименьший выпуклый объем, содержащий объект. Если объект представляет собой объединение конечного множества точек, его выпуклая оболочка является многогранником.

А дискретный ориентированный многогранник (DOP) обобщает ограничивающую рамку. K-DOP - это логическое пересечение экстентов вдоль k направления. Таким образом, k-DOP - это логическое пересечение k ограничивающая плита и является выпуклой многогранник содержащий объект (в 2-D многоугольник; в 3-D а многогранник ). Двухмерный прямоугольник - это особый случай двухмерного изображения объекта, а трехмерный блок - это особый случай трехмерного изображения объекта. В общем, оси DOP не обязательно должны быть ортогональными, и осей может быть больше, чем размеров пространства. Например, трехмерный блок со скошенными краями и углами может быть сконструирован как 13-DOP. Фактическое количество лиц может быть меньше 2 раз k если некоторые грани становятся вырожденными, уменьшаются до ребра или вершины.

А минимальный ограничивающий прямоугольник или MBR - наименьший AABB в 2-D - часто используется при описании географических (или «геопространственных») элементов данных, служа упрощенным представителем пространственного экстента набора данных (см. геопространственные метаданные ) для поиска данных (включая пространственные запросы, если применимо) и отображения. Это также основной компонент R-дерево метод пространственная индексация.

Основные проверки перекрестков

Для некоторых типов ограничивающего объема (OBB и выпуклые многогранники) эффективной проверкой является проверка теорема о разделяющей оси. Идея здесь в том, что если существует ось, по которой объекты не перекрываются, то объекты не пересекаются. Обычно проверяемые оси - это оси базовых осей для объемов (оси единиц в случае AABB или 3 базовые оси от каждого OBB в случае OBB). Часто за этим следует также проверка перекрестных произведений предыдущих осей (по одной оси от каждого объекта).

В случае AABB эти тесты становятся простым набором тестов на перекрытие с точки зрения единичных осей. Для AABB определяется M,N против одного, определенного О,п они не пересекаются, если (MИкс > пИкс) или (ОИкс > NИкс) или (Mу > пу) или (Оу > Nу) или (Mz > пz) или (Оz > Nz).

AABB также может быть спроецирован вдоль оси, например, если он имеет ребра длиной L и центрирован на C, и проецируется по оси N:
, и или , и где m и n - минимальный и максимальный размер.

OBB похож в этом отношении, но немного сложнее. Для OBB с L и C, как указано выше, и с я, J, и K как базовые оси OBB, тогда:

Для диапазонов м,п и о,п можно сказать, что они не пересекаются, если м > п или о > п. Таким образом, проецируя диапазоны 2 OBB вдоль осей I, J и K каждого OBB и проверяя на непересечение, можно обнаружить непересечение. Путем дополнительной проверки произведений этих осей (I0× я1, Я0× Дж1, ...) можно быть более уверенным, что пересечение невозможно.

Эта концепция определения непересечения с помощью проекции оси также распространяется на выпуклые многогранники, однако при этом нормали каждой многогранной грани используются вместо базовых осей, а пределы основываются на минимальном и максимальном скалярных произведениях каждой вершины. против топоров. Обратите внимание, что это описание предполагает, что проверки выполняются в мировом пространстве.

Пересечение двух k-DOP могут быть вычислены очень аналогично AABB: для каждой ориентации вы просто проверяете два соответствующих интервала двух DOP. Таким образом, точно так же, как DOP является обобщением AABB, тест на пересечение является обобщением теста на перекрытие AABB. Сложность теста на перекрытие двух DOP составляет O (k). Однако это предполагает, что оба DOP даны относительно одного и того же набора ориентаций. Если один из них повернуть, это уже неверно. В этом случае один относительно простой способ проверить два DOP для пересечения - заключить повернутый, , другим, наименьшим охватывающим ДОП ориентированный относительно ориентации первого ДОП . Процедура для этого немного сложнее, но в конечном итоге сводится к матричному векторному умножению сложности. O (k) также.[2]

Смотрите также

использованная литература

  1. ^ Пов-луч Документация[1]
  2. ^ Г. Захманн: Быстрое обнаружение столкновений с помощью динамически выровненных DOP-деревьев. Proc. Ежегодного международного симпозиума IEEE Virtual Reality (VRAIS, теперь IEEE VR), 1998 г., стр. 90-97, DOI 10.1109 / VRAIS.1998.658428, ISBN  0-8186-8362-7 URL: http://cgvr.informatik.uni-bremen.de/papers/vrais98/vrais98.pdf

внешние ссылки