Mesh Cluster
Mesh Cluster - это объект, который может содержать большое количество идентичных мешей с одним и тем же материалом, которые управляются как один объект. Элементы Mesh Cluster могут быть распределены автоматически, либо вы можете позиционировать, вращать и масштабировать каждый из них вручную.
Mesh Cluster обычно используется для объектов одного типа, например, домов в микрорайонах.
Меши объекта Mesh Cluster, которые видны в пирамиде видимости, загружаются, меши за пределами пирамиды видимости отбрасываются. Использование Mesh Cluster очень эффективно с точки зрения производительности: оно значительно ускоряет рендеринг и позволяет обрабатывать большое количество объектов без потери производительности.
Есть два способа создать Mesh Cluster в UnigineEditor:
- Собрать Mesh Cluster, запекая все идентичные меши в иерархии узлов или в мире.
- Создать Mesh Cluster вручную, запекая все его идентичные дочерние меши.
Смотрите также#
- Класс ObjectMeshCluster для редактирования кластеров через API
- Набор примеров, находящихся в каталоге <UnigineSDK>/data/samples/objects/:
- Набор примеров в C# Component Samples, демонстрирующий как добавлять и удалять элементы Mesh Cluster и преобразовывать Mesh Clutter в Mesh Cluster
Сборка кластера#
Mesh Cluster может быть получен из всех идентичных мешей, которые были добавлены в мир, или из всех идентичных дочерних мешей определенного узла.
Запекание идентичных мешей в иерархии объектов#
Чтобы создать Mesh Cluster путем запекания всех идентичных мешей в иерархии, щелкните правой кнопкой мыши родительский узел иерархии в окне World Hierarchy и выберите Create Mesh Clusters From Hierarchy в контекстном меню.
Применение этой операции создает dummy node с постфиксом _clustered, добавленным к имени родительского узла. Этот узел содержит два дочерних узла:
- Узел, являющийся родительским для всех Mesh Clusters. Этот узел называется путем добавления постфикса _mesh_clusters к имени исходного родительского узла. Имена Mesh Cluster формируются с использованием имени меша и постфикса _cluster.
- Узел, который является родительским для всех остальных дочерних узлов исходного родительского узла. Этот узел называется путем добавления постфикса _other_nodes к имени исходного родительского узла.
Созданные кластеры содержат все идентичные меши исходного узла, включая меши, на которые ссылаются Node References. Остальные узлы добавляются в виде линейного списка. Исходный узел отключен.
Запекание идентичных мешей в мире#
Чтобы создать кластер путем запекания всех идентичных мешей в мире, выполните следующие действия:
- В строке меню щелкните Create -> Cluster -> Mesh.
- В открывшемся диалоговом окне выберите путь к файлу .mesh. Этот меш будет использоваться как исходный для Mesh Cluster.
- Разместите Mesh Cluster где-нибудь в мире. По умолчанию он должен содержать 4 экземпляра выбранного меша (вы можете удалить их). Запекаемые меши должны иметь тот же файл .mesh, что и выбранный для кластера.
- Укажите тот же материал, который назначен мешам, которые будут запекаться в кластер, на вкладке Node окна Parameters (раздел Surfaces).
- Щелкните Collect Similar во вкладке Node раздел Mesh Cluster. Все объекты, имеющие одинаковые меш и назначенный материал, будут запечены в кластер. Запеченные меши больше не отображаются в иерархии узлов.
Окно Parameters, вкладкаNode
Чтобы изменить все дочерние меши сразу, просто выберите требуемый ассет в поле Mesh раздела Mesh Cluster.
Создание Mesh Cluster из Mesh Clutter#
Чтобы создать кластер из Mesh Clutter воспользуйтесь следующей опцией контекстного меню:
Использование этой опции отключает Mesh Clutter и создает и включает Mesh Cluster с тем же именем и добавленным постфиксом _Cluster.
Создание кластера вручную#
Чтобы создать Mesh Cluster путем запекания его дочерних мешей, сделайте следующее:
- В строке меню щелкните Create -> Cluster -> Mesh.
- В открывшемся диалоговом окне выберите *.mesh ассет, который будет использоваться в качестве исходного меша для кластера.
- Разместите кластер где-нибудь в мире. По умолчанию он должен содержать 4 экземпляра выбранного меша (вы можете удалить их).
- Вручную разместите идентичные меши в мире и сделайте их дочерними по отношению к созданному кластеру.
Чтобы сделать узел дочерним по отношению к другому узлу, перетащите его под родительский узел в окне World Hierarchy.
- Чтобы привязать дочерние меши к кластеру, щелкните Apply в разделе Mesh Cluster вкладки Node. Запеченные дочерние меши больше не отображаются в иерархии узлов.
Окно Parameters, вкладка NodeВ кластер запекаются только включенные меши. Отключенные меши остаются дочерними узлами.
Чтобы добавить больше мешей к тому же кластеру, просто щелкните Edit, чтобы сделать их его дочерними, а затем щелкните Apply, чтобы повторно создать кластер.
Чтобы изменить все дочерние меши сразу, просто измените ассет меша в поле Mesh раздела Mesh Cluster.
Редактирование кластера#
Чтобы отредактировать Mesh Cluster (созданный или собранный), например, чтобы изменить положение или удалить некоторые меши, щелкните Edit в разделе Mesh Cluster вкладки Node.
Очистка кластера#
Чтобы удалить все меши, запеченные в Mesh Cluster, щелкните Clear. Убедитесь, что меши созданый или собраны , так как в случае их перезапекания операция не будет выполнена.
Параметры кластера#
Для кластера в разделе Mesh Cluster вкладки Node доступны следующие параметры:
Mesh | Измените меш исходного кластера, изменив таким образом все дочерние меши. |
---|---|
Visibility Distance | Расстояние, на котором видны все элементы кластера.
Чтобы избежать мерцания элементов кластера, максимальная дистанция видимости для объекта должна быть больше суммы минимальная дистанция видимости а также минимальное расстояние исчезновения:
Max Visibility > Min Visibility + Min Fade |
Fade Distance | Расстояние, до которого количество отрисовываемых элементов кластера постепенно уменьшается, поскольку они случайным образом исчезают один за другим. Дистанция плавного перехода следует за дистанцией видимости . Без установки дистанции плавного перехода меши резко исчезают в виде четко видимой линии. Использование расстояния плавного перехода позволяет объектам исчезать один за другим, пока на расстоянии плавного перехода не останется только несколько объектов. Это делает исчезновение более плавным и менее заметным.
Для достижения наилучшего результата рекомендуется также сочетать этот эффект с плавным переходом . |