Научная статья на тему 'Методы и алгоритмы анализа столкновений зd-объектов в системах моделирования и виртуальной реальности'

Методы и алгоритмы анализа столкновений зd-объектов в системах моделирования и виртуальной реальности Текст научной статьи по специальности «Математика»

CC BY
153
31
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Методы и алгоритмы анализа столкновений зd-объектов в системах моделирования и виртуальной реальности»

МЕТОДЫ И АЛГОРИТМЫ АНАЛИЗА СТОЛКНОВЕНИЙ ЗО-ОБЪЕКТОВ В СИСТЕМАХ МОДЕЛИРОВАНИЯ И ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ

И.В. ГЕРАСИМЕНКО, аспирант кафедры прикладной математики,

Научный руководитель зав. кафедрой прикладной математики, акад. Демьянов Ю.А. В О. АФАНАСЬЕВ, к. т. н., ведуищй инженер ЦНИИМАШ

Одной из основных задач при построении системы виртуальной реальности (BP) [1] является создание подсистемы анализа возможных контактов, столкновений и т.п. заданных объектов и их составляющих. Сложность этой задачи определяется размерностью сеточных описаний моделируемых объектов и мультипликативно возрастает с ростом порядков сеток и количества взаимодействующих объектов. В современных системах ВР в реальном времени моделируется взаимодействие объектов, описываемых сетками с характерными числами порядков 108, поэтому не удивительно, что задачи анализа контактов последние 5-10 лег активно развиваются уже как отдельное направление, известное под названиями «Collision Detection» и «Interference Detection».

По своей внутренней сути подход к проверке контактов остался неизменным: последовательно проводятся проверки пересечений вершин и граней многогранников. Для простых объектов с числом вершин 10-10' эту задачу можно решить «в лоб» - простым перебором всех возможных пар. Для сложных объектов более эффективен подход, в основу которого положено постепенное продвижение к оболочке, внутри которой находится объект, путем усложняющегося разбиения окружающего пространства на простые многогранники (чаще всего - параллелепипеды). При этом проверка на пересечение простых многогранников, по-прежнему, производится «в лоб», то есть прямым перебором пар, но тотальная проверка пересечений сеток, описывающих объекты, заменяется на проверку пересечений ограничивающих многогранников. Лишь на завершающих фазах (когда грани некоторых ограничивающих многогранников близки к некоторым «подозрительным» участкам сеток) осуществляется тотальная проверка пере-

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

Практика показала эффективность данного подхода, и в рамках систем реального времени он используется чаще всего (в различных вариациях).

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

Октантные деревья [4, 2], /о-мерные [3] и 55Р-деревья (бинарные) [6], тетраидальные сетки, регулярные решетки [3, 7] - все это примеры такого поиска различных механизмов декомпозиции пространства.

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

Конструируя иерархии объектов, можно добиваться аппроксимации объектов с воз-

растающей точностью, до тех пор пока не будет достигнута их истинная геометрическая форма. В качестве аппроксимирующих пространств можно использовать сферы, диски, ориентированные вдоль осей координат шестигранники с прямоугольными гранями (axis -aligned bounding boxes - ААВВ) [3], произвольно ориентированные шестигранники с прямоугольными гранями (oriented bounding boxes - OBB) [5], выпуклые многогранники с /с-гранями, определенными полупространствами с нормалями, ориентированными в к фиксированных направлениях (к-dop) (discrete orientation polytopes) [4]. Для того чтобы представить эти пространственные структуры, аппроксимирующие объекты, приведем их двумерные изображения (рис. 1).

fai fü>

м м

Рис. 1. Аппроксимация объекта с помощью четырех пространственных структур: ААВВ (а): сферы (б): ОВВ (в): кч!ор (к = 8) (?)

Одной из лучших аппроксимаций является последняя из перечисленных пространственных структур. Применение восьмигранника, восемь нормалей которого ориентированы под углами 45, 90, 135, 180 градусов, исключает те «пустоты», которые имеют место при использовании АА ^-пространства для аппроксимации объекта. Для улучшения точности аппроксимации можно идти по пути увеличения к.

Например, возможно использование 14, 18, 26-с/о/; пространств. Так, применительно к \4-dop находятся минимальные и максималь-

ные значения координат вершин примитивов вдоль каждой из семи осей, определяемых векторами (1, 0, 0), (0, 1, 0), (0, 0, 1), (1, 1, 1), (I, -1, 1), (1, 1, -1), (1, -1, -1). При построении такой пространственной структуры используются 6 полупространств, которые определяют грани ААВВ, вместе с дополнительными 8 диагональными полупространствами, служащими для того, чтобы обрубить столько углов из 8 углов ААВВ, сколько возможно. При образовании \S-dop также используются 6 полупространств, определяющих грани ААВВ, и двенадцать диагональных полупространств, чтобы отсечь 12 ребер ААВВ; эти 12 полупространств определяются 6 осями, отвечающими векторам (1, 1, 0), (1, 0, 1), (0, 1, 1), (1, -1, 0), (1, 0, -1), (0, 1, -1). В итоге при построении 26-dop объединяются уже определенные полупространства 14-dop и 1 %-dop: используются 6 полупространств ААВВ, 8 диагональных полупространств, отсекающих углы ААВВ и 12 полупространств, отсекающих его грани.

Итак, входными данными при проверке пересечений может быть множество S из п геометрических объектов, в общем случае тетраэдров. Тогда В I T (S) (bounding volume tree) ~ дерево пространства, аппроксимирующего множество S. Каждый узел v этого дерева описывается подмножеством 6V, входящим во множество S, при этом корень дерева соответствует полному множеству S. Каждый внутренний узел (не лист) дерева имеет двух или более потомков. Максимальное число потомков, которое может породить узел, -- это степень дерева р. Максимальное число узлов SF-дерева может составлять 2п 1, минимальный вес дерева [Log р(п)], что достигается, если дерево сбалансировано [8, 9].

Каждый узел BV-дерева представляет собой аппроксимирующее Sv ограничивающее пространство В (Sv), в качестве которого используются элементарные пространственные, структуры (кубы, сферы, многогранники заданной формы, диски и т.д.).

Выбор ограничивающих объемов, на основе которых строится В V-дерево, аппроксимирующее заданный объект, зависит от его свойств, области применения создаваемой модели структуры данных и других ограничений

Допустим, один из п твердых объектов, определяемый множеством Т7 примитивов, имеющих заданное положение и ориентацию, движется в среде, описываемой множеством Е примитивов-преград. Множеству Е отвечает дерево пространства В11 (Е).

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

У ДгС’г МрСр .\иСи, где М’ - число пар ограничивающих пространств тестируемых на пересечение; Л^> -число пар примитивов, тестируемых на контакт; Ми - число узлов иерархии, которые нужно изменить при моделировании поступательного движения и вращения объекта; Су - цена тестирования пары пространств на пересечение; Ср -цена тестирования пары примитивов на контакт; Си - затраты на модификацию узла.

Основываясь на указанном уравнении, можно сказать, что выбираемые пространственные объемы должны: (а) строго аппроксимировать входные примитивы (с меньшими значениями Му, А!р, М<); (б) обеспечивать быстрое тестирование двух минимальных объемов на пересечение (с меньшими Су); (в) подвергаться модификации, если примитивы вращаются или передвигаются в пространстве (с меньшими значениями Си).

К сожалению, эти стремления обычно противоречат друг другу, поэтому требуется найти компромисс.

Таким компромиссом, может быть использование в качестве ограничивающего пространства упомянутых многогранников к-ск>р. Являясь лучшей чем сфера, ААВВ- и 055-пространства, аппроксимацией объекта (за счет большего а.-), указанные структуры могут обеспечивать приемлемую величину Су при ограничении а; если использовать только те из них, в рамках которых нормали рассматриваются как коллинеарные, но противоположно направленные векторы. Выполняются каждый раз к/2 теста через некоторые промежутки времени. Этот тест намного проще, чем проверка ОВВ-пространств. После того как зафиксированы к/2 направления, для того чтобы запомнить каждый кчЗор, требуется только

к значений, при этом ориентации поверхностей известны заранее.

При построении деревьев пространства объектов и среды нужно обратить внимание на следующие моменты: степень дерева (бинарные, троичные и т.д.), принципы построения (снизу верх или сверху вниз), выбор значения к, правила разбиения множеств 5' и Е.

Для обеспечения быстроты расчетов выбирается бинарное дерево исходя из того, что средняя работа, чтобы дойти от корня до листа, пропорциональна Е(р) = рЬ>‘^р{п). и простой расчет показывает, что Е(р) минимизируется при р = 2.

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

На выбор значения к влияет то, насколько легко можно рассчитывать аппроксимирующее пространство: рассматривались

векторы нормалей, имеющие целочисленные координаты из множества {-1, 0, 1}; исследование векторов с большими координатами -дело будущего.

Для обеспечения построения эффективного дерева пространства объектов нужно разделить соответствующее каждому его узлу V подмножество ¿V так , чтобы минимизировать «размер» порождаемого узла г ', а следовательно, и аппроксимирующего пространства В(8у), ожидая, что это пространство пропорционально вероятности пересечения им другого объекта.

Применительно к бинарному дереву, используя центроиды примитивов подмножества Бу, такое его разделение на два можно осуществлять плоскостью, ортогональной одной из трех координатных осей и проходящей через точку на выбранной оси, являющуюся средним или медианным значением координат центроидов. В дальнейшем можно исследовать все из |5у| - 1 координат центроидов или случайные их сочетания.

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

1 Если вт пересекает вт пювда

2 Если Ъ есть лисп, тогда

3. Если Уг есть лист, тогда

4 бпя гвждого треугпль ниха и из

5 спя каждого треугольника <Киз 8(УУ

6 проверить треугольники.^ и ¿на пересечение иначе

6 для каждого порожденною узла V/ »зрит «ь»«™

9. прохождение дерева (VI, Ун)

10 инв’^е

< 1 для каждого порожденного узла V»

<2 прохождение дерева (V*, Уг)

13 вЫХОВ

Рис. 2. Псевдокод алгоритма, реализующего прохождение дерева

Надо сказать, что наиболее часто вызывается функция проверки на пересечение аппроксимирующих пространств. При этом считает ся, что два к-сЬр пространства А1 и А2 не пересекаются, если хотя бы одно из к/2 расстояний А1 не перекрывает соответствующие расстояния А2. Если мы находим, что к-с1ор пространства перекрываются по всем направлениям, тогда мы заключаем, что к-Лор действительно перекрываются. Таким образом, мы должны произвести к сравнений чисел с плавающей точкой, чтобы определить, пресекаются ли пространства.

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

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

Следующим шагом в моделировании динамики среды может быть распространение предложенного иерархического представления k-dop пространства на описание деформирующихся объектов.

Дальнейшими направлениями расширения ¿Л -методов могут, в частности, являться: моделирование множественных движущихся объектов, использование временной когерентности, описание динамических сред.

Литература

1. Алешин В.И., Афанасьев ВО.. Макаров-Землянский Н.В., Томилин А.Н., Чумаков В. А, Некоторые аспекты применения имитационных моделей с интерфейсом «Виртуальная Реальность». - В сб. ст.: Вопросы кибернетики - 181. М.: PAR 1995. - № 181. - С. 5-20.

2. Noborio Н„ Fukuda S., and Arimolo S. Fast Interference

Checks Method Using Octree Representation. -Advanced robotics, 1989. - № 3 (3). - P. 193-212.

3. Held М., Klosowski J. T. and Mitchell J. S. B. Evaluation

of Collision Detection Methods for Virtual Reality Fly -throughs. InProc. 7th Canad. Conf. Comp. Geom.. 1995. -P. 205-210.

4. Klosowski J. Т., Held М., Mitchell J. S. B,. Sowizral H..

and Zikan K. Efficient Collision Detection Using Bounding Volume Hierarchies of k - DOPs. -IEEE Transactions on Visualization and Computer Graphics. 1998. -№4(1). -P. 21-36.

5. Gottschalk S., Lin M.C. and Manocha D. - OBB Tree: A

Hierarchical Structure for Rapid Interference Detection. In Comp. Graphics (SIGGRAPH '96 Proc). New Orleans, LA, USA Aug 1996. - V. 30. - P. 171-180.

6. Naylor B.„ Amaratides J., Thibault W. Merging BSP Trees Yields Polyhedral Set Operations. In Comp. Graphics (SIGGRAPH '90 Proc). Dallas, TX. USA. 1990. -P. 115-124.

7. Garcia-Alonso A., Serrano N., Flaquer J. Solving the Collision detection Problem. - IEEE Comp. Graph. Appl., 1994, №14, pp. 36 -43.

8. Held M„ Klosovski J. T„ Mitchell J. S. B. Speed Comparison of Generalized Bounding Box hierarchies. Technical Report. Dep. of Applied Math. SUNY Stonv Brook, 1995.

9. Hubbard P. M. Approximating Polyhedra with Spheres for Time - critical Collision Detection. - ACM Trans. Graph., 1996. -№ 15 (3). - P. 179-210.

i Надоели баннеры? Вы всегда можете отключить рекламу.