Обнаружение столкновений
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Обнаружение столкновений — это вычислительная задача обнаружения пересечения двух или более пространственных объектов, обычно объектов компьютерной графики. Он имеет приложения в различных областях вычислений, в первую очередь в компьютерной графике , компьютерных играх , компьютерном моделировании , робототехнике и вычислительной физике . Обнаружение столкновений — классическая задача вычислительной геометрии . обнаружения столкновений Алгоритмы можно разделить на работающие с 2D и 3D пространственными объектами. [1]
Обзор
[ редактировать ]При физическом моделировании такие эксперименты, как игра в бильярд . проводятся [2] Физика прыгающих бильярдных шаров понимается под эгидой движения твердого тела и упругих столкновений . [3] Будет дано первоначальное описание ситуации с очень точным физическим описанием бильярдного стола и шаров, а также начальных положений всех шаров. [4] На основе силы, приложенной к битку, компьютерная программа рассчитывала траектории, точное движение и возможные места отдыха всех шаров. Программа для моделирования этой игры будет состоять из нескольких частей, одна из которых будет отвечать за точный расчет ударов между бильярдными шарами. Этот конкретный пример также оказывается плохо обусловленным : ведь небольшая ошибка в любом расчете приведет к резким изменениям конечного положения бильярдных шаров.
Видеоигры предъявляют схожие требования, но с некоторыми важными различиями. В то время как некоторые компьютерные симуляции должны максимально точно имитировать физику реального мира, компьютерные игры должны имитировать физику реального мира приемлемым способом , в реальном времени и надежно. Компромиссы разрешены, если полученная симуляция удовлетворяет игроков.
Обнаружение столкновений в компьютерном моделировании
[ редактировать ]Физические симуляторы различаются по способу реакции на столкновение. Некоторые используют мягкость материала для расчета силы, которая разрешит столкновение на следующих временных шагах, как это происходит в действительности. Это очень загружает процессор для материалов с низкой мягкостью. Некоторые симуляторы оценивают время столкновения с помощью линейной интерполяции , откатывают симуляцию и рассчитывают столкновение более абстрактными методами законов сохранения .
Некоторые повторяют линейную интерполяцию ( метод Ньютона ), чтобы рассчитать время столкновения с гораздо более высокой точностью, чем остальная часть моделирования. Обнаружение столкновений использует временную когерентность, чтобы обеспечить еще более мелкие временные шаги без значительного увеличения нагрузки на процессор, например, в управлении воздушным движением .
После неупругого столкновения могут возникнуть особые состояния скольжения и покоя, и, например, Open Dynamics Engine использует ограничения для их моделирования. Ограничения позволяют избежать инерции и, следовательно, нестабильности. Реализация отдыха посредством графа сцены позволяет избежать дрейфа.
Другими словами, физические симуляторы обычно работают одним из двух способов: когда столкновение обнаруживается апостериорно (после того, как столкновение произошло) или априори (до того, как столкновение произошло). Помимо апостериорного и априорного различия, почти все современные алгоритмы обнаружения столкновений разбиты на иерархию алгоритмов. Часто используются термины «дискретный» и «непрерывный», а не «апостериорный» и «априорный» .
Апостериорный (дискретный) и априорный (непрерывный)
[ редактировать ]В апостериорном случае физическое моделирование продвигается на небольшой шаг, затем проверяется, пересекаются ли какие-либо объекты или визуально считаются пересекающимися. На каждом этапе моделирования создается список всех пересекающихся тел, а положения и траектории этих объектов «фиксируются» с учетом столкновения. Этот метод называется апостериорным, потому что он обычно пропускает фактический момент столкновения и фиксирует столкновение только после того, как оно действительно произошло.
В априорных методах существует алгоритм обнаружения столкновений, который сможет очень точно предсказывать траектории физических тел. Моменты столкновений рассчитываются с высокой точностью, и физические тела никогда не проникают друг в друга. Это называется априорным , потому что алгоритм обнаружения столкновений вычисляет моменты столкновения, прежде чем обновлять конфигурацию физических тел.
Основные преимущества апостериорных методов заключаются в следующем. В этом случае алгоритму обнаружения столкновений не обязательно учитывать множество физических переменных; В алгоритм подается простой список физических тел, и программа возвращает список пересекающихся тел. Алгоритму обнаружения столкновений не нужно понимать трение, упругие столкновения или, что еще хуже, неупругие столкновения и деформируемые тела. Кроме того, апостериорные алгоритмы фактически на один размер проще, чем априорные алгоритмы. Априорный алгоритм должен иметь дело с переменной времени , которая отсутствует в апостериорной задаче.
С другой стороны, апостериорные алгоритмы вызывают проблемы на этапе «исправления», когда необходимо исправлять пересечения (которые физически некорректны). Более того, если дискретный шаг слишком велик, столкновение может остаться незамеченным, в результате чего объект пройдет сквозь другой, если он достаточно быстрый или маленький.
Преимуществами априорных алгоритмов являются повышенная точность и стабильность. Трудно (но не совсем невозможно) отделить физическую симуляцию от алгоритма обнаружения столкновений. Однако во всех случаях, кроме самых простых, проблема определения заранее момента столкновения двух тел (при наличии некоторых исходных данных) не имеет решения в замкнутой форме - численный искатель корней обычно используется .
Некоторые объекты находятся в состоянии покоя , то есть сталкиваются, но не отскакивают и не проникают друг в друга, например ваза, стоящая на столе. Во всех случаях контакт в покое требует особого отношения: если два объекта сталкиваются ( апостериорно ) или скользят ( априори ) и их относительное движение ниже порогового значения, трение становится прилипанием , и оба объекта располагаются в одной и той же ветви графа сцены .
Оптимизация
[ редактировать ]Очевидные подходы к обнаружению столкновений нескольких объектов очень медленны. Проверка каждого объекта на соответствие всем остальным объектам , конечно, будет работать, но она слишком неэффективна, чтобы ее можно было использовать, когда количество объектов вообще велико. Проверка объектов со сложной геометрией друг с другом очевидным способом, путем проверки каждой грани друг с другом, сама по себе является довольно медленной. Таким образом, для ускорения решения проблемы были проведены значительные исследования. [5]
Использование временной согласованности
[ редактировать ]В этом разделе есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Во многих приложениях конфигурация физических тел от одного временного шага к другому меняется очень мало. Многие объекты могут вообще не двигаться. Алгоритмы были разработаны таким образом, что вычисления, выполненные на предыдущем временном шаге, можно повторно использовать на текущем временном шаге, что приводит к более быстрому завершению вычислений.
На грубом уровне обнаружения столкновений цель состоит в том, чтобы найти пары объектов, которые потенциально могут пересечься. Эти пары потребуют дальнейшего анализа. Ранний высокопроизводительный алгоритм для этого был разработан Мином К. Линем из Калифорнийского университета в Беркли [1] и предложил использовать ограничивающие рамки, выровненные по осям, для всех n тел в сцене.
Каждый ящик представлен произведением трех интервалов (т. е. ящик будет ). Распространенным алгоритмом обнаружения столкновений ограничивающих рамок является развертка и обрезка . Обратите внимание, что две такие коробки, и пересекаются тогда и только тогда, когда , пересекает , пересекает и пересекает . Предполагается, что от одного временного шага к другому, если и пересекаются, то весьма вероятно, что на следующем временном шаге они все равно пересекутся. Аналогично, если они не пересеклись на предыдущем временном шаге, то, скорее всего, они и дальше не пересекутся.
Таким образом, мы сводим задачу к отслеживанию от кадра к кадру того, какие интервалы действительно пересекаются. У нас есть три списка интервалов (по одному для каждой оси), и все списки имеют одинаковую длину (поскольку каждый список имеет длину , количество ограничивающих рамок.) В каждом списке каждый интервал может пересекать все остальные интервалы в списке. Таким образом, для каждого списка у нас будет матрица нулей и единиц: равно 1, если интервалы и пересекаются и 0, если они не пересекаются.
По нашему предположению, матрица связанные со списком интервалов, останутся практически неизменными от одного временного шага к другому. Чтобы воспользоваться этим, список интервалов фактически поддерживается как список помеченных конечных точек. Каждый элемент списка имеет координату конечной точки интервала, а также уникальное целое число, идентифицирующее этот интервал. Затем мы сортируем список по координатам и обновляем матрицу пока мы идем. Нетрудно поверить, что этот алгоритм будет работать относительно быстро, если действительно конфигурация ограничивающих рамок существенно не меняется от одного временного шага к другому.
В случае деформируемых тел, таких как моделирование ткани, может оказаться невозможным использовать более конкретный алгоритм попарного сокращения, как обсуждается ниже, и алгоритм сокращения n тел является лучшим, что можно сделать.
Если можно установить верхнюю границу скорости физических тел в сцене, то пары объектов можно сократить на основе их начального расстояния и размера временного шага.
Попарная обрезка
[ редактировать ]В этом разделе есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
После того, как мы выбрали пару физических тел для дальнейшего исследования, нам нужно более тщательно проверить наличие столкновений. Однако во многих приложениях отдельные объекты (если они не слишком деформируются) описываются набором более мелких примитивов, в основном треугольников. Итак, теперь у нас есть два набора треугольников, и (для простоты будем считать, что в каждом наборе одинаковое количество треугольников.)
Очевидное, что нужно сделать, это проверить все треугольники. против всех треугольников для столкновений, но это включает в себя сравнения, что крайне неэффективно. Если возможно, желательно использовать алгоритм обрезки, чтобы уменьшить количество пар треугольников, которые нам нужно проверить.
Наиболее широко используемое семейство алгоритмов известно как метод иерархических ограничивающих объемов . На этапе предварительной обработки для каждого объекта (в нашем примере и ) вычислим иерархию ограничивающих объемов . Затем на каждом временном шаге, когда нам нужно проверить наличие коллизий между и , иерархические ограничивающие объемы используются для уменьшения количества рассматриваемых пар треугольников. Для простоты приведем пример с использованием ограничивающих сфер, хотя было отмечено, что сферы во многих случаях нежелательны. [ нужна ссылка ]
Если представляет собой набор треугольников, мы можем заранее вычислить ограничивающую сферу . Есть много способов выбора , мы только предполагаем, что представляет собой сферу, которая полностью содержит и является как можно меньшим.
Заранее мы можем вычислить и . Понятно, что если эти две сферы не пересекаются (а это очень легко проверить), то и не пересекаются они. и . Однако это не намного лучше, чем алгоритм сокращения n тел.
Если представляет собой набор треугольников, то мы можем разделить его на две половины и . Мы можем сделать это, чтобы и , и мы можем вычислить (заранее) ограничивающие сферы и . Есть надежда, что эти ограничивающие сферы намного меньше, чем и . И, если, например, и не пересекаются, то нет смысла проверять любой треугольник в против любого треугольника в .
В качестве предварительного вычисления мы можем взять каждое физическое тело (представленное набором треугольников) и рекурсивно разложить его в бинарное дерево , где каждый узел представляет собой набор треугольников, а два его дочерних элемента представляют и . В каждом узле дерева мы можем предварительно вычислить ограничивающую сферу. .
Когда приходит время проверить пару объектов на столкновение, их дерево ограничивающих сфер можно использовать для исключения множества пар треугольников.
Многие варианты алгоритмов получаются выбором чего-то иного, чем сфера, для . Если вы выберете ограничивающие рамки, выровненные по осям , вы получите AABBTrees. Ориентированные деревья ограничивающих рамок называются OBBTree. Некоторые деревья легче обновлять, если изменяется базовый объект. Некоторые деревья могут содержать примитивы более высокого порядка, такие как сплайны, вместо простых треугольников.
Точное обнаружение парных столкновений
[ редактировать ]Этот раздел написан как руководство или руководство . ( январь 2024 г. ) |
Как только мы закончим обрезку, у нас останется несколько пар кандидатов для проверки точного обнаружения столкновений.
Основное наблюдение состоит в том, что для любых двух выпуклых объектов, которые не пересекаются, можно найти плоскость в пространстве, так что один объект полностью лежит на одной стороне этой плоскости, а другой объект лежит на противоположной стороне этой плоскости. Это позволяет разрабатывать очень быстрые алгоритмы обнаружения столкновений для выпуклых объектов.
Ранние работы в этой области включали методы « разделяющей плоскости ». Два треугольника сталкиваются по существу только тогда, когда их нельзя разделить плоскостью, проходящей через три вершины. То есть, если треугольники и где каждый является вектором в , то мы можем взять три вершины, , найдите плоскость, проходящую через все три вершины, и проверьте, является ли она разделяющей плоскостью. Если какая-либо такая плоскость является разделяющей, то треугольники считаются непересекающимися. С другой стороны, если ни одна из этих плоскостей не является разделяющей плоскостью, то треугольники считаются пересекающимися. Таких самолетов двадцать.
Если треугольники компланарны, этот тест не совсем успешен. можно добавить несколько дополнительных плоскостей, например, плоскостей, нормальных к Чтобы полностью решить проблему, ребрам треугольника. В других случаях объекты, которые встречаются на плоской грани, обязательно должны также встречаться под углом в другом месте, следовательно, общая система обнаружения столкновений сможет обнаружить столкновение.
С тех пор были разработаны более совершенные методы. Доступны очень быстрые алгоритмы для поиска ближайших точек на поверхности двух выпуклых многогранных объектов. Ранние работы Мин К. Линя [6] использовал вариацию симплексного алгоритма из линейного программирования . Алгоритм расстояния Гилберта-Джонсона-Кирти заменил этот подход. Эти алгоритмы приближаются к постоянному времени при многократном применении к парам неподвижных или медленно движущихся объектов при использовании с начальными точками из предыдущей проверки столкновений.
Конечным результатом всей этой алгоритмической работы является то, что обнаружение столкновений может эффективно выполняться для тысяч движущихся объектов в реальном времени на типичных персональных компьютерах и игровых консолях.
Априорная обрезка
[ редактировать ]Если большинство задействованных объектов фиксированы, что типично для видеоигр, для ускорения выполнения можно использовать априорные методы, использующие предварительные вычисления.
Здесь также желательно сокращение, как сокращение n тел, так и попарное сокращение, но алгоритмы должны учитывать время и типы движений, используемых в базовой физической системе.
Когда дело доходит до точного обнаружения парных столкновений, это сильно зависит от траектории, и почти приходится использовать численный алгоритм поиска корня для вычисления момента столкновения .
В качестве примера рассмотрим два треугольника, движущихся во времени. и . В любой момент времени два треугольника можно проверить на пересечение, используя двадцать упомянутых ранее плоскостей. Однако мы можем добиться большего, поскольку все эти двадцать самолетов можно отследить во времени. Если самолет проходит через точки в тогда есть двадцать самолетов отслеживать. Каждую плоскость необходимо отслеживать по трем вершинам, что дает шестьдесят значений для отслеживания. Использование средства поиска корней для этих шестидесяти функций дает точное время столкновения для двух заданных треугольников и двух заданных траекторий. Заметим здесь, что если траектории вершин считать линейными полиномами от тогда последние шестьдесят функций на самом деле являются кубическими полиномами, и в этом исключительном случае можно определить точное время столкновения, используя формулу для корней кубики. Некоторые специалисты по численному анализу предполагают, что использование формулы для кубических корней не так численно стабильно, как использование средства поиска корней для многочленов. [ нужна ссылка ]
Пространственное разделение
[ редактировать ]Альтернативные алгоритмы сгруппированы под зонтиком пространственного разделения , который включает в себя окт-деревья , разделение двоичного пространства (или BSP-деревья) и другие подобные подходы. Если разбить пространство на несколько простых ячеек и если можно показать, что два объекта не находятся в одной ячейке, то их не нужно проверять на пересечение. Поскольку деревья BSP могут быть предварительно вычислены, этот подход хорошо подходит для обработки стен и фиксированных препятствий в играх. Эти алгоритмы обычно старше алгоритмов, описанных выше.
Ограничительные рамки
[ редактировать ]Ограничивающие рамки (или ограничивающие объемы ) чаще всего представляют собой 2D-прямоугольник или 3D- кубовидную форму , но возможны и другие формы. Ограничивающую рамку в видеоигре иногда называют Hitbox . Ограничивающий ромб, минимальный ограничивающий параллелограмм, выпуклая оболочка, ограничивающий круг или ограничивающий шар и ограничивающий эллипс — все они были опробованы, но ограничивающие прямоугольники остаются наиболее популярными из-за своей простоты. [7] Ограничительные рамки обычно используются на ранней стадии (обрезки) обнаружения столкновений, поэтому необходимо детально сравнивать только объекты с перекрывающимися ограничивающими рамками.
Сегменты центроида треугольника
[ редактировать ]Объект треугольной сетки обычно используется при 3D-моделировании тела. Обычно функция столкновения представляет собой пересечение треугольника с треугольником или ограничивающую форму, связанную с сеткой. Центр тяжести треугольника — это такое расположение центра масс, при котором он балансирует на кончике карандаша. При моделировании необходимо только добавить размерность центроида к физическим параметрам. Учитывая точки центроида как в объекте, так и в цели, можно определить сегмент линии, соединяющий эти две точки.
Вектор положения центроида треугольника представляет собой среднее значение векторов положения его вершин. Итак, если его вершины имеют декартовы координаты , и тогда центр тяжести .
Вот функция для расстояния отрезка линии между двумя 3D-точками.
Здесь длина/расстояние сегмента представляет собой регулируемый критерий соответствия размеру сегмента. По мере приближения объектов длина уменьшается до порогового значения. Треугольная сфера становится эффективным тестом по геометрии. Размер сферы с центром в центроиде может быть таким, чтобы она охватывала все вершины треугольника.
Видеоигры
[ редактировать ]Видеоиграм приходится распределять очень ограниченное вычислительное время между несколькими задачами. Несмотря на ограничение ресурсов и использование относительно примитивных алгоритмов обнаружения столкновений, программистам удалось создать правдоподобные, хотя и неточные системы для использования в играх. [ нужна ссылка ]
Долгое время в видеоиграх было очень ограниченное количество объектов для обработки, поэтому проверка всех пар не была проблемой. В двухмерных играх в некоторых случаях аппаратное обеспечение могло эффективно обнаруживать и сообщать о перекрывающихся пикселях между спрайтами на экране. [8] В других случаях простое разбиение экрана на плитки и привязка каждого спрайта к перекрывающимся плиткам обеспечивает достаточную обрезку, а для парных проверок ограничивающие прямоугольники или круги, называемые хитбоксами используются , которые считаются достаточно точными.
В трехмерных играх используются методы пространственного разделения для -обрезка тела и долгое время использовал одну или несколько сфер для каждого реального трехмерного объекта для парных проверок. Точные проверки очень редки, за исключением игр, пытающихся точно имитировать реальность. Даже в этом случае точные проверки не обязательно используются во всех случаях.
Поскольку играм не обязательно имитировать реальную физику, стабильность не является такой уж большой проблемой. Почти во всех играх используется апостериорное обнаружение столкновений, и столкновения часто разрешаются с использованием очень простых правил. Например, если персонаж врезается в стену, его можно просто переместить обратно в последнее удачное место. Некоторые игры рассчитывают расстояние, которое персонаж может пройти, прежде чем врезаться в стену, и позволяют ему двигаться только на это расстояние.
Во многих случаях в видеоиграх приближения персонажей точкой достаточно для обнаружения столкновений с окружающей средой. В этом случае деревья разбиения двоичного пространства предоставляют жизнеспособный, эффективный и простой алгоритм проверки того, включена ли точка в пейзаж или нет. Такую структуру данных также можно использовать для изящной обработки ситуации «положения покоя», когда персонаж бежит по земле. Столкновения между персонажами, а также столкновения со снарядами и опасностями рассматриваются отдельно.
Надежный симулятор — это тот, который будет реагировать на любые входные данные разумным образом. Например, если мы представим себе видеоигру о высокоскоростных гоночных автомобилях , от одного этапа моделирования к другому, вполне возможно, что автомобили будут продвигаться по гоночной трассе на значительное расстояние. Если на трассе имеется неглубокое препятствие (например, кирпичная стена), не исключено, что машина полностью его перепрыгнет, а это очень нежелательно. В других случаях «исправление», которого требуют апостериорные алгоритмы, реализовано неправильно, что приводит к ошибкам , которые могут запирать персонажей в стенах или позволять им проходить сквозь них и падать в бесконечную пустоту, где может быть или не быть смертельно опасная бездна. Яма , иногда называемая «черным адом», «синим адом» или «зеленым адом», в зависимости от преобладающего цвета. Это признаки неудачной системы обнаружения столкновений и физического моделирования. Big Rigs: Over the Road Racing — печально известный пример игры с неисправной или, возможно, отсутствующей системой обнаружения столкновений.
Хитбокс
[ редактировать ]Хитбокс видеоиграх — это невидимая форма, обычно используемая в для обнаружения столкновений в реальном времени; это тип ограничивающей рамки. Часто это прямоугольник (в 2D-играх) или кубоид (в 3D), который прикреплен к точке видимого объекта (например, модели или спрайта) и следует за ней. Также распространены круглые или сфероидальные формы, хотя их все равно чаще всего называют «коробками». К каждой движущейся части анимированных объектов обычно прикреплены хитбоксы, чтобы обеспечить точность во время движения. [9] [ ненадежный источник? ]
Хитбоксы используются для обнаружения «односторонних» столкновений, таких как попадание в персонажа удара кулаком или пули. Они не подходят для обнаружения столкновений с обратной связью (например, наезда на стену) из-за трудностей, с которыми сталкиваются как люди, так и ИИ при управлении постоянно меняющимися местоположениями хитбокса; вместо этого такие виды столкновений обычно обрабатываются с помощью гораздо более простых ограничивающих рамок, выровненных по оси . Игроки могут использовать термин «хитбокс» для обозначения этих типов взаимодействий в любом случае.
Хитбокс — это хитбокс , используемый для обнаружения входящих источников урона. В этом контексте термин «хитбокс» обычно применяется к тем, которые наносят урон. Например, атака может быть нанесена только в том случае, если хитбокс вокруг удара атакующего соединяется с одним из хитбоксов противника на его теле, в то время как столкновение противоположных хитбоксов может привести к тому, что игроки обмениваются или отменяют удары, а противостоящие боксы не взаимодействуют друг с другом. Этот термин не стандартизирован во всей отрасли; в некоторых играх определения хитбокса и хардбокса меняются местами , в то время как в других «хитбокс» используется только для обеих сторон.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Тешнер, М.; Киммерле, С.; Гейдельбергер, Б.; Захманн, Г.; Рагхупати, Л.; Фурманн, А.; Кани, член парламента; Фор, Ф.; Магнит-Тальманн, Н.; Штрассер, В.; Волино, П. (2005). «Обнаружение столкновений деформируемых объектов» . Форум компьютерной графики . 24 : 61–81. CiteSeerX 10.1.1.58.2505 . дои : 10.1111/j.1467-8659.2005.00829.x . S2CID 1359430 .
- ^ «MyPhysicsLab Бильярд» . www.myphysicallab.com . Проверено 8 июля 2024 г.
- ^ Моделирование бильярдного стола (calpoly.edu) https://users.csc.calpoly.edu/~zwood/teaching/csc471/finalW19/jpietrok/index.html
- ^ https://www.cs.rpi.edu/~cutler/classes/advancedgraphics/S09/final_projects/anderson.pdf
- ^
Жауме, Дж; Галли, Р; Мас, Р; Маскаро-Оливер, М (1995) (1995). «Проверка столкновений в реальном времени для позиционирования 3D-объектов в разреженных средах» . Обработка изображений для вещания и видеопроизводства . Семинары по информатике. Обработка изображений для вещания и видеопроизводства; Спрингер-Верлаг. стр. 216–225. дои : 10.1007/978-1-4471-3035-2_18 . ISBN 978-3-540-19947-2 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка ) CS1 maint: числовые имена: список авторов ( ссылка ) - ^ Линь, Мин С. (1993). «Эффективное обнаружение столкновений в анимации и робототехнике (диссертация)» (PDF) . Калифорнийский университет, Беркли. Архивировано из оригинала (PDF) 28 июля 2014 г.
- ^ Колдуэлл, Дуглас Р. (29 августа 2005 г.). «Раскрытие тайн ограничивающей рамки» . Центр инженерных исследований и разработок армии США, Центр топографической инженерии, исследовательский отдел, отдел генерации и управления информацией. Архивировано из оригинала 28 июля 2012 г. Проверено 13 мая 2014 г.
- ^ «Компоненты Amiga: MC68000 и специальные чипы Amiga» (Справочное руководство) (2.1 изд.). Глава 1. Архивировано из оригинала 17 июля 2018 г. Проверено 17 июля 2018 г.
Кроме того, вы можете использовать системное оборудование для обнаружения столкновений между объектами и заставить вашу программу реагировать на такие столкновения.
- ^ «Хитбокс» . Сообщество разработчиков Valve . Клапан . Проверено 18 сентября 2011 г.
Внешние ссылки
[ редактировать ]- Веб-сайт исследований по обнаружению столкновений Университета Северной Каролины в Чапел-Хилл
- Веб-сайт профессора Стивена Кэмерона (Оксфордский университет) по обнаружению столкновений
- Как избежать столкновения Джордж Бек, Демонстрационный проект Wolfram .
- Ограничительные рамки и их использование
- Теорема о разделяющей оси
- Unity 3D Collision
- Столкновение Годо с физикой