Система генерации водных текстур в современных компьютерных играх обычно включает несколько этапов: 2
- Создание объёма воды. 1 С точки зрения движка вода — это не жидкость, а блок, для которого программисты задают параметры: границы, высоту, физические особенности. 1 Например, устанавливают скорость плавания и глубину, на которой персонажи переходят в «плавучее» состояние. 1
- Визуальная обработка. 1 На водный блок накладывают постпроцессинг: размытие, глубину резкости, искажение и цветовой оттенок. 1
- Создание волн. 1 Для реалистичного результата движок должен обрабатывать геометрию воды, в том числе создавать волны. 1 Обычно их создают с помощью волн Герстнера — функций, которые помогают отрисовывать движение воды с выделенными хребтами и плавным перемещением. 1
- Генерация пены. 3 Для этого создают «пятно пены» на гребнях волн, затем накладывают новосозданные пятна на пятна с предыдущих кадров, одновременно уменьшая их интенсивность. 3
Параметры водного блока могут сильно отличаться в разных играх. 1 Например, в Resident Evil: Revelations иногда поднимается уровень воды, но физическая симуляция тут не при чём: у блока воды просто меняются параметры высоты и ширины, отчего объём «растягивается». 1