Mesh Clutter
Mesh Clutter - это объект, который может содержать большое количество идентичных мешей, которые позиционируются, ориентируются и масштабируются случайным образом и не могут управляться вручную. Элементы объекта Mesh Clutter могут быть разбросаны в определенных областях с помощью изображения или меша-маски.
Объект Mesh Clutter обычно используется для растительности (например, лес, листья на земле), для рассыпания одинаковых объектов (например, мусора).
Mesh Clutter используется для разброса одинаковых мешей по миру (или части мира) или местности. Mesh Clutter процедурно разбрасывает объекты и отображает только те объекты, которые находятся в области просмотра. Это позволяет рендерить большое количество мешей, сохраняя при этом высокую производительность.
Смотрите также#
- Класс ObjectMeshClutter для редактирования клаттеров через API
- Пример Clutter, расположенный в пакете Art Samples:
Создание клаттера#
Чтобы создать Mesh Clutter, просто выполните следующие шаги:
- В строке меню щелкнитеCreate -> Clutter -> Mesh.
- В открывшемся диалоговом окне выберите путь к файлу .mesh. Этот меш будет использоваться как исходный для Mesh Clutter.
- Разместите объект Mesh Clutter где-нибудь в мире.
- Укажите параметры Mesh Clutter.
Параметры клаттера#
Mesh Clutter очень похож на World Clutter (который работает с разными ссылками на узлы). Он отображается как 2D-сетка, в каждой ячейке которой случайным образом размещается несколько мешей в зависимости от плотности Mesh Clutter и вероятности появления. Ячейки генерируются одна за другой, начиная с ближайших. Этот подход позволяет контролировать, насколько близко или далеко находятся разбросанные объекты друг от друга, и в то же время уменьшать нагрузку на рендеринг, когда камера перемещается и становятся видны более удаленные ячейки.
Mesh | Меш, копии которого будут разбросаны. |
---|---|
Size X
Size Y |
РазмерMesh Clutter ограничивающая рамка по осям X и Y. В пределах этой области объекты будут разбросаны с заданной плотностью.
|
Step for cells |
Размер ячейки в единицах. Результирующее количество ячеек в Mesh Clutter определяется следующим образом: размер Mesh Clutter (как по X, так и по Y) делится на шаг.
|
Density | Плотность указывает, сколько объектов приходится на квадратную единицу.
|
Visibility distance |
На расстоянии видимости количество объектов строго задается параметром Density. Это означает, что все предметы, которые должны присутствовать, находятся на своих местах.
|
Fade Distance | По мере плавного перехода количество элементов постепенно уменьшается, так как они исчезают случайным образом один за другим. Расстояние замирания измеряется, начиная сVisibility Distance. Если установлено дистанция плавного перехода, четкая линия, на которой меши резко исчезают, отсутствует. Вместо этого некоторые из них будут плавно переходить в фон без визуального шума.
Для достижения наилучшего результата рекомендуется также сочетать этот эффект с исчезновение объектов . |
Seed | Начальное значение для генератора псевдослучайных чисел позволяет создавать различные шаблоны автоматического позиционирования. Начальное значение либо устанавливается вручную, либо механизм предоставляет случайное значение для начального числа (опция Randomize). |
Случайное распределение элементов клаттера#
Для случайного распределения мешей по Mesh Clutter, используются два типа значений:
- Mean значение (т.е. масштаб , смещение , поворот ) определяет среднее значение соответствующего параметра. Это базовое значение, которое будет случайным образом увеличиваться или уменьшаться.
- Spread значение определяет диапазон возможного изменения параметра. Чем выше значение, тем разнообразнее будет конечный результат.
Значение спреда является необязательным : если установлено значение 0, оно не повлияет на процесс моделирования, и для всех объектов будет использоваться только среднее значение.
После указания этих значений каждый параметр рассчитывается по следующей формуле:
Result = Mean + Random * Spread,
где Random - случайное значение в диапазоне от -1 до 1. Например, если Mean значение параметра равно 3, а значение Spread равно 1, окончательный результат будет любым в диапазоне от 2 до 4.
Min and Max Scale | Среднее значение масштаба рассеянных объектов зависит от минимального и максимального средних значений масштаба и значения маски: значения маски используются для линейной интерполяции между минимальным и максимальным значениями масштаба.
Например, если используется следующая маска изображения: Объекты Mesh Clutter будут масштабированы следующим образом:
|
||||||||
---|---|---|---|---|---|---|---|---|---|
Offset | Параметр смещения высоты определяет, расположены ли все объекты на одной высоте или некоторые находятся выше или ниже. Например, со смещением камни можно закопать глубоко в землю, чтобы была видна только небольшая верхняя часть, или поставить выше и выглядеть больше.
|
||||||||
Rotation X Rotation Y Rotation Z |
Эти параметры позволяют произвольно ориентировать разбросанные объекты.
|
Маскирование областей с объектами#
Помимо равномерного распределения мешей по всей площади, можно использовать маску для их расположения. Она позволяет контролировать, где должны быть размещены объекты.
Image Mask |
Маска определяет области, по которым объекты случайным образом разбросаны, и области, в которых не будет объектов из списка. Например, на местности маска позволяет разбрасывать камни по каменистым участкам, оставляя участки травы свободными от камней.
Чтобы нарисовать маску изображения прямо в сцене, используйте Редактор масок . |
---|---|
Threshold for mask | Для управления силой маскирования используется порог маски. Он проверяет плотность маски для области, и если пороговое значение выше, чем значение цвета маски, объекты разбрасываются по ней. Если маскированной плотности недостаточно, места оставляют голыми.
|
Terrain Mask | Маска принадлежащий Landscape Terrain будет использоваться для определения области, в которой должен быть размещен объект Mesh Clutter. |
Mesh Mask | Для размещения объектов можно использовать маску на основе меша. Векторное маскирование позволяет создавать дороги, реки и т.д. с чрезвычайно высокой точностью независимо от разрешения текстуры маски. Меш для маскирования должен быть простым и плоским.
Меш используется как маска
Маскирование на основе меша
|
Inverse | Флаг Inverse переключает режимы размещения элементов внутри или вне контура меша.
Обратное маскирование
|
Cutout Intersection | Вырезанная битовая маска. Эта маска используется для вырезания мешающих мешей в областях пересечения с объектами и декалями (например, может использоваться для удаления растительности под домами или с поверхности дорог, проецируемых с помощью декалей). Элементы меша будут вырезаны объектами и декалями, маска пересечения которых соответствует этой (по крайней мере, на один бит). |
Cutout Inverse | Переключает значение, которое указывает, должны ли элементы клаттера визуализироваться внутри или за пределами областей, определенных маской вырезания по пересечению . |
Выравнивание по поверхности рельефа#
Mesh Clutter также может разбрасывать предметы по рельефу. Для этого я должен сделать нижележащую поверхность родительской для узла Mesh Clutter. (Если есть несколько узлов в иерархии между узлом ландшафта или сетки и Mesh Clutter, пересечения все равно будут проверяться.)
Родителем для пересечения может быть только местность или меш объект. Меш должен быть похожим на ландшафт, то есть иметь только одну поверхность по вертикали по координате Z.
Intersection | После установки флажка Intersection объекты будут разбросаны по поверхности родительского объекта.
|
---|---|
Orientation | Эта опция позволяет установить вектор нормали родительской поверхности в качестве начальной ориентации для рассеянных объектов. Это означает, что если поверхность в каком-то месте вертикальна, направление вверх для объектов, разбросанных по ней, будет фактически указывать в сторону.
|
Angle | Как и в случае с травой , рассеяние может учитывать крутизну наклона.
|
Создание Mesh Cluster из Mesh Clutter#
Если вам требуется больше свободы в настройке существующего Mesh Clutter, вы можете преобразовать его в Mesh Cluster, используя соответствующий опция контекстного меню .