• Игры
  • Отрасль
  • Ресурсы
  • Сообщество
  • Обучение
  • Поддержка
Услуги разработчиков
Движок Unity
Создавайте 2D и 3D игры для любой платформы
ЗагрузитьТарифы и цены
Монетизация
Встроенная покупка (IAP)
Откройте и управляйте IAP в разных магазинах
Mediation
Максимизируйте доход и оптимизируйте монетизацию
Качество рекламы
Защитите пользовательский опыт вашего приложения
Tapjoy
Создавайте долгосрочную лояльность пользователей
Все продукты монетизации
Привлечение пользователей
Привлечение пользователей
Будьте замечены и привлекайте мобильных пользователей
Unity Vector AI
Соединяйте игроков с подходящими играми
Aura - реклама на устройстве
Достигайте пользователей на устройстве в пиковые моменты вовлеченности
Все продукты для роста
Примеры использования
3D сотрудничество
Создавайте и просматривайте 3D проекты в реальном времени
Иммерсивное обучение
Обучение в иммерсивных средах
Пользовательские опыты
Создавайте интерактивные 3D опыты
Все отраслевые решения
Отрасли
Производство
Достигнуть операционного совершенства
Торговля
Преобразовать опыт в магазине в онлайн-опыт
Автомобильная отрасль
Повысить инновации и опыт в автомобиле
Все отрасли
Техническая библиотека
Документация
Официальные руководства пользователя и ссылки на API
Инструменты для разработчиков
Версии релизов и трекер проблем
План развития
Обзор предстоящих функций
Глоссарий
Библиотека технических терминов
Дополнительная информация
Истории успеха
Истории успеха из реальной жизни
Руководства по лучшим практикам
Советы и хитрости от экспертов
Все ресурсы
Что нового
Блог
Обновления, информация и технические советы
Новости
Новости, истории и пресс-центр
Сообщество
Обсуждения
Обсуждать, решать проблемы и соединяться
События
Глобальные и местные события
Истории сообщества
Made with Unity
Показ Unity-креаторов
Прямые трансляции
Присоединяйтесь к разработчикам, креаторам и инсайдерам
Награды Unity
Празднование Unity-креаторов по всему миру
Для каждого уровня
Unity Learn
Освойте навыки Unity бесплатно
Профессиональное обучение
Повышайте уровень своей команды с тренерами Unity
Не использовали Unity раньше
С чего начать
Приступите к обучению
Основные пути Unity
Не использовали Unity раньше? Начните свое путешествие
Практические руководства
Практические советы и лучшие практики
Образование
Для студентов
Запустите свою карьеру
Для преподавателей
Улучшите свое преподавание
Лицензия Education Grant
Принесите мощь Unity в ваше учебное заведение
Программы сертификации
Докажите свое мастерство в Unity
Варианты поддержки
Получить помощь
Помогаем вам добиться успеха с Unity
Планы успеха
Достигайте своих целей быстрее с помощью экспертов
FAQ
Ответы на часто задаваемые вопросы
Связаться с нами
Свяжитесь с нашей командой
Тарифы и цены
Язык
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Соцсети
Валюта
Купить
  • Продукты
  • Unity Ads
  • Подписка
  • Unity Asset Store
  • Торговые посредники
Образование
  • Студенты
  • Преподаватели
  • Образовательные учреждения
  • Сертификация
  • Learn
  • Программа развития навыков
Загрузить
  • Unity Hub
  • Архив загрузок
  • Программа бета-тестирования
Unity Labs
  • Лаборатории
  • Публикации
Ресурсы
  • Платформа обучения
  • Сообщество
  • Документация
  • Unity QA
  • FAQ
  • Статус услуг
  • Истории успеха
  • Made with Unity
Unity
  • Наша компания
  • Новостная рассылка
  • Блог
  • События
  • Вакансии
  • Справка
  • Пресса
  • Партнеры
  • Инвесторы
  • Партнеры
  • Безопасность
  • Отдел Social Impact
  • Инклюзия и разнообразие
  • Связаться с нами
© Unity Technologies, 2025
  • Правовая информация
  • Политика конфиденциальности
  • Cookie-файлы
  • Использование персональных данных

Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.

Hero background image

Оптимизация производительности для высококачественной графики на ПК и консолях

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

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

  • Настройте ваш проект Unity для более высокой производительности
  • Управление использованием GPU для игр на ПК и консолях
  • Расширенное программирование и архитектура кода
  • Улучшенная физическая производительность для плавного игрового процесса

Смотрите наши последние руководства по оптимизации для разработчиков и художников Unity 6:

  • Оптимизируйте производительность вашей игры для мобильных устройств, XR и веб-платформы в Unity
  • Оптимизируйте производительность вашей игры для консолей и ПК в Unity

Графические инструменты Unity позволяют создавать оптимизированную графику в любом стиле на различных платформах – от мобильных до высококачественных консолей и настольных ПК. Этот процесс обычно зависит от вашего художественного направления и рендер-пайплайна, поэтому перед началом работы мы рекомендуем ознакомиться с Доступными рендер-пайплайнами.

  • Приверженность рендер-пайплайну
  • Прямое рендеринг
  • Отложенное рендеринг
  • Графики шейдеров
  • Удалить встроенные настройки шейдеров
  • Удалить варианты шейдеров
  • Сгладить края с помощью сглаживания
  • Пространственно-временная постобработка
  • Запекание световых карт
  • Минимизировать отражающие пробы
  • Отключить тени
  • Заменить эффект шейдера
  • Использовать световые слои
  • Использовать Lightmapper на GPU

Приверженность рендер-пайплайну

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

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

Unity предоставляет три предустановленных рендер-пайплайна с различными возможностями и характеристиками производительности, или вы можете создать свой собственный.

1. Универсальный рендер-пайплайн (URP) является предустановленным Скриптовым рендер-пайплайном (SRP). URP предоставляет удобные для художников рабочие процессы для создания оптимизированной графики на различных платформах, от мобильных до высокопроизводительных консолей и ПК. URP является преемником встроенного рендер-пайплайна, предоставляя графические и рендеринговые функции, недоступные в старом пайплайне. Чтобы поддерживать производительность, он делает компромиссы для снижения вычислительных затрат на освещение и затенение. Выберите URP, если хотите охватить наибольшее количество целевых платформ, включая мобильные устройства и VR.

Получите полное представление о возможностях URP в электронной книге Введение в Универсальный рендер-пайплайн для продвинутых создателей Unity (издание Unity 6).

2. Рендер-пайплайн высокой четкости (HDRP) является еще одним предустановленным SRP, разработанным для передовой графики высокой четкости. HDRP предназначен для высокопроизводительных платформ, включая ПК, Xbox и PlayStation. Это рекомендуемый рендер-пайплайн для создания фотореалистичной графики с самым высоким уровнем реализма в вашей игре, с продвинутым освещением, отражениями и тенями. HDRP использует физически обоснованное освещение и материалы и поддерживает улучшенные инструменты отладки.

Получите полное представление о возможностях HDRP в электронной книге Освещение и окружения в высококачественном рендер-пайплайне.

3. Встроенный рендер-пайплайнявляется старым, универсальным рендер-пайплайном Unity с ограниченной настройкой. Этот пайплайн будет поддерживаться на протяжении всего цикла Unity 6.x.

Unity_Time Ghost демо
Изображение из высококачественного демо Unity Time Ghost

Прямое рендеринг

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

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

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

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

Forward +

Forward+ рендеринг улучшает стандартный прямой рендеринг, отсекая источники света пространственно, а не по объектам. Это увеличивает общее количество источников света, которые могут быть использованы для рендеринга кадра. В отложенном рендеринге поддерживается API Native RenderPass, что позволяет объединять G-буфер и освещение в один проход рендеринга.

Иллюстрация того, как работает упреждающий рендеринг.
Иллюстрация того, как работает упреждающий рендеринг.

Отложенное рендеринг

В отложенном шейдинге освещение не рассчитывается для каждого объекта.

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

В первом проходе, или проходе G-Buffer геометрии, Unity рендерит игровые объекты. Этот проход извлекает несколько типов геометрических свойств и сохраняет их в набор текстур. Текстуры G-буфера могут включать:

  • диффузные и зеркальные цвета.
  • гладкость поверхности.
  • окклюзия.
  • нормали в мировом пространстве.
  • эмиссия + окружающее освещение + отражения + световые карты.

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

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

Иллюстрация того, как работает путь рендеринга с отложенным шейдингом.
Иллюстрация того, как работает путь рендеринга с отложенным шейдингом.

Графики шейдеров

Как HDRP, так и URP поддерживают Shader Graph, визуальный интерфейс для создания шейдеров. Это позволяет некоторым пользователям создавать сложные эффекты затенения, которые ранее могли быть недоступны. Используйте более 150 узлов в визуальной графической системе для создания большего количества шейдеров. Вы также можете создать свои собственные пользовательские узлы с помощью API.

Начните каждый Shader Graph с совместимого мастер-узла, который определяет выходные данные графа. Добавляйте узлы и операторы с помощью визуального интерфейса и создавайте логику шейдера.

Этот Shader Graph затем передается в бэкенд рендер-пайплайна. Конечный результат - это шейдер ShaderLab, функционально аналогичный написанному на HLSL или Cg.

Оптимизация Shader Graph следует многим тем же правилам, которые применяются к традиционным шейдерам HLSL/Cg. Чем больше обработки выполняет ваш Shader Graph, тем больше это повлияет на производительность вашего приложения.

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

Если вы ограничены по GPU, следуйте этим рекомендациям для улучшения производительности с Shader Graphs:

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

- Используйте меньший формат данных: Переключитесь на меньшую структуру данных, когда это возможно. Рассмотрите возможность использования Vector2 вместо Vector3, если это не повлияет на ваш проект. Вы также можете уменьшить точность, если ситуация позволяет (например, half вместо float).

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

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

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

- Ручная оптимизация: Даже если вы опытный графический программист, вы все равно можете использовать Shader Graph для создания некоторого шаблонного кода для шейдера на основе скриптов. Выберите активы Shader Graph, затем выберите Копировать шейдериз контекстного меню.

Создайте новый HLSL/Cg шейдер и затем вставьте скопированный Shader Graph. Это односторонняя операция, но она позволяет вам получить дополнительную производительность с помощью ручных оптимизаций.

ВИЗУАЛЬНЫЙ ИНТЕРФЕЙС НА ОСНОВЕ УЗЛОВ ДЛЯ СОЗДАНИЯ ШЕЙДЕРОВ В SHADER GRAPH
Визуальный интерфейс на основе узлов для разработки шейдеров в Shader Graph

Удалить встроенные настройки шейдеров

Удалите каждый шейдер, который вы не используете, из списка Всегда включенные шейдеров в настройках графики (Правка > Настройки проекта > Графика). Добавьте шейдеры здесь, которые вам понадобятся на протяжении всего срока службы приложения.

Всегда включенные шейдеры
Всегда включенные шейдеры

Удалить варианты шейдеров

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

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

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

Анализируйте Editor.log для времени и размера шейдера. Найдите строки, которые начинаются с "Скомпилированный шейдер" и "Сжатый шейдер". В примере журнала ваш шейдер TEST может показать вам:

Скомпилированный шейдер 'TEST Standard (Specular setup)' за 31.23с

d3d9 (всего внутренних программ: 482, уникальных: 474)

d3d11 (всего внутренних программ: 482, уникальных: 466)

metal (всего внутренних программ: 482, уникальных: 480)

glcore (всего внутренних программ: 482, уникальных: 454)

Сжатый шейдер 'TEST Standard (Specular setup)' на d3d9 с 1.04MB до 0.14MB

Сжатый шейдер 'TEST Standard (Specular setup)' на d3d11 с 1.39MB до 0.12MB

Сжатый шейдер 'TEST Standard (Specular setup)' на metal с 2.56MB до 0.20MB

Сжатый шейдер 'TEST Standard (Specular setup)' на glcore с 2.04MB до 0.15MB

Это говорит вам несколько вещей об этом шейдере:

- Шейдер расширяется в 482 варианта из-за #pragma multi_compile и shader_feature.

- Unity сжимает шейдер, включенный в данные игры, примерно до суммы сжатых размеров: 0.14+0.12+0.20+0.15 = 0.61MB.

- Во время выполнения Unity хранит сжатые данные в памяти (0.61MB), в то время как данные для вашего текущего графического API не сжаты. Например, если ваш текущий API - Metal, это составит 2.56MB.

После сборки Project Auditor может разобрать Editor.log, чтобы отобразить список всех шейдеров, ключевых слов шейдеров и вариантов шейдеров, скомпилированных в проект. Он также может проанализировать Player.log после запуска игры. Это показывает, какие варианты приложение фактически скомпилировало и использовало во время выполнения.

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

Прочитайте блог Stripping scriptable shader variants, чтобы увидеть этот процесс в деталях.

Сгладить края с помощью сглаживания

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

Если вы используете прямое рендеринг с встроенным рендер-пайплайном, Multisample Anti-aliasing (MSAA) доступен в Quality settings. MSAA обеспечивает высококачественное сглаживание, но может быть затратным. MSAA Sample Count из выпадающего меню (Нет, 2X, 4X, 8X) определяет, сколько образцов рендерер использует для оценки эффекта.

Если вы используете прямое рендеринг с URP или HDRP, вы можете включить MSAA в активе рендер-пайплайна.

В качестве альтернативы вы можете добавить сглаживание в качестве эффекта постобработки. Это отображается в компоненте камеры под Anti-aliasing:

- Быстрое приближенное сглаживание (FXAA) сглаживает края на уровне пикселей. Это наименее ресурсоемкое сглаживание и слегка размывает финальное изображение.

- Субпиксельное морфологическое сглаживание (SMAA) смешивает пиксели на основе границ изображения. Это дает гораздо более четкие результаты, чем FXAA, и подходит для плоских, мультяшных или чистых художественных стилей.

В HDRP вы также можете использовать FXAA и SMAA с настройкой Пост-антиалиасинг на Камере. URP и HDRP также предлагают дополнительный вариант:

- Темпоральный антиалиасинг (TAA) сглаживает края, используя кадры из буфера истории. Это работает более эффективно, чем FXAA, но требует векторов движения для работы. TAA также может улучшить амбиентное затенение и объемные эффекты. Он, как правило, имеет более высокое качество, чем FXAA, но требует больше ресурсов и может создавать случайные артефакты призраков.

В URP найдите настройки MSAA в активе Рендер Пайплайна.
В URP найдите настройки MSAA в активе Рендер Пайплайна.

Пространственная временная постобработка

Пространственно-временная постобработка (STP) предназначена для улучшения визуального качества на широком спектре платформ, таких как мобильные устройства, консоли и ПК. STP — это пространственно-временной антиалиасинг, который работает как с HDRP, так и с URP, предлагая высококачественное масштабирование контента без необходимости изменения существующего контента. Это решение особенно оптимизировано для производительности GPU, обеспечивая более быстрое время рендеринга и упрощая достижение высокой производительности при сохранении визуального качества.

Чтобы включить STP в URP:

- Выберите активный актив URP в окне Проекта.

- В инспекторе перейдите к Качество > Фильтр масштабирования и выберите Пространственно-временная постобработка.

Включение STP в актив URP
Включение STP в актив URP

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

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

Добавьте драматическое освещение к вашей статической геометрии, используя Глобальное освещение (GI). Отметьте объекты с Вносить вклад в GI , чтобы вы могли хранить высококачественное освещение в виде световых карт.

Процесс генерации освещенной среды занимает больше времени, чем просто размещение света в сцене в Unity, но это:

- Работает быстрее, в 2-3 раза быстрее для двухпиксельных источников света

- Смотрится лучше – GI может рассчитывать реалистичное прямое и непрямое освещение. Светоотражатель сглаживает и уменьшает шум на полученной карте.

Запеченные тени и освещение могут затем рендериться без той же потери производительности, что и освещение и тени в реальном времени.

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

Следуйте этому руководству, чтобы начать работу с Lightmapping в Unity.

Корректируйте настройки карт освещения (Windows > Rendering > Lighting Settings) и их размер, чтобы ограничить использование памяти.
Корректируйте настройки карт освещения (Windows > Rendering > Lighting Settings) и их размер, чтобы ограничить использование памяти.

Минимизировать отражающие пробы

Компонент Reflection Probe может создавать реалистичные отражения, но это может быть очень затратно с точки зрения партий. Используйте кубические карты низкого разрешения, маски отсечения и сжатие текстур для улучшения производительности во время выполнения. Используйте Тип: Запеченный, чтобы избежать обновлений на каждом кадре.

Если используется Тип: Реальное время необходимо в URP, избегайте Каждый кадр, если это возможно. Настройте Режим обновления и Разделение времени, чтобы уменьшить частоту обновления. Вы также можете контролировать обновление с помощью опции Через скрипт и рендерить зонд из пользовательского скрипта.

Если используется Тип: Реальное время необходимо в HDRP, используйте По запросу режим. Вы также можете изменить настройки кадра в Настройки проекта > Настройки по умолчанию HDRP. Снизьте качество и функции в разделе Реальное отражение для улучшения производительности.

Снизьте качество и функции в разделе Реальное отражение для улучшения производительности.

Каждый зонд отражений запечатлевает окружение в кубической текстуре.
Каждый зонд отражений запечатлевает окружение в кубической текстуре.

Используйте адаптивные объемы проб (APV)

Unity 6 вводит адаптивные объемы проб (APV), которые предоставляют сложное решение для обработки глобального освещения в Unity, позволяя динамическое и эффективное освещение в сложных сценах. APV могут оптимизировать как производительность, так и визуальное качество, особенно на мобильных и низкокачественных устройствах, предлагая при этом расширенные возможности для высококачественных платформ.

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

Данные APV могут передаваться с диска на ЦП и ГП, оптимизируя информацию об освещении для больших окружений. Разработчики могут запекать и смешивать несколько сценариев освещения, позволяя реалистичные переходы, такие как циклы день/ночь. Система также поддерживает окклюзию неба, интегрируется с API Ray Intersector для более эффективных расчетов проб и предлагает контроль над плотностью выборки Light Probe, чтобы уменьшить утечку света и ускорить итерации. Новый API запекания C# также позволяет независимое запекание APV от световых карт или отражающих проб.

Чтобы начать использовать APV, ознакомьтесь с докладом Эффективное и значительное освещение с адаптивными объемами проб с GDC 2023.

Наличие нескольких APV полезно для большего контроля над плотностью проб в уровне.
Наличие нескольких APV полезно для большего контроля над плотностью проб в уровне.

Отключить тени

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

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

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

Отключите тени, чтобы сократить число вызовов отрисовки.
Отключите тени, чтобы сократить число вызовов отрисовки.

Заменить эффект шейдера

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

Использовать световые слои

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

 Слои могут ограничить влияние освещения на определенную маску отсечения.
Слои могут ограничить влияние освещения на определенную маску отсечения.

Использовать Lightmapper на GPU

GPU Lightmapper готов к производству в Unity 6. Он значительно ускоряет генерацию данных освещения, используя GPU, предлагая значительно более быстрое время запекания по сравнению с традиционным запеканием света на CPU. Он вводит новый бэкенд для запекания света, который упрощает кодовую базу и обеспечивает более предсказуемые результаты. Кроме того, минимальные требования к GPU были снижены до 2 ГБ, и также включает новый API для перемещения позиций световых проб в реальном времени, что особенно полезно для процедурно генерируемого контента, наряду с различными улучшениями качества жизни.

Выбор GPU Lightmapper
Выбор GPU Lightmapper
Электронные книги Unity
Больше советов для Unity 6

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

Больше лучших практик