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

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

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

Автор:

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

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

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

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

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

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


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

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

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

Анализ современных алгоритмов симуляции огня

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

Неконтролируемые методы машинного обучения при обнаружении сетевых аномалий

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

Угрозы использования систем автоматического распознавания образов

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

Частые ошибки при построении CSG-моделей

Рассмотрены основные ошибки при построении CSG-моделей алгоритмом, работающим с полигональными объектами, а также предложены методы их решения.

Характеристические подходы при распознавании изображений

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

Визуализация взрывов с помощью систем частиц

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

Обзор видов атак по побочным каналам на криптографические устройства

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

Обзор решений в области распределенных вычислений

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

Аспекты использования различных методов распознавания лиц в современных системах безопасности

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

Линейное программирование

В данной статье рассматривается задача линейного программирования и возможный способ её решения — симплекс метод. Приведены примеры, поясняющие, что такое линейное программирование и симплекс метод.

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

Анализ современных алгоритмов симуляции огня

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

Неконтролируемые методы машинного обучения при обнаружении сетевых аномалий

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

Угрозы использования систем автоматического распознавания образов

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

Частые ошибки при построении CSG-моделей

Рассмотрены основные ошибки при построении CSG-моделей алгоритмом, работающим с полигональными объектами, а также предложены методы их решения.

Характеристические подходы при распознавании изображений

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

Визуализация взрывов с помощью систем частиц

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

Обзор видов атак по побочным каналам на криптографические устройства

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

Обзор решений в области распределенных вычислений

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

Аспекты использования различных методов распознавания лиц в современных системах безопасности

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

Линейное программирование

В данной статье рассматривается задача линейного программирования и возможный способ её решения — симплекс метод. Приведены примеры, поясняющие, что такое линейное программирование и симплекс метод.

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