This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
VR Development
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Сэмплы материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Mesh Cluster

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

Mesh Cluster обычно используется для объектов одного типа, например, домов в микрорайонах.

Меши объекта Mesh Cluster, которые видны в пирамиде видимости, загружаются, меши за пределами пирамиды видимости отбрасываются. Использование Mesh Cluster очень эффективно с точки зрения производительности: оно значительно ускоряет рендеринг и позволяет обрабатывать большое количество объектов без потери производительности.

Примечание
Mesh Cluster может содержать только идентичные статические меши с одинаковым материалом, назначенным каждой из их поверхностей.

Есть два способа создать Mesh Cluster в UnigineEditor:

  • Собрать Mesh Cluster, запекая все идентичные меши в иерархии узлов или в мире.
  • Создать 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. Остальные узлы добавляются в виде линейного списка. Исходный узел отключен.

Создание кластерного узла: узлы, не входящие в кластер, добавляются в виде линейного списка
Примечание
Mesh Cluster создается только в том случае, если иерархия содержит не менее 8 идентичных мешей.

Запекание идентичных мешей в мире#

Чтобы создать кластер путем запекания всех идентичных мешей в мире, выполните следующие действия:

  1. В строке меню щелкните Create -> Cluster -> Mesh.

  2. В открывшемся диалоговом окне выберите путь к файлу .mesh. Этот меш будет использоваться как исходный для Mesh Cluster.
  3. Разместите Mesh Cluster где-нибудь в мире. По умолчанию он должен содержать 4 экземпляра выбранного меша (вы можете удалить их). Запекаемые меши должны иметь тот же файл .mesh, что и выбранный для кластера.
  4. Укажите тот же материал, который назначен мешам, которые будут запекаться в кластер, на вкладке Node окна Parameters (раздел Surfaces).
  5. Щелкните Collect Similar во вкладке Node раздел Mesh Cluster. Все объекты, имеющие одинаковые меш и назначенный материал, будут запечены в кластер. Запеченные меши больше не отображаются в иерархии узлов.

    Окно Parameters, вкладкаNode

    Чтобы изменить все дочерние меши сразу, просто выберите требуемый ассет в поле Mesh раздела Mesh Cluster.

Создание Mesh Cluster из Mesh Clutter#

Чтобы создать кластер из Mesh Clutter воспользуйтесь следующей опцией контекстного меню:

Использование этой опции отключает Mesh Clutter и создает и включает Mesh Cluster с тем же именем и добавленным постфиксом _Cluster.

Создание кластера вручную#

Чтобы создать Mesh Cluster путем запекания его дочерних мешей, сделайте следующее:

  1. В строке меню щелкните Create -> Cluster -> Mesh.

  2. В открывшемся диалоговом окне выберите *.mesh ассет, который будет использоваться в качестве исходного меша для кластера.
  3. Разместите кластер где-нибудь в мире. По умолчанию он должен содержать 4 экземпляра выбранного меша (вы можете удалить их).
  4. Вручную разместите идентичные меши в мире и сделайте их дочерними по отношению к созданному кластеру.
    Примечание
    Чтобы сделать узел дочерним по отношению к другому узлу, перетащите его под родительский узел в окне World Hierarchy.
  5. Чтобы привязать дочерние меши к кластеру, щелкните Apply в разделе Mesh Cluster вкладки Node. Запеченные дочерние меши больше не отображаются в иерархии узлов.

    Окно Parameters, вкладка Node
    Примечание
    В кластер запекаются только включенные меши. Отключенные меши остаются дочерними узлами.

    Чтобы добавить больше мешей к тому же кластеру, просто щелкните Edit, чтобы сделать их его дочерними, а затем щелкните Apply, чтобы повторно создать кластер.

    Чтобы изменить все дочерние меши сразу, просто измените ассет меша в поле Mesh раздела Mesh Cluster.

Редактирование кластера#

Чтобы отредактировать Mesh Cluster (созданный или собранный), например, чтобы изменить положение или удалить некоторые меши, щелкните Edit в разделе Mesh Cluster вкладки Node.

Примечание
Собранные меши станут дочерними элементами Mesh Cluster.

Очистка кластера#

Чтобы удалить все меши, запеченные в Mesh Cluster, щелкните Clear. Убедитесь, что меши созданый или собраны , так как в случае их перезапекания операция не будет выполнена.

Параметры кластера#

Для кластера в разделе Mesh Cluster вкладки Node доступны следующие параметры:

Окно Parameters, вкладка Node, раздел Mesh Cluster
Mesh Измените меш исходного кластера, изменив таким образом все дочерние меши.
Visibility Distance Расстояние, на котором видны все элементы кластера.
  • Если установлено в бесконечность (inf), параметр Fade будет проигнорирован.
  • Реальная дистанция видимости кластера напрямую зависит от максимальной дистанции видимости объекта (поверхности), а также его дистанции плавного перехода . В случае, если меши исчезают на более близком расстоянии, дальнейшее увеличение расстояния видимости никак не повлияет на производительность.
Примечание
Чтобы избежать мерцания элементов кластера, максимальная дистанция видимости для объекта должна быть больше суммы минимальная дистанция видимости а также минимальное расстояние исчезновения:
Max Visibility > Min Visibility + Min Fade
Fade Distance Расстояние, до которого количество отрисовываемых элементов кластера постепенно уменьшается, поскольку они случайным образом исчезают один за другим. Дистанция плавного перехода следует за дистанцией видимости . Без установки дистанции плавного перехода меши резко исчезают в виде четко видимой линии. Использование расстояния плавного перехода позволяет объектам исчезать один за другим, пока на расстоянии плавного перехода не останется только несколько объектов. Это делает исчезновение более плавным и менее заметным.

Для достижения наилучшего результата рекомендуется также сочетать этот эффект с плавным переходом .

Последнее обновление: 19.12.2023
Build: ()