World Clutter
Нода World Clutter позволяет расставлять набор идентичных нод (node references) случайным образом по сцене практически одним щелчком мыши. Больше нет необходимости вручную позиционировать, масштабировать и вращать каждый отдельный объект и постоянно думать о производительности. World Clutter автоматически размещает ноды в сцене со случайными параметрами, всеми из которых можно эффективно управлять, и отображает их только вокруг камеры. World Clutter используется для рассеивания негеометрических объектов, таких как декали, системы частиц и так далее. Но если вы хотите разбрасывать одинаковые меши (геометрию), лучше использовать Mesh Clutter.
World Clutter разбрасывает объекты процедурно и, следовательно, еще более эффективно использует память. В то же время это означает, что разбросанные предметы нельзя перемещать.
Смотрите также#
- Класс WorldClutter для редактирования World Clutter через API
Создание World Clutter#
Чтобы создать World Clutter, сделайте следующее:
-
Добавьте ноду World Clutter: в Меню , выберите Create -> Clutter -> Node.
- Разместите на сцене World Clutter.
Объекты World Clutter#
Объекты в World Clutter - это node references, которые разбросаны по определенной области и для каждого из которых контролируется вероятность его появления.
Probability slider |
Чем выше вероятность, тем чаще можно увидеть node reference по сравнению с другими объектами World Clutter. Допустим, мы создаем берег из щепы и водорослей. Мы создаем декаль из древесной стружки и декаль с водорослями и сохраняем их как файлы *.node ( создаем файл NodeReference ). Если ползунок вероятности для водорослей близок к нулю, берег покрыт древесной стружкой и среди них видно только несколько водорослей. Изменение вероятности появления не влияет на количество визуализируемых объектов, а только указывает соотношение между несколькими объектами World Clutter.
|
---|---|
Add | Добавить node reference в список объектов World Clutter. |
Remove | Удалить все выбранные node references из списка. Чтобы выделить объект, необходимо установить флажок рядом с ним. |
Reload | Перезагрузить все Node Reference в World Clutter. После редактирования Node Reference сохраненные изменения не применяются автоматически к нодам, расставленным посредством World Clutter. Это происходит потому, что Node Reference после однократной загрузки копируется из внутреннего кеша, что позволяет очень быстро создавать множество копий. Опция Reload обновляет этот кеш, и изменения в параметрах объектов вступают в силу. |
Параметры World Clutter#
World Clutter отображается как 2D-меш, в каждой ячейке которого случайным образом размещается ряд объектов World Clutter в зависимости от плотности World Clutter и вероятности появления. Ячейки генерируются одна за другой, начиная с ближайших. Этот подход позволяет контролировать, насколько близко или далеко находятся разбросанные объекты друг от друга, и в то же время уменьшать нагрузку на рендеринг, когда камера перемещается и становятся видны более удаленные ячейки.
После добавления и разброса объекты нельзя перемещать или вращать. Единственный способ изменить картину рассеяния - это изменить параметр Seed .
Size X
Size Y |
Размер ограничивающего прямоугольника World Clutter по осям X и Y. В пределах этой области объекты будут разбросаны с заданной плотностью. Размер измеряется в единицах. |
||
---|---|---|---|
Step for Cells |
Размер ячейки в единицах. Количество ячеек в World Clutter определяется следующим образом: размер World Clutter (как по X, так и по Y ) делится на шаг. Чем больше количество ячеек (т.е. чем меньше шаг), тем выше нагрузка. Однако создание одной большой ячейки занимает больше времени. Когда камера движется достаточно быстро, маленькие ячейки будут создаваться очень медленно, но большие могут заметно выскочить из поля зрения и вызвать небольшую задержку рендеринга. |
||
Density |
Плотность указывает, сколько объектов приходится на квадратную единицу. Если в World Clutter больше одного объекта, вероятность будет учтено, но не изменит итоговое количество всех визуализированных объектов. Если значение плотности слишком высокое, объекты могут проникать друг в друга.
|
||
Visibility Distance |
На расстоянии видимости количество объектов строго определяется параметрами плотности . Это означает, что все предметы, которые должны присутствовать, находятся на своих местах.
|
||
Fade Distance |
По мере затухания количество объектов постепенно уменьшается, так как они исчезают случайным образом один за другим. Расстояние замирания измеряется, начиная с Visibility Distance. Если установлено расстояние перехода, нет четкой линии, где объекты, содержащиеся в World Clutter, внезапно исчезают. Вместо этого некоторые из них будут плавно переходить в фон без визуального шума. Для достижения наилучшего результата рекомендуется также сочетать этот эффект с исчезновение объектов . |
||
Spawn Rate |
Определяет, сколько ячеек (в которых отображается World Clutter) обновляются в каждом кадре. Установка слишком большого количества обновляемых ячеек может привести к скачку производительности. |
||
Seed | Начальное значение для генератора псевдослучайных чисел позволяет создавать различные шаблоны автоматического позиционирования. Начальное число либо устанавливается вручную, либо механизм предоставляет случайное значение для начального числа (опция Randomize). |
Рандомизация объектов World Clutter#
Для рандомизации внешнего вида объектов, составляющих World Clutter, используются два типа значений:
- Средние значения (Scale, Offset, Rotation) определяют среднее значение. Это базовые значения, которые будут случайным образом увеличиваться или уменьшаться.
-
Значения Spread (Spread) определяют диапазон возможного изменения параметра. Чем выше значение, тем разнообразнее будет конечный результат.
Значение спреда является необязательным : если установлено значение 0, оно не повлияет на процесс моделирования, и для всех объектов будет использоваться только среднее значение.
После того, как эти значения указаны, каждый параметр рассчитывается по следующей формуле:
Result = Mean + Random * Spread
где Random - случайное значение в диапазоне от -1 до 1. Например, если значение параметра Mean равно 3, а значение Spread равно 1, окончательный результат будет любым в диапазоне от 2 до 4.
Scale |
Среднее значение масштаба рассеянных объектов зависит от минимального и максимального средних значений масштаба и маски изображения значения: значения маски используются для линейной интерполяции между минимальным и максимальным значениями масштаба. Среднее значение масштаба не может быть отрицательным.
|
||||
---|---|---|---|---|---|
Offset |
Параметр смещения высоты определяет, расположены ли все объекты на одной высоте или некоторые находятся выше или ниже. Например, со смещением камни можно закопать глубоко в землю, чтобы была видна только небольшая верхняя часть, или поставить выше и выглядеть больше. Смещение измеряется в единицах. |
||||
Rotation X
Rotation Y Rotation Z |
Эти параметры позволяют произвольно ориентировать разбросанные объекты. Вращение задается в углах. Если значение распространения установлено на 180, объекты будут повернуты на 360 градусов. |
Маскирование областей объектами#
Размещать предметы, равномерно разбросанные во всех направлениях и местах, естественно, не очень удобно. Вместо создания нескольких маленьких нод World Clutter, покрывающих ограниченное место, можно использовать большой с маской.
Image Mask |
Области, в которых объекты случайным образом разбросаны, и области без каких-либо объектов из списка. Например, на местности маска позволяет разбрасывать мусор по определенным участкам, оставляя другие места свободными от него.
Чтобы нарисовать маску изображения прямо в сцене, используйте Mask Editor. |
||
---|---|---|---|
Threshold for Mask |
Чтобы контролировать силу маскирования, используется порог маски. Он проверяет плотность маски для области, и если пороговое значение выше, чем значение цвета маски, объекты разбрасываются по ней. Если маскированной плотности недостаточно, место оставляют голым.
|
||
Mesh Mask | Для размещения объектов можно использовать маску на основе меша. Векторное маскирование позволяет не зависеть от разрешения текстуры маски и создавать дороги, реки и т.д. С чрезвычайно высокой точностью. Меш для маскировки должен быть простым плоским мешем. | ||
Inverse | Переключение флажка позволяет размещать объекты внутри или за пределами контура меша. | ||
Min and Max mask values |
В качестве решения для расширенного распределения объектов и оптимизации потребления памяти к объекту может быть применена не только маска целиком, но и любая необходимая ее часть. Это означает, что разные объекты могут иметь одну и ту же маску, но использовать разные уровни. По умолчанию каждый канал маски изображения определяет области и плотность роста в диапазоне плотности цвета [0;255]. Однако, используя минимальное и максимальное значение, вы можете указать любой диапазон плотности цвета в пределах, и часть маски, содержащая соответствующие значения, будет использоваться для размещения нод. Возьмем следующую R8 маску изображения В качестве примера:
Несколько объектов, представляющих ноды разной высоты, могут использовать эту маску следующим образом:
|
||
Flip X | Горизонтальный переворот маски изображения . | ||
Flip Y | Вертикальный переворот маски изображения . | ||
Cutout Intersection | Битовая маска Cutout. Эта маска используется для вырезания объектов World Clutter в областях пересечения с объектами и декалями (например, для удаления растительности под домами или с поверхности дорог, проецируемых с помощью декалей). Объекты World Clutter вырезаются объектами и декалями, маска которых соответствует маске Intersection (по крайней мере, на один бит). | ||
Cutout Inverse | Переключает значение, которое указывает, должны ли объекты World Clutter отображаться внутри или за пределами областей, определенных маской cutout intersection. |
Выравнивание по рельефу#
Если объекты в World Clutter не разбросаны по абсолютно плоской и не наклонной поверхности, они могут быть автоматически расположены так, чтобы точно повторять подъемы и спуски рельефа без каких-либо усилий. Для этого нижележащая поверхность должна быть родительской для ноды World Clutter. (Если есть несколько нод в иерархии между нодой ландшафта или меша и World Clutter, пересечения все равно будут проверяться.)
Родителем для пересечения может быть только ландшафт или Mesh-объект. Меш должен быть похож на ландшафт, то есть иметь только одну поверхность по вертикали по координате Z.
Intersection |
После установки флажка Intersection объекты в World Clutter разбросаны по поверхности родительского объекта. Не имеет значения, если World Clutter больше родительского объекта по размеру - область рассеивания по-прежнему будет ограничена поверхностями родительского объекта. |
||
---|---|---|---|
Orientation |
Эта опция позволяет установить вектор нормали родительской поверхности в качестве начальной ориентации для рассеянных объектов. Это означает, что если поверхность в каком-то месте вертикальна, то направление вверх для разбросанных по ней объектов будет фактически направлено в сторону. Объекты могут быть по-прежнему случайным образом повернуты но относительно ориентации нормали родителя. Этот параметр включен, только если включена опция Intersection.
|
||
Angle |
Как и в случае с травой , рассеяние может учитывать крутизну наклона.
Этот параметр доступен, только если отмечена опция Intersection. |