Конгер Д.
Физика для разработчиков компьютерных игр
стр. 189

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

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

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

Этот алгоритм прекрасно работает, но у него есть очень существенный недостаток: он очень медленный! Вспомните - нужно проверять, произошло ли столкновение между каждой парой частиц в сцене. И при каждой проверке нужно вычислять квадратный корень. Это очень медленная операция - она выполняется почти в 70 раз дольше, чем операция умножения двух чисел с плавающей запятой. Вспомните код метода vec-tor_3d: : Norm (), вычисляющего норму вектора:

Новости
В PUBG вышла новая карта «Санок»
Bluehole не один месяц тестировала третью карту для PUBG, и сегодня тропическая миниатюрная карта «Санок» наконец-то вышла на общих серверах.
В Warface добавили режим «Королевская битва 2.0»
В Warface разработчики добавили режим «Королевская битва 2.0». Старая версия доработана, количество игроков увеличено с 16 до 32.