Следующая новость
Предыдущая новость

Плывем по течению - вода в Pathfinder: Kingmaker

Плывем по течению - вода в Pathfinder: Kingmaker

Дорогие Первопроходцы!

Сегодняшнее обновление посвящено рендеру воды в нашей игре. Вода – это самый сложный с технической точки зрения объект для рендера. Чтобы чудо произошло, мы используем различные подсистемы игрового движка и тщательно готовим различные текстуры. К тому же, нам необходима комбинация программистстких навыков, способностей технических художников, много терпения и капелька удачи.

Плотность

Кристально чистая вода обычно почти бесцветная и только на глубине она как бы густеет и приобретает голубоватый оттенок. Тем не менее, на земле всего несколько мест, где вода имеет такой оттенок в естественных условиях, например, голубое озеро в Новой Зеландии. Чаще вода содержит микрочастицы других субстанций, которые меняют ее оттенок. Эффект особенно заметен в реках и ручьях, которые несут эти частицы.

Тем не менее, цвет воды зависит не только частиц и субстанций, но также и от других параметров, и наиболее соответствующий – плотность. Cделаем предположение, что цвет воды зависит от глубины (густоты слоев) умноженной на плотность. В чистой воде проще увидеть, что же находится на дне, и в более глубоких местах мы видим больше цветов, чем есть в самой воде.

 

Отражение или преломление?

Естественно, нам нужны и отражение, и преломление. Самая сложная часть состоит в следующем: во время рендера водных поверхностей мы должны подготовить две текстуры: одну с отражениями, другую – с объектами, которые расположены под водой. Если подойти к этой проблеме «в лоб», то мы можем просто отрендерить все объекты, которые расположены под водой к текстуре преломления, и все объекты,  которые расположены над водой по отношению к текстуре преломления. Если мы выберем этот подход, то нужно будет отрисовать каждый объект трижды: по отношению к текстуре преломления,  по отношению к текстуре отражения и по отношению к экрану в целом.

Дважды в одну реку

Итак, мы можем установить цвет воды, отражение и преломление. Осталась одна деталь – добавить течение.

При первой итерации мы анимируем текстурные координаты рельефных структур. Если анимация сделана верно, то мы также сможем установить такую воду для озер и прудов.

В Pathfinder будет много локаций с реками и ручьями. Мы хотим, чтобы игрок увидел, что поток изгибается вокруг камней и быстро бежит через все повороты течения. Чтобы это сделать, мы используем карту течений. Они содержат закодированные векторы направления течения. Художники могут рисовать эти карты самостоятельно, что дает им больше возможностей, чтобы контролировать внешний вид течения.

Что же нам еще добавить?

То, что у нас есть, уже хорошо выглядит. Но все еж еще недостаточно…чего-то не хватает…

Именно! Пена!

Чтобы нарисовать пену, мы используем четырех канальные текстуры, в которых каждый канал содержит текстуру пены с разной густотой. Во время рендера, мы может еще раз использовать z-буферизацию, чтобы оценить глубину воды, и в локацию с наименьшей глубиной мы добавляем пену. Меньшая глубина означает увеличение густоты пены.

Давайте убивать и бросать трупы в воду!

Да, на счет этого…убивать людей под водой  - дело тонкое, потому в таких случаях в воде появляется кровь. Мы используем фактическое моделирование жидкости, и кровь плывет вниз по течению.

Последние новости