XGRIDSДокументация
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • 简体中文
  • English
  • 繁體中文
  • 日本語
  • Deutsch
  • Español
  • Italiano
  • Français
  • Русский
  • Lixel CyberColor

    • Руководство пользователя LCC Studio

      • Начало работы
      • Версия и обновления
      • Загрузка и установка
      • Обзор интерфейса и навигация
      • Перед реконструкцией
      • Реконструкция модели
      • Реконструкция одиночной модели
      • Объединение карт
      • Воздушно-наземное объединение
      • Воздушная реконструкция
      • Мои модели
      • Другие функции
      • Настройки и учётная запись
      • Конвертер
      • Реконструкция по видео
      • Часто задаваемые вопросы
    • LCC Scene Editor

      • Версия и обновления
      • Учётная запись и вход
      • Обзор продукта и главная страница
      • Интерфейс редактора
      • Режимы навигации по сцене
      • Файл
      • Настройки
      • Операции редактирования
      • Окно
      • Глобальная панель инструментов
      • Ресурсы и свойства
      • Левая панель инструментов
      • Точки обзора
      • Портал
      • Skybox
      • Аннотации
      • Измерение
      • Flythrough
      • Отчёт по сцене
      • 3D Layout
      • Мини-карта
      • Preview Mode (Viewer)
      • Справка
      • Часто задаваемые вопросы
      • Точка появления
    • LCC Model Editor

      • Версия и обновления
      • Руководство пользователя
      • Обзор и интерфейс
      • Операции с файлами
      • Инструменты выбора
      • Редактирование моделей
      • Измерение
      • Цветокоррекция
      • Управление ресурсами
      • Настройки и справка
      • Часто задаваемые вопросы
  • Plugin & SDK

    • Unreal

      • Введение
      • Быстрый старт — Windows
      • Быстрый старт — Linux
      • Быстрый старт — Quest3
      • Редакции и лицензирование
      • Рендеринг
      • Растеризация Tiled (экспериментально)
      • Визуальные настройки
      • Нормали и освещение
      • Редактирование сцены
      • Параметры производительности
      • Руководство по оптимизации производительности
      • Интеграция со сторонними и движковыми плагинами
      • Прокси-меш
      • Анимация загрузки
      • Коллизии
      • Поддержка системы навигации
      • Поддержка однослойной воды
      • Локализация
      • Частые вопросы
      • Устранение неполадок
      • Журналы и диагностика
      • Свяжитесь с нами
      • Рекомендуемые практики

        • Переосвещение 3DGS с помощью меша LixelStudio
      • Справочник API

        • ALCCActorBase
        • ULCCComponentBase
        • ULCCComponent
        • ULCC2Component
        • Actor SOG / SPZ / PLY
        • ALCC2ProxyMesh
        • ALCCClippingVolume
        • ALCCSectionPlane
        • ALCCLoadVolume
        • ULCCUtilLibrary
        • Enums
        • Structs
      • Журнал изменений

        • v3.4.0
        • v3.3.1
        • v3.0.0
        • v2.2.1
        • v1.0.0
        • v0.9.0
        • v0.8.0
        • v0.7.1
        • v0.6.1
        • v0.5.2
        • v0.4.1
        • v0.4.0
        • v0.3.0
        • v0.0.5
        • v0.0.4
        • v0.0.3
        • v0.0.2
        • v0.0.1

Параметры производительности 3DGS по пунктам

Этот документ поэлементно описывает, что делает каждый параметр, какие значения он принимает и какой результат даёт его изменение; он предназначен для поиска значения отдельного параметра. Пошаговый процесс поиска узкого места и настройки описан в Руководстве по производительности.

Таблица под заголовком каждого параметра указывает группу, диапазон значений, значение по умолчанию, применимый конвейер и способ вступления в силу. Когда конвейер указан как «LCC» или «LCC2», параметр действует только в этом конвейере; параметры, помеченные «Общий», работают в обоих. О понятии конвейера см. Введение.

Параметры панели Actor

Находятся в категории Performance панели Details у Actor и сгруппированы по области применения:

  • Группа Base: общая для обоих конвейеров, присутствует у каждого LCC Actor
  • Группа конкретного конвейера: отображается только у Actor соответствующего конвейера, имя группы совпадает с именем конвейера. В текущей версии своя группа есть только у конвейера LCC (имя группы LCC), а у Actor конвейера LCC2 отображается только группа Base
Параметры группы Base в категории Performance

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

Параметры группы LCC в категории Performance

Группа LCC: отображается только у Actor конвейера LCC

Примечание: у каждого параметра в категории Performance слева есть флажок. Пока флажок снят, параметр использует встроенное значение по умолчанию плагина, и введённое значение не действует. Если изменение ни на что не влияет, сначала убедитесь, что флажок установлен.

Max Distance

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
BaseЛюбое положительное целое300ОбщийНемедленно

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

Уменьшение заметно повышает частоту кадров и снижает расход памяти и видеопамяти, ценой исчезновения дальнего содержимого и явного обрыва на границе. Рассматривайте его вместе с Range For Level: если максимальная дистанция меньше дистанции какого-либо Level, этот Level и все более дальние не используются.

Max Splat Num

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
Base0 ~ 10000 (единица: 10 000)3000ОбщийНемедленно

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

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

Level Factor

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
Base0,01 ~ 201ОбщийНемедленно

Коэффициент масштабирования выбора Level, управляет тем, «с какого расстояния начинает падать точность». Конвейеры реализуют его по-разному: конвейер LCC масштабирует им глобальную таблицу дистанций Range For Level, а конвейер LCC2 — порог экранной погрешности, но направление эффекта одинаково.

При значении выше 1 переход на менее точные Level происходит раньше, деталей меньше, производительность выше; ниже 1 — точность падает позже, изображение резче, но стоимость выше. Держите значение 1 и повышайте его небольшими шагами только при реальной нехватке производительности.

Start Level

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
Base0 ~ 200ОбщийНемедленно

Начальный Level, ограничивает максимально доступную точность. Значение по умолчанию 0 разрешает использовать Level с наивысшей точностью.

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

End Level

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
Base0 ~ 2020ОбщийНемедленно

Конечный Level, ограничивает самый грубый доступный Level. Значение по умолчанию 20 не задаёт ограничений, поэтому можно использовать самый грубый Level, имеющийся в данных.

При уменьшении более грубые Level из данных не используются, и дальнее содержимое может оставаться только на уровне End Level. Пропусков в изображении не появляется, но точек рендерится больше, чем нужно, и производительность наоборот падает. Поэтому это не способ ускорения, и обычно значение остаётся равным 20.

Max Load Collision Distance

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
BaseЛюбое положительное целое300ОбщийНемедленно

Максимальная дистанция загрузки данных коллизий, в метрах. Действует только после включения коллизий.

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

Уменьшение напрямую снижает расход памяти Collision Data Usage и время Update Collision, ценой отсутствия коллизий вдали.

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

Use Full Load

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
BaseВключено / ВыключеноВключеноОбщийПерезагрузка данных

Разрешён ли рендеринг с полной загрузкой. Когда включено и количество точек Level 0 не превышает Full Load Splat Number, весь набор данных загружается сразу и постоянно находится в видеопамяти, минуя обход и выгрузку на каждом кадре; иначе происходит откат к загрузке по требованию.

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

Поведение видеопамяти после выключения различается по конвейерам:

  • Конвейер LCC выделяет видеопамять по узлам, поэтому расход меняется вместе с видимым диапазоном
  • Конвейер LCC2 выделяет буфер видеопамяти заранее по бюджету, поэтому расход не меняется вместе с видимым диапазоном; меняется только объём данных, фактически заполняющих буфер

См. Рендеринг.

Full Load Splat Number

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
BaseЛюбое положительное целое (единица: 10 000)1500ОбщийПерезагрузка данных

Верхний предел количества точек Level 0, при котором разрешён рендеринг с полной загрузкой.

Увеличение позволяет использовать рендеринг с полной загрузкой для более крупных сцен — убедитесь, что видеопамяти достаточно. Уменьшение приводит к откату большего числа сцен к загрузке по требованию.

Sort Factor

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
LCC0,2 ~ 51Только LCCНемедленно

Коэффициент масштабирования частоты сортировки. Применяется к глобальной таблице Sort Frequency For Level и управляет тем, как часто пересортируются узлы каждого Level.

Увеличение сокращает число сортировок и повышает производительность, но порядок наложения полупрозрачных элементов обновляется с задержкой при смене вида, из-за чего возможны кратковременные ошибки взаимного проникновения. Уменьшение сортирует своевременнее, но дороже. Держите значение 1.

Add Extra Preload Nodes

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
LCCВключено / ВыключеноВключеноТолько LCCНемедленно

Добавлять ли в очередь загрузки дополнительные предзагружаемые узлы. При включении предзагружается часть узлов за пределами края пирамиды видимости.

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

Rasterizer

ГруппаДиапазонПо умолчаниюКонвейерВступает в силу
XGridsPipeline / TiledPipelineТолько LCC2Немедленно

Способ растеризации. Этот пункт находится не в категории Performance: он расположен в категории XGrids панели Details, сразу после Render Mode, и появляется только тогда, когда Render Mode равен 3DGS.

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

Tiled — экспериментальная возможность и требует лицензии редакции Pro; без неё происходит автоматический откат к Pipeline. См. Растеризация Tiled.

Глобальные настройки ProjectSettings

Находятся в ProjectSettings > Plugins > LCC4Unreal. Они действуют на все LCC Actor в сцене и не могут настраиваться отдельно для каждого Actor.

Глобальные настройки проекта LCC4Unreal

Настройка глобальных параметров LCC4Unreal в ProjectSettings

Language

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
GeneralFollow Editor / Always EnglishFollow EditorОбщийНемедленно

Язык интерфейса плагина. Follow Editor следует настройке языка редактора, Always English принудительно включает английский. См. Локализация.

AutoExposure Enable

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
LCCВключено / ВыключеноВыключеноОбщийТребуется перезапуск редактора

Включена ли автоматическая экспозиция. По умолчанию выключена, потому что автоэкспозиция заставляет яркость 3DGS колебаться вместе с содержимым в кадре. После включения яркость изображения автоматически подстраивается при движении камеры.

SceneCaptureComponent Support

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
LCCВключено / ВыключеноВключеноТолько LCCНемедленно

Может ли SceneCapture рендерить содержимое LCC.

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

SingleLayerWater Support

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
LCCВключено / ВыключеноВыключеноТолько LCC2Требуется перезапуск редактора

Включайте, когда 3DGS перекрывается материалом однослойной воды.

Включение обеспечивает корректное отображение 3DGS на водной поверхности, ценой потери качества теней виртуальной карты теней для пикселей воды. Этот пункт записывает r.Water.SingleLayer.DepthPrepass в файл DefaultEngine.ini проекта. См. Поддержка однослойной воды.

Splat Number For Discard Per Node

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
LCCЛюбое положительное целое5Только LCCПерезагрузка данных

Отбрасывает данные узла, когда количество точек в нём ниже этого значения; решение принимается при разборе index.bin во время построения узлов. В части наборов данных много мелких узлов, содержащих всего одну-две точки, и стоимость их планирования намного превышает их ценность для рендеринга.

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

Методы сглаживания

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
AntiAliasingМетоды сглаживания, поддерживаемые движкомСм. таблицу нижеОбщийНемедленно

Сглаживание убирает ступенчатые зубцы на краях объектов. У обычных мешей есть выраженные геометрические края, где зубцы заметны и требуют сглаживания; 3DGS складывается из множества полупрозрачных splat, поэтому его края сами по себе градиентные и зубцы малозаметны.

Четыре настройки соответствуют режимам 3DGS и облака точек каждого конвейера, и плагин применяет их автоматически после включения bAffectAntiAliasingMethod у Actor.

НастройкаПо умолчаниюПрименяется к
LCC1 Splat Anti-aliasing MethodFXAAРежим 3DGS конвейера LCC (без глубины)
LCC2 Splat Anti-aliasing MethodTSRРежим 3DGS конвейера LCC2 (с глубиной)
LCC1 Point Cloud Anti-aliasing MethodMSAAРежим облака точек конвейера LCC
LCC2 Point Cloud Anti-aliasing MethodTSRРежим облака точек конвейера LCC2

Конвейер LCC по умолчанию не использует TSR / TAA, потому что при отсутствии информации о глубине оба метода дают шлейфы при движении камеры.

Стоимость сглаживания на GPU не мала, и TSR особенно заметен. Когда в сцене есть только 3DGS и нет обычных мешей, установите соответствующую настройку в None, чтобы отключить сглаживание; качество изображения обычно теряется незначительно, а выигрыш в частоте кадров существенный. В сценах, где смешаны обычные модели, UI или каркасные линии, отключение делает края этого содержимого заметно зубчатыми.

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

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

Enable Post Process

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
RenderingВключено / ВыключеноВключеноОбщийНемедленно

Участвуют ли пиксели LCC в конвейере постобработки движка.

Когда включено, 3DGS получает тональную компрессию, Bloom, экспозицию и другую постобработку вместе с обычными объектами сцены, что даёт единый вид. Когда выключено, 3DGS сохраняет исходные цвета и не затрагивается тональной компрессией и последующими этапами. Для выключения требуется вывод альфа-канала в движке. См. Визуальные настройки.

Apply Tonemap Inverse

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
RenderingВключено / ВыключеноВыключеноОбщийНемедленно

Применяется ли FilmToneMapInverse при преобразовании цветового пространства.

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

Quad Extent Threshold

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
Rendering0,001 ~ 0,10,006Только LCC2Немедленно

Управляет тем, насколько далеко квад splat расширяется от центра гауссианы. Каждый splat растеризуется в квад, и чем крупнее квад, тем больше пикселей он покрывает.

Увеличение делает квады компактнее, уменьшает overdraw и снижает стоимость заполнения пикселей, но может обрезать края полупрозрачных splat, что проявляется как более жёсткие контуры или потеря краёв. Уменьшение сохраняет края полнее при более высокой стоимости заполнения.

Small Splat Threshold

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
Rendering0,0 ~ 4,00 (выключено)Только LCC2Немедленно

Splat, размер которых на экране меньше этого значения в пикселях, сворачиваются в один пиксель и пропускают расчёт SH.

Увеличение пропускает расчёт затенения для множества мелких дальних splat и заметно снижает стоимость GPU, ценой потери зависящего от вида изменения цвета на дальнем плане, что может проявляться зернистостью или лёгким мерцанием.

Frustum Cull Margin

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
Rendering1,0 ~ 2,01,2Только LCC2Немедленно

Коэффициент отступа при отсечении по пирамиде видимости для каждого splat.

При значении выше 1,0 пирамида видимости расширяется наружу, что не даёт splat у края экрана внезапно выскакивать при повороте камеры; чем больше значение, тем больше краевых splat сохраняется при слегка более высокой стоимости. При значении 1,0 отсечение строго следует пирамиде видимости, и у края возможен эффект выскакивания.

Max CPU Usage Percetage For Free

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
Usage50 ~ 10090ОбщийНемедленно

Освобождение узлов запускается, когда расход памяти достигает этого процента.

Уменьшение начинает освобождение раньше и делает расход памяти более консервативным, но подкачка и выгрузка становятся чаще. Увеличение расходует больше памяти и создаёт риск сбоя при приближении к системному пределу.

CPU Release Percetage

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
Usage10 ~ 10030ОбщийНемедленно

Процент данных, очищаемых при каждом срабатывании освобождения.

Увеличение освобождает больше за раз и срабатывает реже, но освобождённые данные приходится загружать снова, что легко вызывает единичный рывок. Значение 100 не рекомендуется.

Max GPU Usage Percetage For Free

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
Usage50 ~ 10080ОбщийНемедленно

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

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

GPU Release Percetage

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
Usage10 ~ 10030ОбщийНемедленно

Процент данных в видеопамяти, освобождаемых при каждом срабатывании. Критерии ранжирования совпадают с CPU Release Percetage.

LCC2 GPU Memory Budget

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
Usage2048 ~ 81922048Только LCC2Требуется перезапуск редактора

Бюджет видеопамяти для данных splat одной модели .lcc2. Буферы сортировки не входят в этот бюджет: каждый постоянно размещённый splat дополнительно стоит 16 байт на вид.

Увеличение позволяет держать в видеопамяти больше данных одновременно и уменьшает дыры и размытость, вызванные подкачкой и выгрузкой. Но бюджет — это лишь верхний предел запроса плагина, и превышение фактически доступной видеопамяти карты наоборот замедляет работу. Бюджет ограничивает окно постоянного размещения при потоковой загрузке и не относится к одиночным форматам (.sog / .spz / .ply), которые должны находиться в памяти целиком, поэтому его изменение не влияет на объём, который можно загрузить из одного файла. См. Рендеринг.

Range For Level

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
LevelФиксированный массив из 11 чисел с плавающей точкой15, 50, 80, 110, 140, 170, 190, 220, 250, 280, 350Только LCCНемедленно

Диапазон дистанций каждого Level, в метрах. Пункт N задаёт границу дистанции, на которой действует Level N.

Это базовая таблица LOD, и её изменение напрямую влияет на все LCC Actor. Обычно её не правят напрямую, а масштабируют целиком через Level Factor у Actor. Учитывайте связь максимальной дистанции рендеринга с этой таблицей: если максимальная дистанция меньше одного из этих значений, соответствующий Level не используется.

Sort Frequency For Level

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
LevelФиксированный массив из 11 чисел с плавающей точкой5, 15, 25, 40, 50, 70, 90, 110, 130, 150, 170Только LCCНемедленно

Частота сортировки каждого Level. Чем выше Level и чем больше дистанция, тем длиннее интервал между пересортировками.

Общее увеличение значений снижает стоимость сортировки, ценой более поздних обновлений порядка прозрачности у дальних узлов. Обычно используйте Sort Factor у Actor для общего масштабирования, а не правьте эту таблицу напрямую.

Примечание: конвейер LCC2 выбирает Level по экранной погрешности и не использует Range For Level; его сортировка — глобальная сортировка по splat внутри единого Buffer, и Sort Frequency For Level в ней не участвует.

Default Traversal Type

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
TraversalSector / CircleSectorОбщийТребуется перезапуск редактора

Способ обхода узлов. Sector отбирает видимые узлы по пирамиде видимости, Circle отбирает по дистанции в форме круга.

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

Настройки пулов потоков

КатегорияДиапазонПо умолчаниюКонвейерВступает в силу
Loader / Traversal / Sort / ExporterСм. таблицу нижеСм. таблицу нижеТолько LCCТребуется перезапуск редактора

Эти пулы потоков используются модулями загрузки, обхода и сортировки конвейера LCC. Конвейер LCC2 загружает данные через собственный пул потоков движка и не зависит от этих настроек; исключение — загрузка данных коллизий, где оба конвейера используют общую конфигурацию потоков Loader.

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

У каждого из четырёх типов потоков есть две настройки: «максимальное число потоков» и «число предварительно создаваемых потоков»:

НастройкаДиапазонПо умолчаниюНазначение
Max Loader Thread Number5 ~ 10020Загрузка данных
Pre-Create Loader Thread Number0 ~ 1005Предварительно создаваемые потоки загрузки
Max Traversal Thread Number5 ~ 10020Обход узлов
Pre-Create Traversal Thread Number0 ~ 1005Предварительно создаваемые потоки обхода
Max Sort Thread Number5 ~ 10020Сортировка
Pre-Create Sort Thread Number0 ~ 1005Предварительно создаваемые потоки сортировки
Max Exporter Thread Number5 ~ 10020Экспорт данных, не связан с рендерингом во время выполнения
Pre-Create Exporter Thread Number0 ~ 1005Предварительно создаваемые потоки экспорта

Чем больше потоков, тем не обязательно лучше. Когда узкое место — дисковый ввод-вывод, добавление потоков загрузки не помогает и только усиливает конкуренцию. Повышайте предел только тогда, когда в stat xgrids видно, что очередь соответствующего потока постоянно накапливается, а у CPU есть запас.

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

Статистика

Откройте панель статистики консольной командой stat xgrids или нажмите Stats в категории Developer панели Actor.

Панель статистики производительности в реальном времени stat xgrids

Просмотр статистики производительности в реальном времени через stat xgrids

Панель состоит из трёх разделов:

РазделСтолбцыЗначение
Cycle counters (flat)CallCount, InclusiveAvg, InclusiveMax, ExclusiveAvg, ExclusiveMaxПоказатели времени. Inclusive включает вложенные вызовы, Exclusive учитывает только сам вызов
Memory CountersUsedMax, Mem%, MemPool, Pool CapacityРасход памяти и видеопамяти, где Physical означает пул физической памяти
CountersAverage, Max, MinКоличественные показатели

Cycle counters (показатели времени)

ПоказательЗначение и применение
Update CollisionВремя обновления данных коллизий. Имеет значение только после включения коллизий; высокое значение говорит о частом перестроении коллизий, поэтому уменьшите дистанцию загрузки коллизий
Update Camera InfoВремя сбора информации о камере на каждом кадре. Чем больше видов, тем выше значение; сопоставляйте его с Camera Num
Component UpdateВремя обновления компонентов на каждом кадре, стоимость на потоке Game. Накапливается, когда в одной сцене несколько LCC Actor
Get Physics Trimesh DataВремя передачи треугольных сеток коллизий в физическую систему. Появляется только во время физической запечки и является прямой причиной рывков из-за коллизий
Get From CacheВремя получения данных при попадании в кэш. По сравнению с чтением с диска это быстрый путь, поэтому высокая доля здесь — хороший признак

Memory Counters (память и видеопамять)

ПоказательЗначение и применение
CPU UsageСистемная память, занятая LCC. Смотрите вместе с CPU Occupy Percentage, чтобы оценить близость к порогу освобождения
Collision Data UsageПамять, занятая данными коллизий. Чем больше дистанция коллизий, тем выше значение, и это самый прямой выигрыш от отключения коллизий
Position Data(For Raycast) UsageПамять данных о положении, используемых для трассировки лучей. Равна 0, когда трассировка не выполняется
GPU UsageВидеопамять, занятая LCC. Измеряется иначе, чем GPU Occupy Percentage

Counters (количественные показатели)

ПоказательЗначение и применение
Total SplatsОбщее количество точек набора данных, фиксированное значение
Level0 SplatsКоличество точек Level 0, определяет выполнение условий рендеринга с полной загрузкой
Current Render Main SplatsКоличество основных точек, отрендеренных в текущем кадре. Сопоставление с Max Splat Num показывает, достигнут ли предел количества точек
Current Render NodesКоличество узлов, отрендеренных в текущем кадре
Total NodesОбщее количество узлов набора данных, фиксированное значение
Released GPU Node NumКоличество узлов, освобождённых из видеопамяти. Постоянный рост говорит о частой подкачке и выгрузке, что обычно означает недостаточный бюджет видеопамяти
Released CPU Node NumКоличество узлов, освобождённых из памяти. Оценивается так же, как выше
GPU Occupy PercentageПроцент расхода видеопамяти. При приближении к порогу Max GPU Usage освобождение вот-вот сработает
CPU Occupy PercentageПроцент расхода памяти
Loader Thread NumКоличество потоков загрузки. Повышайте предел только тогда, когда очередь накапливается, а у CPU есть запас
Pre-Loader Thread NumКоличество потоков предзагрузки
Collision Loader Thread NumКоличество потоков загрузки коллизий
Sort Thread NumКоличество потоков сортировки
Traversal Thread NumКоличество потоков обхода
Exporter Thread NumКоличество потоков экспорта, не связано с рендерингом во время выполнения
Camera NumКоличество камер, участвующих в обновлении
Camera Num(Render)Количество видов, участвующих в рендеринге, прямая основа для оценки стоимости SceneCapture, разделения экрана и nDisplay
Node Vector Pool NumКоличество объектов в пуле векторов узлов, внутренняя статистика переиспользования объектов
Valid Node NumКоличество действительных узлов, внутренняя статистика состояния

Инструменты отладки

ИнструментОписание
Debug Node BoundВизуализирует границы узлов октодерева, цвет обозначает Level (красный — наивысшая точность, белый — наименьшая). Используйте, чтобы убедиться, что параметры LOD действуют как ожидается
StatsПоказывает статистику рендеринга в реальном времени, эквивалент stat xgrids
FreezeRenderingЗамораживает текущее состояние рендеринга. После заморозки перемещение камеры больше не запускает обход, что позволяет проверить, какие узлы фактически отправлены в текущем кадре
Назад
Редактирование сцены
Далее
Руководство по оптимизации производительности