Конгер Д.
Физика для разработчиков компьютерных игр
стр. 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 () остается немногое. Другими словами, если мы используем объект класса

Новости
Авторы Max Payne раскритиковали крупные игры
Глава по коммуникации студии Remedy Томас Пуха заявил, что в нынешних реалиях игрового рынка его команде пришлось реорганизовать производство.
Ubisoft выпустит эксклюзивную фигурку Father’s Calling
Компания Ubisoft сообщила, что коллекционная фигурка Father’s Calling, представляющая собой лидера организации «Врата Эдема» из Far Cry 5, поступит в продажу 22 марта 2018 года по цене 3999 рублей.