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

Итоги

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

Новости
Директор Hearthstone покинул Blizzard после 15 лет работы
Директор Hearthstone Бен Броуд объявил, что покидает организацию Blizzard Entertainment.
Игры Бесконечности: лучшие проекты по брендам Marvel
В ближайшие пару недель наши топы будут исключительно по Marvel-играм, обязательно хорошим и обязательно достойным вашего внимания.