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

Итоги

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

Новости
Разработчики Theme Hospital создают новую игру Two Point Hospital
Осенью должен состояться выход нового игрового проекта Two Point Hospital, над которым работают создатели симулятора Theme Hospital.
Геймеры собирают деньги на помощь русским сиротам
Сервис Humble Store и компания Tripwire Interactive поддержат организацию Change30. Британцы предоставляют помощь русским сиротам.