Обнаружение столкновений в компьютерных играх | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №23 (365) июнь 2021 г.

Дата публикации: 03.06.2021

Статья просмотрена: 252 раза

Библиографическое описание:

Мамиев, Ю. М. Обнаружение столкновений в компьютерных играх / Ю. М. Мамиев. — Текст : непосредственный // Молодой ученый. — 2021. — № 23 (365). — С. 102-105. — URL: https://moluch.ru/archive/365/81943/ (дата обращения: 20.04.2024).



В статье приводится обзор подходов для построения систем обнаружения столкновений объектов. Приводится классификация алгоритмов по нескольким признакам.

Ключевые слова: обнаружение столкновений, ограничивающие объёмы, ограничивающая сфера, ориентированные ограничивающие рамки.

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

В компьютерных играх обнаружение столкновений обеспечивает сохранение иллюзии твёрдого мира. Оно не даёт персонажам игроков проходить сквозь стены или проваливаться через пол.

Основной принцип обнаружения столкновений

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

Требования к обнаружению столкновений:

— проверка на наличие столкновения;

— позиция обнаруженного столкновения;

— расстояние между объектами;

— прогнозирование столкновения в следующий раз.

Алгоритмы обнаружения столкновений можно классифицировать по типу представления входных данных и по типу распознавания столкновений.

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

— сетки из треугольников;

— конструктивная блочная геометрия;

— неявно заданная геометрия.

Использование сетки из треугольников обусловлено тем, что треугольник является базовым геометрическим примитивом для отображения на экране дисплея сложных объектов. Координаты точек передаются через API (Application Programming Interface) драйверу графического адаптера, который растеризует входные данные и выводит на экран.

Конструктивная блочная геометрия часто используется в САПР (Система автоматизированного проектирования). Комбинируя простые базовые трёхмерные объекты, такие как сферы, прямоугольные параллелепипеды, конусы, на выходе получаем сложный объект.

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

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

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

Мы рассмотрим три таких ограничивающих объёма (рис. 1):

— ограничивающие сферы;

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

— ориентированные ограничивающие рамки;

Типы ограничивающих объёмов

Рис. 1. Типы ограничивающих объёмов

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

Ограничивающая сфера

Рис. 2. Ограничивающая сфера

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

Ограничивающий прямоугольник, выровненный по координатным осям (Axis Aligned Bounding Box, AABB) — это прямоугольник, четыре стороны которого выровнены относительно системы координат, в которой он находится (рис. 3). Это значит, что прямоугольник не может вращаться и всегда находится под углом в 90 градусов (обычно выровнен относительно экрана).

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

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

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

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

Ориентированные ограничивающие рамки

Рис. 4. Ориентированные ограничивающие рамки

Заключение

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

Литература:

  1. Robert Dunlop, Collision Detection: Using Bounding Spheres [Электронный ресурс]. — Режим доступа http://www.mvps.org/directx/articles/using_bounding_spheres.htm
  2. Raigan Burns, Mare Sheppard, Using well-known collision detection algorithms, [Электронный ресурс]. — Режим доступа http://noregret.org/tutor/n/collision/
  3. Christer Ericson, Real-Time Collision Detection, 2005 by Elsevier Inc. p.77–102
Основные термины (генерируются автоматически): AABB, обнаружение столкновений, OBB, ограничивающая сфера, ограничивающий объем, ограничивающий прямоугольник, API, алгоритм обнаружения столкновений, конструктивная блочная геометрия, плотная посадка.


Ключевые слова

обнаружение столкновений, ограничивающие объёмы, ограничивающая сфера, ориентированные ограничивающие рамки

Похожие статьи

Разработка эффективной реализации алгоритмов выполнения...

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

Разработка алгоритма для управляющих действий боковым...

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

Приведена процедура вычисления алгоритма нечеткого управления. Выполнена оценка функциональных возможностей системы уравнений в...

3D-моделирование фракталов. Фрактальные антенны

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

В статье рассматривается вопрос практического применения теории фракталов в сфере телекоммуникаций.

Алгоритмы балансировки в сети OSPF | Статья в журнале...

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

Реактивный алгоритм динамической маршрутизации...

Ткачев, Д. Ф. Реактивный алгоритм динамической маршрутизации в перспективной мобильной сети, построенной на радиосредствах нового поколения / Д. Ф. Ткачев, М. З. Лящук, Р. Е. Лисейкин.

этом обновляя порядковый номер и добавляя количество шагов в пакет RREQ.

Применение математического аппарата теории графов при...

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

Моделирование квантового алгоритма Гровера для поиска...

Целью статьи является ознакомление с разработанной имитационной моделью алгоритма Гровера в прикладной программе MATLAB, а также с результатами его работы, которые представлены в виде вычислений и графиков. Коротко описаны основы квантовых вычислений...

Анализ алгоритма RSA. Некоторые распространённые...

Библиографическое описание: Артюхов, Ю. В. Анализ алгоритма RSA. Некоторые распространённые элементарные атаки и меры противодействия им / Ю. В. Артюхов.

Похожие статьи

Разработка эффективной реализации алгоритмов выполнения...

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

Разработка алгоритма для управляющих действий боковым...

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

Приведена процедура вычисления алгоритма нечеткого управления. Выполнена оценка функциональных возможностей системы уравнений в...

3D-моделирование фракталов. Фрактальные антенны

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

В статье рассматривается вопрос практического применения теории фракталов в сфере телекоммуникаций.

Алгоритмы балансировки в сети OSPF | Статья в журнале...

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

Реактивный алгоритм динамической маршрутизации...

Ткачев, Д. Ф. Реактивный алгоритм динамической маршрутизации в перспективной мобильной сети, построенной на радиосредствах нового поколения / Д. Ф. Ткачев, М. З. Лящук, Р. Е. Лисейкин.

этом обновляя порядковый номер и добавляя количество шагов в пакет RREQ.

Применение математического аппарата теории графов при...

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

Моделирование квантового алгоритма Гровера для поиска...

Целью статьи является ознакомление с разработанной имитационной моделью алгоритма Гровера в прикладной программе MATLAB, а также с результатами его работы, которые представлены в виде вычислений и графиков. Коротко описаны основы квантовых вычислений...

Анализ алгоритма RSA. Некоторые распространённые...

Библиографическое описание: Артюхов, Ю. В. Анализ алгоритма RSA. Некоторые распространённые элементарные атаки и меры противодействия им / Ю. В. Артюхов.

Задать вопрос