Этот раздел посвящен работе с ландшафтами — рассмотренные приемы будут полезны при создании природных сцен разной степени детализации.
Студенты изучат пайплайн создания природных ландшафтов в Houdini FX, познакомятся с основными инструментами для настройки общей формы и отдельных элементов, а также научатся созданию реалистичных деталей с помощью симуляций естественных процессов.
В качестве итоговой работы студенты создадут собственную сцену на основе ландшафта.
Референсы
Природные ландшафты часто используются при создании окружения для игр, кино и анимации. В этом разделе разберем основы работы с ландшафтами и основные инструменты.
В качестве примера создадим сцену с полем и горами.


Corentin Wunsche. Snowy Landscape.
Media.Work Studio. Hermes Seasons.
Heightfields
Для создания природных ландшафтов в Houdini FX используется HeightFields. Это инструмент, который позволяет работать с рельефом в виде 2D-карты высот, и хранить информацию в формате volume, вместо классической полигональной сетки. Такой подход удобен по нескольким причинам:

Таким образом, HeightFields облегчает процесс создания природных сцен, обеспечивая высокую производительность и гибкость в настройке рельефа.
Создание базовой геометрии

Чтобы начать работу над ландшафтом, переключимся в режим Terrain; так необходимые инструменты появятся в быстром доступе на верхней панели в качестве shelf-tools.
Создадим основу ландшафта. При выборе ноды HeightField в начале координат появится grid размером 1000×1000 и разрешением 500×500 вокселей. По умолчанию эта нода создает два вольюма (слоя) — height и mask, с которыми мы и будем работать.

Прежде всего определим форму ландшафта — в тестовой сцене можно начать с формирования горы, которая станет центром композиции.
Для того, чтобы сформировать гору, нужно задать паттерн, по которому будет изменяться height — для этого можно использовать HeightField Pattern в режиме Concentric.
Noise & Masking
Так как в природе не существует идеально гладких поверхностей, мы можем имитировать природные рельефы, созданные эрозией, ветром, осадками и тектоническими процессами, с помощью различных видов шумов.
Чтобы задать базовую форму террейна, можно подобрать подходящий шумовой паттерн в Heightfield Noise (Noise Layer: height).
На природных референсах видно, что поверхность горы варьируется в различных областях — у такого ланшафта есть как скалистые, так и пологие участки, как подверженные эрозии, так и покрытые растительностью части и тд.



Эту особенность можно воспроизвести с помощью слоя mask, который используется, чтобы ограничить действие heighthield нод (например, оставить эрозию только на вершине горы), разделить разные типы поверхностей (скалы, трава, земля) и добавить реалистичные переходы между зонами.
В случае со сценой с горой, с помощью маски, созданной в Heightfield Noise (Noise Layer: mask), HeightField Pattern (Pattern Layer: mask) и HeightField Mask by Feature создаются крупные, средние и мелкие детали на поверхности горы, после чего на основе созданной маски в HeightField Layer изменяется height.
Кроме того, маски удобны для скаттеринга мелких элементов и растительности.
Например, добавить деревья и камни на пологие склоны и плато можно, создав маску с помощью HeightField Mask by Feature в режиме Mask by Slope, и подключив ее output в первые два входа ноды Heightfield Scatter.
Симуляции естественных процессов
Когда основная форма готова, рельефу можно добавить реалистичности с помощью имитации природных процессов. Например, можно имитировать термическую и гидравлическую эрозию с помощью ноды HeightField Erode или следы от воды и осадков с HeightField Flow, а также сползание грунта с HeightField Slump.
Для детализации склона горы используется нода HeightField Flow Field, создающая борозды от осадков и HeightField Erode имитирующая эрозию на основе 15 кадров симуляции.
В результате своей работы эти ноды не только изменяют основной слой height, но создают новые слои (flow, debris, sediment), которые также могут использоваться для маскирования последующих операций или в шейдинге. При работе с ними доступны те же операции, что и со стандартными слоями — их можно комбинировать (HeightField Combine Layers), копировать (HeightField Copy Layer), и удалять (HeightField Layer Clear).
Визуализация

Чтобы сделать работу с ландшафтом еще нагляднее, добавим ноду HeightField Visualize — она позволяет отобразить хранящиеся на геометрии данные прямо в вьюпорте.
Например, мы можем выделить определенные диапазоны высот цветом, сделать более заметными резкие перепады рельефа или визуализировать различные зоны с помощью слоев.


Экспорт

Когда работа над созданием ландшафта закончена, heightfield можно конвертировать в полигональную геометрию помощью ноды Convert HeightField, и в 2D-карты с помощью ноды HeightField Output, где их можно запечь послойно.
Так как сцена с горой будут рендериться в Houdini, с помощью HeightField Output запекается несколько карт:
В итоге получается легко редактируемый ландшафт, готовый к шейдингу и рендеру.
Задание
Описание Создайте сцену на основе природного ландшафта с использованием изученных инструментов.
Результат Набор референсов, .hip файл проекта
Полезные ссылки