Оптимизация / Optimizing

Модератор раздела «Unreal Engine»
Модератор
Модератор
Статус
Оффлайн
Регистрация
12 Авг 2020
Сообщения
4,748
Реакции
4,753
Оптимизация проекта Corridor Environment от Megascans в Unreal engine 5
00:00 Введение и проблемы оптимизации

• Обсуждение оптимизации среды Corridor в Unreal Engine Megascans.
• Проект работает на мощной машине со скоростью 60 кадров в секунду.
• Размер проекта составляет чуть меньше 7 ГБ, что приемлемо, но можно оптимизировать.

00:55 Рекомендации по плагинам

• Установка плагина Project Cleaner для удаления неиспользуемых ресурсов.
ProjectCleaner (FREE)
Пожалуйста, авторизуйтесь для просмотра ссылки.

• Рекомендация платного плагина для изменения размера текстур.
Texture Resizer SC
Пожалуйста, авторизуйтесь для просмотра ссылки.

https://yougame.biz/threads/245108/
https://yougame.biz/threads/249870/

03:32 Использование Project Cleaner

• Сканирование проекта с помощью Project Cleaner.
• Удаление неиспользуемых ресурсов, что экономит 250 МБ.

04:27 Анализ размеров ресурсов

• Проверка размеров ресурсов в таблице размеров.
• Обнаружение больших объектов «свободные камешки», занимающих 1,4 ГБ.

06:21 Оптимизация камешков

• Уменьшение размера камешков с помощью инструмента «Упростить» в режиме моделирования.
• Снижение размера с 300 МБ до 11 МБ.

08:14 Проверка и оптимизация текстур

• Проверка размеров текстур в браузере контента.
• Уменьшение размера текстуры пола с 162 МБ до 124 МБ без заметной разницы.

11:45 Дополнительные советы по оптимизации

• Проверка других больших ресурсов в карте сайта.
• Уменьшение размера щебня с 300 МБ до 2 МБ.

13:34 Заключение

• Подчёркивание важности оптимизации ассетов, даже при использовании Nanite.
• Рекомендация не использовать текстуры размером 8 КБ без необходимости.
• Совет не допускать, чтобы проекты занимали более 50 ГБ.
 
Упрощенная оптимизация UE5: Основы
00:00 Введение в оптимизацию

• Оптимизация вызывает страх и смятение у разработчиков.
• Учебные пособия часто не соответствуют цели и могут быть неэффективными.
• Видеоролики часто содержат очевидные или слишком технические приёмы.

00:57 Цель видео

• Автор обещает показать все способы оптимизации сцен в индустрии.
• Будут рассмотрены режимы просмотра, профилировщики и распространённые сбои.

01:28 Планирование игры

• Оптимизация должна быть частью всего процесса разработки.
• Важно определить целевую частоту кадров.
• Целевая частота кадров влияет на рабочий процесс и ресурсы.

02:14 Влияние целевой частоты кадров на рабочий процесс

• 120 кадров в секунду требуют простых решений, например, запечённого освещения и LOD.
• 60 кадров в секунду сочетают простое и сложное, используются листы обрезки.
• Кинематографические игры могут достигать 45 кадров в секунду.

04:39 Детализация и текстуры

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

06:43 Тестирование на ранней стадии

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

07:26 Режимы просмотра

• Режимы просмотра помогают выявить проблемы с производительностью.
• Лёгкая сложность помогает выявить проблемы с освещением.

08:23 Проблемы с освещением

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

09:49 Заключение

• Никогда не делайте радиус затухания слишком большим.
• Всегда обращайте внимание на активы и их влияние на производительность.

10:08 Оптимизация освещения

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

11:00 Решение проблем с освещением

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

11:58 Сложность шейдеров

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

13:13 Оптимизация шейдеров

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

14:40 Пример оптимизации шейдера

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

17:28 Балансировка оптимизации и внешнего вида

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

18:16 Овердрафт и текстуры

• Движок отображает объекты в порядке их удалённости от камеры.
• Виртуальные текстуры позволяют передавать нужный уровень детализации в зависимости от расстояния.
• Качество текстур зависит от типа игры и расстояния до камеры.

20:35 Визуализация нанитов

• Рассматривайте визуализацию нанитов и овердрафт.
• Избегайте использования слишком больших текстур, например, 8 КБ.
• Оптимизируйте ресурсы для повышения производительности.

21:10 Проблемы с овердрафтами в сараях

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

22:04 Оптимизация листвы

• Маскированная листва вызывает перерасходы из-за избыточной геометрии.
• Использование LOD-листвы помогает оптимизировать перерасходы.
• Светодиоды уменьшают количество пикселей на дюйм экрана.

24:01 Уровни детализации листвы

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

25:03 Объединение сеток и полная геометрия

• Для оптимизации перерисовки Nanite нужно объединить сетки.
• Создание полной гео-листвы помогает избежать перебора.
• Всегда будет небольшой перебор, особенно с листвой.

25:55 Растровые ячейки

• Растровая ячейка — это серия пикселей с одинаковым состоянием рендеринга.
• Ресурсы в сцене должны использовать один и тот же материал.
• Группировка текстур в UDIM и использование вариаций для каждого экземпляра улучшают производительность.

28:23 Виртуальные теневые карты и кэшированная страница

• В Unreal Engine 5 кэшированная страница должна быть серой.
• В Unreal Engine 4 и более ранних версиях всё должно быть зелёным.
• Листва часто является основной причиной проблем с кэшированной страницей.

29:14 Поведение при аннулировании

• Поведение при аннулировании должно быть жёстким или статичным.
• Автоматическое поведение может привести к динамическим теням, которые усложняют вычисления.
• Жёсткое статичное поведение предотвращает недействительность сцены.

31:08 Сложность освещения и шейдеров

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

31:46 Оптимизация материалов

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

32:37 Влияние карт тумана и геометрии

• Карты тумана и сильно перекрывающая геометрия могут усложнить работу движка.
• Уменьшите количество прозрачных плёнок и используйте LOD.
• Оптимизируйте разрешение текстур: не используйте более 8000 текстур в сцене.

33:37 Растровые ячейки и группировка ресурсов

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

34:39 Виртуальные теневые карты

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

35:30 Принципы оптимизации

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

UE5: Profilers Explained

00:00 Введение в профилировщик

• Обсуждение профилировщика как инструмента для оптимизации.
• Объяснение, что оптимизация — это серия небольших шагов.
• Важность понимания инструментов профилировщика.

00:54 Благодарность и сообщество

• Благодарность участнику Discord-сообщества kegsfx за набор настраиваемых всплесков Niagara.
• Подчёркивание важности командной работы в сообществе.
• Ссылка на Discord в описании видео.

01:39 Изучение документации

• Рекомендация изучить документацию по производительности Lumen.
• Обсуждение настроек масштабируемости и их влияния на производительность.

03:34 Ожидания от Lumen

• Объяснение ожиданий Epic от частоты кадров при использовании Lumen.
• Различие между кинематографическим режимом и высоким уровнем масштабируемости.

04:31 Ограничения Unreal Engine 5

• Обсуждение ограничений Unreal Engine 5 при достижении высоких частот кадров.
• Рекомендации по выбору движка в зависимости от целей проекта.

05:17 Консольные переменные

• Пример использования консольных переменных для настройки PlayStation 5.
• Значение изучения документации для оптимизации.

07:11 Новые технологии

• Упоминание о новых технологиях Nanite и Lumen.
• Подчёркивание важности документации для понимания этих технологий.

07:51 Частота кадров в редакторе и игре

• Различие между частотой кадров в редакторе и во время игры.
• Фокус на оптимизации для игры, а не для редактора.

08:43 Инструменты профилирования

• Использование GPU-профилировщика и анализатора трассировки.
• Инструкция по открытию GPU-профилировщика через Ctrl+Shift+Comma.

09:39 Анализ производительности

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

11:34 Проблемы с разрешением тумана и прозрачностью

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

13:27 Оптимизация освещения

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

15:11 Настройки постобработки

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

16:46 Глубина теней и Nanite

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

18:39 Настройки освещения в Lumen

• Освещение сцены рассчитывается с помощью Lumen: диффузное, непрямое и окружающее освещение.
• Аппаратная трассировка лучей может быть включена или отключена в зависимости от потребностей проекта.
• Консольные команды позволяют изменять настройки, например, фильтрацию яркости.

22:01 Баланс между визуальной достоверностью и производительностью

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

22:56 Настройки основного прохода и пост-обработки

• Основной проход включает нативные объекты, программные растеризованные участки, треугольники и тесселяцию.
• Тесселяция влияет на смещение растеризованных объектов.
• Текущая производительность сцены приемлема при смещении 0,24.

23:35 Альтернативные методы тесселяции

• Параллаксное отображение может быть дешевле нанитного тесселирования.
• Уменьшение или удаление нанитного тесселирования с ландшафта может улучшить производительность.
• Рельефное отображение или параллаксное отображение могут снизить сильное смещение.

24:34 Проблемы с освещением и тенями

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

25:25 Оптимизация количества объектов

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

26:19 Использование буфера трассировки

• Буфер трассировки помогает анализировать производительность во время игры.
• Запуск трассировки и запись действий игрока позволяют выявить проблемы с производительностью.

27:13 Анализ графика пламени

• График пламени отображает процессы на временной шкале, позволяя анализировать всплески производительности.
• Компиляция шейдеров может помочь избавиться от заикания.

29:58 Проблемы с интерфейсом и персонажем

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

33:14 Инструменты оптимизации

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

35:12 Компромиссы в разработке

• Разработка игры требует компромиссов, особенно при масштабировании задачи.
• Творческие решения могут превратить компромиссы в преимущества.
• Не стоит пугаться изменений масштаба или количества аспектов игры.
 
Назад
Сверху Снизу