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

При следующем вызове функции UpdateFrame () переменная f ог-ceApplied сохранит свое значение - true, поэтому выполнится блок выражений в операторе else. Этот блок выражений уменьшит силу до нуля, поэтому шарик получит толчок только при первом выполнении функции UpdateFrame (). После этого на него не будут действовать никакие силы. Шарик будет двигаться бесконечно, пока выполняется программа. Приятно видеть, что наша имитация работает в соответствии с законами Ньютона. Это свидетельствует о том, что мы правильно составили программу.

Последнее, что делает функция UpdateFrame () - вызывает для объекта-шарика метод d3d_point_mass : : Update (). Этот метод пересчитывает местоположение шарика, исходя из действующих на шарик сил (если таковые есть), скорости шарика и его ускорения. Если хотите посмотреть еще раз на код метода d3d_point_mass: : Update (), он приведен в листинге 7.3.

РЕНДЕРИНГ ОБЪЕКТА КЛАССА D3D_POINT_MASS

Рендеринг объекта класса d3d_point_mass - действительно сложная процедура. Ужасно сложная. Но если вы еще не испугались, то можете посмотреть на код, выполняющий этот рендеринг. Он приведен в листинге 7.10.

Впечатляет? Хм. Ладно, я пошутил. Если вы недавно занимаетесь компьютерной графикой, то вряд ли сможете представить себе, как это здорово — иметь возможность выполнить рендеринг сложного объекта вроде шарика с помощью такой короткой функции. Я начинал работать с компьютерной графикой больше 20 лет назад. Тогда, чтобы вывести что-нибудь на экран, мне приходилось писать собственный модуль рендеринга. Этот модуль должен был быть написан на ассемблере. Если вы не знаете, что это значит, можете считать, что вам повезло. Да, в те годы жизнь иногда была чертовски сложной.

В любом случае, из листинга 7.10 видно, что функция RenderFrame () просто вызывает метод Render () класса d3d_j?oint_mass для объекта theObject. Этот метод, в свою очередь, вызывает метод класса d3d_mesh, чтобы применить глобальную матрицу, созданную методом Update () класса d3d_point_mass. Кроме того, вызывается метод d3d_mesh: : Render (), чтобы выполнить рендеринг сетчатой модели. Поскольку эти методы выполняют все нужные действия, на долю функции RenderFrame () остается немногое. Другими словами, если мы используем объект класса

Новости
Антивирусы и облачные сервисы портят сохранения Dark Souls Remastered
Вчера комьюнити-менеджер Bandai Namco под ником Izmar подтвердил проблему в Steam, посоветовав ограничить доступ антивирусов и других программ вроде облачных сервисов Google и Amazon к файлам ремастера Dark Souls.
Facebook анонсировала новую игровую платформу с интерактивными видео
«Facebook анонсировала несколько новых функций видеотрансляций, которые позволят пользователям сделать свои прямые трансляции похожими на игры с опросами и викторинами», — отмечает The Verge.