Коротко
- HeightField SOP создаёт рельеф размером 1000 × 1000 метров с шагом сетки Grid Spacing 2 метра.
- С помощью HeightField Noise SOP форму рельефа можно задавать параметрами Amplitude, Element Size и разными типами noise.
- Маски позволяют ограничивать воздействие на высоту выбранными областями; HeightField Mask by Feature использует такие критерии, как уклон, высота, кривизна, направление и затенённость.
- HeightField Erode симулирует осадки и эрозию; этот узел документирован начиная с Houdini 21.0.
В Houdini heightfield описывает рельеф не традиционной полигональной моделью, а данными о высоте в двумерной сетке ячеек. В официальной документации SideFX рассматриваются слои heightfield, noise, маски и эрозия — инструменты для создания вершин, береговых линий, долин и различных геологических форм. Эти методы можно применять и для создания топографии при визуализации архитектурного окружения и ландшафта; это редакционная рекомендация по возможному использованию инструментов, описанных в гайде.
Основные сведения о heightfield и noise основаны на документации Houdini от SideFX. Для узла HeightField Erode указано, что он документирован начиная с Houdini 21.0, а для HeightField Mask by Feature — начиная с 16.0. В документации отдельно не указаны расположение функций в меню текущей версии и требования к оборудованию.
Как устроен heightfield: высота, слои и разрешение
Базовый слой heightfield обычно называется height; значения в этом слое определяют высоту рельефа. В тот же поток данных можно добавлять отдельные слои высот для таких компонентов, как грунт или скальная порода, и при необходимости редактировать их по отдельности. Возможность временно отключать и включать слои помогает работать с рельефом, не объединяя его в единый результат.
Разрешение определяет расстояние между точками сетки и уровень детализации поверхности. В примере SideFX размер HeightField SOP по умолчанию составляет 1000 × 1000 метров. При стандартном Grid Spacing, равном 2 метрам, базовый heightfield содержит 500 вокселей по каждой оси. Уменьшение Grid Spacing даёт более плотную выборку, поэтому значение следует выбирать с учётом масштаба сцены и необходимой детализации.
| Параметр | Рекомендуемое значение | Эффект |
|---|---|---|
| Size | По умолчанию: 1000 × 1000 м | Задаёт общий масштаб рельефа. |
| Grid Spacing | По умолчанию: 2 м | Определяет расстояние между точками сетки и разрешение heightfield. |
| Roughness | Изменяйте небольшими шагами по 0,05 | Влияет на мелкие неровности поверхности noise; в документации отмечается, что этот параметр чувствителен. |
Создание базового рельефа: шесть шагов
Откройте меню Tab на уровне
objв Houdini и создайте Geometry OBJ. Этот объект служит контейнером для сети рельефа; чтобы войти внутрь, дважды щёлкните по узлу.Добавьте HeightField SOP через меню Tab. Узел создаёт плоскую поверхность в начале координат, ориентированную по осям ZX. Задайте область, которую займёт рельеф, параметром Size, а плотность выборки — параметром Grid Spacing.
После HeightField SOP добавьте HeightField Noise SOP и подключите его первый вход к выходу heightfield. Узел Noise придаёт рельефу форму на плоской основе.
В узле Noise задайте масштаб изменения высоты параметром Amplitude, а размер рисунка — параметром Element Size. Малое значение Element Size даёт более частые и острые детали, большие значения — более мягкие и широкие формы. Amplitude не следует воспринимать как высоту в метрах: это коэффициент масштаба, применяемый к смещению точек сетки.
Чтобы создать основную форму, попробуйте разные Noise Types. В документации в качестве примера для формирования основного рельефа приводятся cellular-типы и Alligator, а Perlin, sparse и simplex — для добавления деталей. Несколько слоёв с разными типами noise и применение distortion позволяют создавать более детализированные формы.
Если нужен уровень моря и береговой рельеф, изучите варианты Combine Mode. В документации указано, что Maximum может обрезать значения ниже нуля, формируя уровень моря и острова, а Minimum — создавать формы, похожие на каньоны.
Контролируемая детализация с помощью масок и эрозии
Маска ограничивает воздействие узла выбранными участками рельефа. Чтобы применять noise только в определённых областях, поместите HeightField Mask Noise SOP между HeightField SOP и HeightField Noise SOP. Подключите первый вход узла маски к выходу heightfield, а второй вход узла noise — к выходу узла маски. Воздействие на рельеф будет видно в областях маски, отображаемых красным цветом. Несколько слоёв масок с разными именами также позволяют контролировать отдельные операции в разных областях.
Для отбора по более конкретным критериям можно использовать HeightField Mask by Feature. Этот узел создаёт маску на основе уклона, высоты, кривизны, направления поверхности и затенённости окружающими областями. Например, на участке рельефа можно выделить заданные диапазоны уклона или высоты. Если включено несколько критериев, итоговая маска формируется по их пересечению. Если не включить ни один критерий, узел заполнит маску значением 1, что может случайно привести к выбору всего рельефа.
В документации SideFX для эрозии описан следующий начальный процесс:
Перейдите на вкладку Terrain FX shelf и создайте один из пресетов Terrain: Mountain или Terrain: Canyon.
Перейдите к Start Frame на Playbar и запустите симуляцию.
Когда будет достигнут нужный этап, задайте подходящий кадр в Freeze at Frame, чтобы зафиксировать результат.
Если нужны более мелкие детали, добавьте ещё один HeightField Erode и задайте для Erosion Feature Size меньший масштаб.
Erosion Feature Size определяет масштаб каналов эрозии, склонов и отложений. Большие значения создают более широкие формы, маленькие — более резкие детали. Минимальный размер элементов узла ограничен тремя размерами вокселя входного terrain. Если выстраивается цепочка из нескольких узлов эрозии, зафиксируйте результат, когда достигнете нужного эффекта. SideFX отмечает, что незамороженные узлы могут рассчитываться не по порядку, приводя к неожиданным результатам или увеличению времени обработки. Помимо height, результат эрозии может содержать слои sediment, debris, flow и flowdir.
Использование в архитектурном и archviz-процессе
Команды, готовящие визуализацию архитектурного окружения, могут использовать heightfield для создания наклонного рельефа вокруг зданий, далёких холмов, береговых линий или небольших участков ландшафта, создаваемых специально для сцены. Это не отдельная рекомендация по архитектурному применению в документации SideFX, а возможный способ использования описанных там инструментов для работы с рельефом. Раздельное хранение слоёв и масок позволяет, например, применять эрозию только к выбранным участкам или независимо редактировать разные компоненты ландшафта.
Двумерная сеточная структура heightfield ограничивает детализацию вертикальных поверхностей. SideFX перечисляет среди вариантов для таких областей применение эрозии, преобразование heightfield в реальную геометрию или распределение объектов по поверхностям. Karma CPU и Karma XPU поддерживают heightfield, однако преобразование в полигоны до рендеринга даёт больше контроля над итоговой геометрией. При передаче в Solaris преобразование также может выполняться автоматически. Поэтому командам стоит учитывать в собственном сценовом процессе необходимость преобразования в полигоны и переноса цветов или слоёв на рельеф.
Типичные ошибки
Принимать значение Amplitude за высоту в метрах. Это коэффициент масштаба, применяемый к смещению точек сетки.
Уменьшая Grid Spacing, обращать внимание только на детализацию. Этот параметр меняет разрешение; учитывайте и необходимый масштаб рельефа, и уровень детализации.
Использовать HeightField Mask by Feature, не включив ни одного критерия. В этом случае маска заполняется значением 1.
Выстраивать цепочку узлов эрозии, не фиксируя результат. Закрепите нужный результат через Freeze at Frame — иначе могут возникнуть проблемы с порядком расчёта узлов или временем обработки.
Предполагать, что heightfield сам по себе позволит детализировать вертикальные поверхности. Для таких областей рассмотрите преобразование в геометрию или распределение объектов.
Источники
Источников: 3Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Для архитектурных и визуализационных бюро в Турции практическое преимущество подхода с heightfield — возможность управлять рельефом по отдельным областям с помощью слоёв и масок, а не рассматривать его как единую поверхность. Это может упростить итеративное редактирование топографии вокруг проекта и адаптацию одной базовой сетки к разным сценам.
Перед внедрением этого процесса в проект стоит проверить разрешение, преобразование в полигоны и этап рендеринга. В документации не приводятся конкретные рекомендации по оборудованию или сведения о стоимости; бюро разумно измерить время обработки на собственных сценах. Фиксация результата эрозии и раннее выявление ограничений для вертикальных поверхностей помогут сократить число лишних итераций.
Частые вопросы
Как создать heightfield в Houdini?
Внутри Geometry OBJ добавьте HeightField SOP, а затем подключите HeightField Noise SOP, чтобы сформировать рельеф. Size задаёт общий масштаб, а Grid Spacing — разрешение сетки.
Как зафиксировать симуляцию HeightField Erode?
Запустите симуляцию с Start Frame и, достигнув нужного кадра, задайте значение Freeze at Frame. SideFX рекомендует фиксировать нужный результат, если используется несколько узлов эрозии.
Может ли heightfield создавать детали на вертикальных поверхностях?
Двумерная сеточная структура heightfield ограничивает работу с вертикальными областями. Для них SideFX предлагает применять эрозию, преобразовывать рельеф в геометрию или распределять объекты.



