Процедурное рассевание

Dash содержит различные инструменты рассевания, каждый из которых предназначен для определённых задач. На этой странице мы объясним, почему эти инструменты рассевания являются наиболее используемыми в Dash.

Surface Scatter — это первоклассное решение для расстановки объектов, работающее по поверхностям ваших мешей. Идея в том, чтобы дать ему некоторую геометрию (статический меш, ландшафт, процедурный меш и т. п...) в качестве поверхности/земли для расстановки и набор акторов, которые вы хотите разбросать, и он выполнит свою магию.

Это самый обширный инструмент в Dash и содержит функции, запрошенные различными крупными AAA-студиями, талантливыми отдельными художниками и нашей командой в непрекращающемся стремлении к передовым методам построения миров.

circle-info

Обязательно прочитайте Руководство по началу работы на странице, чтобы легче усвоить информацию на этой странице. Раздел о создании окружения охватывает основы использования инструментов Dash, которыми мы предположим, что вы владеете для этой страницы.

Кроме наличия простых в использовании специализированных инструментов разброса для конкретных задач, главная причина, по которой людям нравятся наши инструменты разброса — это их возможности маскирования. Большинство инструментов имеют общие базовые настройки маскирования, но Surface Scatter содержит практически все функции, поэтому давайте пройдемся по ним по очереди!

Функции маскирования

Инструменты разброса Dash содержат различные функции маскирования, и хотя большинство из них находятся только в Surface Scatter, другие инструменты всё ещё имеют некоторые из них, и мы активно расширяем возможности маскирования. Давайте рассмотрим все основные функции маскирования, как они работают и что с их помощью можно сделать.

Прежде чем углубляться: «маскирование» здесь означает удаление разброшенных экземпляров. Кроме того, большинство групп масок дают вам возможность инвертировать результат маски. Вы заметите, что некоторые свойства имеют небольшой тёмный кружок в правом нижнем углу, что означает, что вы можете щёлкнуть правой кнопкой по свойству и выбрать Инвертировать маску.

Маскирование по близости

Эта функция позволяет маскировать по кривым, мешам и экземплярам.

У неё есть Расстояние свойство, которое контролирует дистанцию близости и зависит от нативных единиц UE. Другим свойством является Сэмплирование. Это значение контролирует качество маскирования. Более высокое значение означает более высокое качество, а более низкое — более низкое.

В примере выше мы используем меши и кривые для маскирования, но опираться на экземпляры так же просто: выберите их в окне просмотра и добавьте в объекты близости. В примере ниже мы разбросали несколько сфер, затем разбросали диски и оставили только диски рядом со сферами.

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

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

Наконец, маскирование по близости хорошо подходит для инверсии маски.

Маскирование по углу

Маскирование по углу довольно простое: оно опирается на базовую поверхность для определения угла и удаляет любые разбросанные объекты в этой области. Это идеально для очистки склонов от деревьев и других объектов при разбросе на горах.

Маскирование по высоте

Такие инструменты, как Surface Scatter, имеют Минимальную маску по высоте и Максимальную маску по высоте свойства, которые позволяют отсекать разброшенные объекты сверху или снизу.

Маскирование по объектам

В отличие от маскирования по близости, которое просто опирается на расстояния, маскирование по объектам использует трассировку лучей, чтобы определить, находятся ли ваши экземпляры внутри, снаружи или рядом с объектом. Если вы хотите нарисовать кривую и сохранить все экземпляры внутри этой кривой, эта функция идеально подходит. Её также можно использовать, чтобы сохранять экземпляры, находящиеся внутри/снаружи меша или объёма.

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

Шумовое маскирование

Шумовое маскирование позволяет быстро нарушить однообразие ваших разбросанных объектов. Вам предоставляется широкий набор параметров: масштабирование, частота, осевое растяжение, сглаживание шума, искажение и т. д.

Если вы разбрасываете траву, деревья или даже мусор, мы настоятельно рекомендуем использовать эту функцию, чтобы ваши результаты выглядели более естественно.

Маскирование скоплений

Clump Masking работает, выбирая случайные экземпляры и используя их как центральные точки скоплений. Вам предоставляется значение для регулировки плотности выбираемых экземпляров и другое значение для управления радиусом ваших скоплений. В сочетании с шумом и другими масками это может быть очень мощным инструментом для реалистичных настроек разброса.

Маскирование по границе

Border Masking обнаруживает краевые ребра геометрии вашей поверхности и маскирует все объекты, находящиеся рядом с этими границами.

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

Проекционное маскирование

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

Маскирование слоями ландшафта

Эта функция маскирования позволяет передать имя слоя покраски в Surface Scatter, после чего инструмент использует слой как маску. Вы можете передать до трёх слоёв.

Маскирование текстурами

Маскирование текстурами довольно просто: выберите текстуру в контент-браузере UE, укажите её в Путь к текстуре свойстве в группе Texture Masking, и вуаля. Вы можете выбрать, какой канал использовать как маску, настроить порог цвета для работы с пикселями с градиентом и задать плитку текстуры маски. Всё, что нужно — убедиться, что ваша текстура содержит белые на чёрном пиксели: белые пиксели будут использованы как маска. Если вы пытаетесь создать структуру, например небольшой украшенный сад с очень специфичными формами, мы рекомендуем этот подход: вы можете разбросать по плоскости, скрыть плоскость, а затем дать ей текстуру, которая представляет форму вашего цветочного сада.

Маскирование цветом вершин

Цвета вершин можно применить к статическим мешам, и тогда все каналы RGB доступны в этой группе маскирования. Кроме того, у вас есть управление порогом пикселя, чтобы настроить, как маскирование ведёт себя на пикселях с градиентом, а также Режимы смешивания выпадающий список, из которого вы можете выбрать, как цвет вершин влияет на логику маскирования.

Направленное маскирование

В отличие от маскирования по углу, направленное маскирование позволяет использовать ваш актор солнечного света (или любой другой объект) для маскировки объектов на основе поворота солнца. Это можно использовать для удаления объектов, чувствительных к солнечному свету, где мох — самый распространённый случай использования.

Добавление / удаление маскирования

Это простой трюк маскирования, который позволяет добавлять или удалять экземпляры случайным образом. Вы, например, можете использовать маскирование по близости, чтобы очистить путь от растений, а затем использовать добавляющую маску с небольшим значением, чтобы оставить несколько растений в разбросе.

Ссылки на свойства

При создании сложной настройки, например леса с Surface Scatter для деревьев, другим — для кустарников, ещё одним — для травы и т. д., а затем Path Scatter для деревянных столбов вдоль леса и дороги и т. п., сложность может быстро стать непосильной, и мы используем ссылки, чтобы упорядочить это. У вашей дороги будет ширина, и вы захотите, чтобы деревянные столбы соответствовали этой ширине, даже если у них есть небольшой сдвиг. То же самое с растительностью в лесу — вы не захотите, чтобы она порождалась на дороге и т. д.

Способ сделать это — создать ссылочные свойства. Мы освещаем их на Руководство по началу работы странице, но рабочий процесс довольно прост: вы создаёте некоторое свойство Distance или Width, которое определяет ширину дороги, и все эти инструменты будут его использовать. Когда свойство использует ссылку, мы даём ему вес, который позволяет вам расширить значение вашего свойства сверх того, что предоставляет ссылка. Например, если ваша ширина 320, у деревянных столбов может быть вес 0.1, что сделает их слегка больше ширины, так как вес действует как процентный множитель.

Таблица разброса

В более поздних версиях (с Dash 1.8.5) мы начали добавлять таблицы данных в некоторые инструменты. Основная — это таблица разброса в Surface Scatter. Вместо простого присвоения нескольких объектов разброса с помощью значка + в свойстве разброса вы можете открыть таблицу разброса, нажав кнопку Редактировать таблицу.

Здесь вы можете создать несколько строк свойств, назначить одной или нескольким строкам объекты разброса, а затем у вас появится возможность контролировать смещение плотности и смещение масштаба для каждой строки свойств. Это значит, что у вас может быть один Surface Scatter с очень точным управлением разбросанными объектами вместо необходимости создавать несколько Surface Scatter.

Логика этой таблицы данных постепенно распространяется на другие инструменты и настройки, чтобы дать вам тонкий контроль, который иногда необходим.

Последнее обновление

Это было полезно?