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

tor_3d: :Normalize() в строках 10-11. Вектор расстояния передается функции HandleCollision() в параметре separationDistance из функции UpdateFrame ().

Найдя единичный нормальный вектор, функция HandleCollision () скалярно умножает на него векторы скоростей объектов. Это позволяет найти компоненты векторов скоростей в направлении взаимодействия тел при столкновении.

Чтобы найти скорости объектов после столкновения, функция HandleCollision () должна использовать коэффициент восстановления. Для обеспечения максимальной универсальности класс d3d_point_mass позволяет каждому объекту хранить свой коэффициент восстановления. Это позволяет делать некоторые объекты более упругими, чем другие. Однако при столкновении объектов используется только один коэффициент восстановления, поэтому функция HandleCollision () находит средний коэффициент восстановления пары объектов и использует его в расчетах. Это делается в строках 21-22.

Подсказка

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

Скорости объектов после столкновения вычисляются в строках 24-40. Найдя эти скорости, функция HandleCollision () может найти ускорения тел вследствие столкновения. Это делается в строках 45-48. Из ускорений функция HandleCollision () определяет силы, действующие на объекты, используя формулу F = та.

РЕНДЕРИНГ КАДРОВ

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


Новости
Rust на Марсе с элементами PUBG
Выживать, как и следует из названия, придётся на Марсе. Помимо самого выживания, в игре присутствует и сюжет.
Переиздание Age of Empires выйдет 20 февраля
Как заявлено теперь, Age of Empires: Definitive Edition станет доступна на ПК с Windows 10 с 20 февраля 2018 года.