Функции маскирования при рассеивании
Рассеивание — самая используемая функция Dash, и именно её возможности маскирования делают это возможным. Давайте разберёмся в них!
Dash содержит разные инструменты рассеивания, каждый из которых предназначен для конкретных целей. У большинства инструментов есть очень базовые возможности маскирования, а Surface Scatter — тот, который обладает практически всеми функциями, описанными на этой странице.
Surface Scatter — это первоклассное решение для рассеивания, которое работает на поверхностях ваших сеток. Идея в том, чтобы дать ему немного геометрии (статическая сетка, ландшафт, процедурная сетка и т. д...) в качестве поверхности/земли для рассеивания, и некоторые акторы, которые вы хотите разбросать, и он сотворит свою магию.
Это самый обширный инструмент в Dash и содержит функции, запрошенные различными крупными AAA-студиями, талантливыми отдельными художниками и нашей командой в неустанном стремлении к передовому уровню создания миров.
В отличие от Surface Scatter, Path Scatter рассеивает только вдоль кривых. Вы можете дать ему сетку, и если у нее есть границы, он будет рассеивать вдоль них, внутренне обрабатывая границы как кривые.
Decal Scatter делает именно то, что и следует из названия: дайте ему поверхность для рассеивания и несколько декалей для рассеивания, и ваша поверхность будет покрыта декалями.
Grid Scatter — практичный инструмент для создания более равномерных узоров. У вас есть полный контроль над размерами и делениями по XYZ, а также базовые функции маскирования по близости.
Volume Scatter помогает заполнить любую сетку экземплярами другой сетки. В отличие от Surface Scatter, этот инструмент не рассеивает на сетки, а внутри них. Обычное применение — создание уникальных форм, таких как пояса астероидов, или любых плавающих сеток, которые вы хотите в вашей сцене.
Radial Scatter позволяет создавать кольца из экземплярных сеток вокруг центра. Затем вы можете создавать ряды таких колец, настраивать их концентрические свойства, чтобы они аккуратно складывались в каждом кольце, использовать маскирование по близости/объекту и т. д...
Функции маскирования
Инструменты рассеивания Dash содержат различные функции маскирования, и хотя большинство из них находятся только в Surface Scatter, у других инструментов всё ещё есть несколько, и мы активно расширяем возможности маскирования для них. Давайте рассмотрим все основные функции маскирования, как они работают и что с их помощью можно сделать.
Прежде чем углубляться, под «маскированием» здесь понимается удаление рассеянных экземпляров. Кроме того, большинство групп масок дают возможность инвертировать результат маски. Вы заметите, что у некоторых свойств есть маленький тёмный кружок в правом нижнем углу, что означает, что вы можете щёлкнуть по свойству правой кнопкой мыши и выбрать Инвертировать маску.

Proximity Masking
Эта функция позволяет маскировать по кривой, сеткам и экземплярам.
У него есть Дистанция свойство, которое контролирует расстояние близости и опирается на нативные единицы UE. Другое свойство — Выборка. Это значение управляет качеством маскирования. Более высокое значение означает более высокое качество, а низкое значение означает более низкое.
В примере выше мы используем сетки и кривые для маскирования, но опираться на экземпляры так же просто: выберите их в окне просмотра и добавьте их в объекты близости. В примере ниже мы рассеяли несколько сфер, затем рассеяли несколько дисков и оставили только диски возле сфер.

Вы можете использовать маскирование по близости для создания реалистичных лесов. Сначала вы рассеяете деревья, затем сохраните некоторые папоротники и листья под ними, затем используете кривую как маску близости, если вам нужна дорожка, затем рассеять камни по краям этой дорожки и т. д...
Начиная с Dash 1.8.5, Surface Scatter имеет возможность добавлять бесконечное количество масок близости, что делается через Таблицу Близости. Это заменило предыдущие 3 маски близости. В Таблице Близости вы можете создавать группы, каждая из которых имеет свой объект, значения расстояния и ширины. Вы, например, можете использовать первую группу, чтобы замаскировать некоторые объекты с определённым расстоянием, и сделать то же самое с другими двумя группами.

Наконец, маскирование по близости очень хорошо подходит для инверсии маски.
Маскирование по углу
Маскирование по углу довольно простое: оно опирается на базовую поверхность для определения угла и удаляет любые рассеянные объекты в этой области. Это идеально подходит для сохранения склонов свободными от деревьев и других объектов при рассеивании на горах.
Маскирование по высоте
Такие инструменты, как Surface Scatter, имеют Мин. маска высоты и Макс. маска высоты свойства, которые позволяют отсекать рассеянные объекты сверху или снизу.
Маскирование объектов
В отличие от маскирования по близости, которое просто опирается на расстояния, маскирование по объекту использует трассировку лучей, чтобы определить, находятся ли ваши экземпляры внутри, снаружи или рядом с объектом. Если вы хотите нарисовать кривую и сохранить все ваши экземпляры внутри этой кривой, эта функция идеально подходит. Вы также можете использовать её, чтобы сохранять экземпляры, которые находятся внутри/снаружи сетки или объёма.
Этот метод маскирования также имеет Сохранять внутри булево свойство, которое вы можете переключить, чтобы гарантировать, что маскирование либо сохраняет экземпляры внутри, либо снаружи ваших входных объектов. Вы также можете использовать Дистанция свойство, чтобы сохранять экземпляры поблизости.
Маскирование шумом
Маскирование шумом позволяет быстро нарушить равномерность ваших рассеянных объектов. Вам предоставлен широкий набор параметров: от масштабирования до частоты, растяжения по осям, сглаживания шума, искажения и т. д...
Если вы рассеваете траву, деревья или даже мусор, мы настоятельно рекомендуем использовать эту функцию, чтобы ваши результаты выглядели более естественно.
Маскирование скомкования
Маскирование скомкования работает путем выбора случайных экземпляров и использования их в качестве центральной точки скомкования. Вам предоставляется значение для настройки плотности выбираемых экземпляров и другое для управления радиусом ваших скомкований. В сочетании с шумом и другими масками это может быть очень мощным инструментом для реалистичных настроек рассеивания.
Маскирование границы
Маскирование границ обнаруживает краевые ребра вашей геометрии поверхности и маскирует все объекты рядом с этими границами.
Эта функция особенно полезна для искусственных настроек рассеивания, таких как сады, где вы можете создать некоторую базовую форму геометрии, рассеять на ней растения, а затем скрыть эту геометрию. Каждая петля краёв вашей геометрии обрабатывается отдельно, и Минимум/Максимум границы свойства позволяют добавить некоторую рандомизацию в маскирование для каждой петли границы. Noise — это простой эффект шума, чтобы нарушить однородность границы.
Проекционное маскирование
Проекционное маскирование работает так: точка каждого экземпляра испускает луч вверх, и любая сетка, в которую попадает этот луч и которую вы добавили, обеспечит сохранение таких попавших экземпляров. Вы также можете инвертировать эффект. Сценарии использования варьируются от сохранения экземпляров, находящихся под объектами, например растений или мусора под машиной, до удаления всех экземпляров, которые находятся ниже любого набора объектов в вашей сцене.
Маскирование слоёв ландшафта
Эта функция маскирования позволяет подать имя слоя покраски в Surface Scatter, и инструмент затем использует слой как маску. Вы можете подать до трёх слоёв.
Маскирование текстурами
Текстурное маскирование довольно простое: выберите текстуру в контент-браузере UE, передайте её в Путь к текстуре свойство в группе Texture Masking, и вуаля. Вы можете выбрать, какой канал использовать в качестве маски, настроить порог цвета, чтобы помочь с градиентными пикселями, и задать тайлинг текстурной маски. Всё, что вам нужно сделать, это убедиться, что ваша текстура содержит белые на чёрном пиксели, и белые пиксели будут использованы как маска. Если вы пытаетесь создать структуру, например небольшой украшенный сад с очень специфическими формами, мы рекомендуем этот подход: вы можете рассеять на плоскости, скрыть плоскость, а затем присвоить ей текстуру, которая представляет форму вашего цветочного сада.
Маскирование цветом вершин
Цвета вершин можно применить к статическим сеткам, и тогда все RGB-каналы доступны в этой группе маскирования. Дополнительно у вас есть контроль порога пикселя, чтобы настроить поведение маски на градиентных пикселях, а также Режимы смешивания выпадающий список, из которого вы можете выбрать, как цвет вершин влияет на логику маскирования.
Ориентированная маскировка
В отличие от маскирования по углу, направленное маскирование позволяет использовать ваш актор солнечного света (или любой объект) для маскирования объектов на основе поворота солнца. Это можно использовать для удаления объектов, чувствительных к солнечному свету, наиболее распространённый пример — мох.
Добавить / Удалить маску
Это простой трюк маскирования, который позволяет нам случайным образом добавлять или удалять экземпляры. Например, вы можете использовать маскирование по близости, чтобы расчистить дорожку от растений, а затем использовать добавочную маску с небольшим значением, чтобы оставить несколько растений здесь и там.
Ссылки на свойства
При создании сложной конфигурации, например леса с Surface Scatter для деревьев, другим для кустарников, ещё одним для травы и т. д., затем Path Scatter для деревянных столбов вдоль леса и дорогой и т. д. — такая сложность быстро становится непосильной, и мы используем ссылки, чтобы разобраться во всём этом. У вашей дороги будет ширина, и вы захотите, чтобы деревянные столбы учитывали эту ширину, даже если у них есть небольшой сдвиг. То же и с лесной растительностью — вы не захотите, чтобы она появлялась на дороге, и так далее.
Способ сделать это — создать свойства-ссылки. Мы рассматриваем их на Начало работы странице, но рабочий процесс довольно прост: вам нужно создать какое-то свойство Distance или Width, которое определяет ширину дороги, и все эти инструменты будут его использовать. Когда свойство использует ссылку, мы даём ему вес, что позволяет вам расширить значение вашего свойства за пределы того, что предоставляет ссылка. Например, если ваша Width равна 320, деревянные столбы могут иметь вес 0.1, что сделает их немного больше ширины, поскольку вес действует как процентный множитель.
Последнее обновление
Это было полезно?