December 17, 2024

Растительность, которая оживляет все…

Без лишних слов.

Вот так выглядит готовый ландшафт с крутым материалом:

Вот так выглядит он же, но уже с детализацией через Grass Types:

А теперь подадим сюда растительность (ракурс тот же):

Еще ракурс:

Пример из моего текущего проекта:

Добавил только деревья и папоротник:

Растительность (в частности деревья) не моделируется привычным образом: сделать ствол, сделать ветки, сделать еще мелкие ветки и потом смоделировать листики и уже на них класть текстуры.

Цепочка действий скорее выглядит так:

Сделать ствол, сделать крупные ветки, сделать средние ветки, потом применить атласы, которые реализуют мелкие ветки, побеги и собственно листья.

Вот яркий пример такого процесса (изображения любезно предоставила мне для данной статьи моя помощница):

Начиная с этой стадии, не все такие мелкие ветки стоит уже генерировать моделями, а все-таки стоит загнать их в атлас вместе с листвой и загенерить выше к макушке дерева, т.е. туда, где не требуется высокой детализации (в целях оптимизации):

Ну и собственно листва:

Так как же все-таки делаются такие атласы?

Вы можете использовать ассеты из мегаскановской библиотеки:

А затем такая текстура уходит на обработку. Если рассматривать ручные дедовские методы, то в любой 3d-редактор (на примере 3ds max).

К слову я планирую рассматривать со своими студентами и дедовский метод в рамках обзорного мастер-класса (типа смотрите, но повторять на практике не обязательно).

Это нужно для более качественного и глубокого понимания механизмов “под капотом”, чтобы вы делали в будущем такие ассеты осмысленно.

Однако в реальном производственном цикле - изучаются естественно процедурные методы генерации и используются как основные.

Итак, обычная плоскость с нанесенной на нее текстурой карты непрозрачности:

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

Также можно отметить что из данного атласа вы можете вполне обойтись одним - двумя листочками, но чем больше вы возьмете в работу, тем большее разнообразие будет в итоговой кроне дерева.

Бывает также и так, что листва под одно дерево берется из двух, а то и трех разных атласов, но это уже больше творческие детали.

Итак выпилили (важный момент здесь - это якорная точка):

А теперь формируем кустик (на данном изображении очень условный кустик, конечно это делается более сложно и более продумано и больше трех листочков, да еще и веточка там есть), но смысл показан правильно:

А так это выглядит с альбедо текстурой:

Такой кустик, или побег, или ветка затем при необходимости перезапекается на рабочий атлас, который уже служит основой для сборки кроны:

Ну и так далее…

Когда дерево собрано - оно выглядит примерно так (на изображении некоторые мои ольхи и ели):

И работа материала:

Ольха:

Собственно рабочий атлас на этом дереве выглядит так:

Стоит ли упоминать о сложности материала:

Тут естественно огромное количество параметров, потому что листва совсем не ограничивается двумя - тремя текстурами, типа Albedo и Картой непрозрачности (Opacity). Тут и всякие SSS и specular и многое-многое другое.

Также особый интерес представляет Pivot Painter, позволяющий реализовать реалистичное колыхание листьев на ветру:

Логический блок для листвы:

И в частности сложный ветер на основе Pivot Painter:

Думаю на этом стоит закончить краткий обзор создания растительности.

Я бы с радостью расписал все в подробностях, но получится не статья, а полноценный учебник страниц этак на 200-300 (если с картинками :))

Спасибо Дине Абдулиной за предоставленный дуб, в начале статьи