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

приведен в листинге 13.2. Как мы уже видели ранее, метод immersib-le_rigid_body: : Update {) вычисляет выталкивающую силу и сопротивление воды, действующие на объект класса immersible_rigid_body. Затем он вызывает метод rigid_body: : Update (), чтобы найти новое положение объекта класса immersible_rigid_body исходя из действующих на него сил, включая силу тяжести и силы, вызванные течением воды.

Функция RenderFrame () из листинга 13.4 мало отличается от таких же функций в предыдущих примерах. Задав матрицы отображения и проецирования, она просто вызывает метод immersible_rigid_body: : Render () для каждого шарика. Эта функция отрисовывает каждый шарик в буфер, который затем выводится на экран платформой физического моделирования.

Запустив эту программу, вы заметите, что я выбрал самый простой способ изображения воды. Все, что я сделал - выбрал темно-синий фон с легким зеленоватым оттенком. Часто этого достаточно, чтобы игрок понял, что действие происходит под водой.

Подсказка

Пожалуй, лучше всего различные методы моделирования воды рассмотрены в книге Mason McCuskey «Special Effects Game Programming with DirectX» (издательство Premier Press). Эту книгу, думаю, стоит прочитать каждому, кто хочет создавать игры.

Итоги

Хотя моделирование воды — не такая уж простая задача, моделировать поведение погруженных в воду объектов довольно просто. Зная основные принципы плавучести, давления, вязкого трения, течений и волн, можно моделировать поведение большинства объектов в воде. Формулы, описывающие соответствующие соотношения, просты и широко применяются.

Новости
Будет выпущена серия короткометражек по World of Warcraft
Blizzard выпустит серию короткометражных анимационных роликов в преддверии World of Warcraft: Battle for Azeroth.
Epic Games заработала миллиард долларов на микротранзакциях в Fortnite
Прибыль от микротранзакций в Fortnite перевалила за один миллиард — и всё благодаря тем самым ненавистным лутбоксам.