Hero background image
Unity 2020.1 release
Новые функции и обновления графической системы
Этот выпуск стабилизирует существующие и вводит новые функции для технических художников и программистов графики, работающих в Unity. В этот список включены Camera Stacking и Universal Render Pipeline, а также улучшения системы освещения, например оптимизации алгоритмов построения карт освещения.

Что нового в Unity 2020.1

Discover some of the major updates for graphics in Unity 2020.1. For full details, check out the release notes.

Youtube video thumbnail
Camera Stacking в Universal Render Pipeline

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

Теперь для этого можно использовать инструмент Camera Stacking, который комбинирует изображение с нескольких камер в один видеопоток. Он позволяет создавать такие эффекты, как отображение 3D-модели в двухмерном пользовательском интерфейсе или кабину машины. Смотрите документацию для сведений по текущим ограничениям.

Youtube video thumbnail
Обновления системы освещения

Ассеты Lighting Setting — это объекты, которые хранят настройки освещения для нескольких сцен. Это означает возможность быстро применять несколько атрибутов к сценам проекта, что удобно для художников по освещению, которым нужно внести глобальные изменения освещения в проект. Теперь настраивать освещение станет гораздо легче, например при смене предварительного и готового запеченного освещения.

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

Примечание: Примечание: в ролике выше показан фрагмент проекта Enter the Room, созданного Неддом для ICRC.

Упаковка без наложений
Упаковка без наложений

Упрощена настройка моделей для построения карт освещения.

Для создания карты освещения объекты сначала следует «развернуть» в двухмерное координатное пространство (UV). Это значит, что все грани должны занимать свое уникальное место на карте освещения. Перекрывающиеся участки могут создавать дефекты освещения и другие нежелательные визуальные артефакты на готовом изображении.

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

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

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

GPU и CPU Lightmapper: Улучшение выборки
GPU и CPU Lightmapper: Улучшение выборки

Корреляция в трассировке пути — это явление, приводящее к артефактам и шумам на отдельных участках сцены с запеченным освещением. В Unity 2020.1 мы реализовали метод устранения корреляции для инструментов CPU Lightmapper и GPU Lightmapper.

Эти улучшения активированы по умолчанию и не требуют вмешательства пользователя. Врезультате получаются карты освещения с меньшим количеством шумов и артефактов за более короткое время.

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

В Unity 2020.2 эта функция будет улучшена, что уже можно наблюдать в альфа-версиях.

Оптимизация карт освещения
Оптимизация карт освещения

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

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

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

Изображение выше демонстрирует проект Enter the Room, созданный Неддом для ICRC.

Поддержка запеченных шаблонов
Поддержка запеченных шаблонов

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

Раньше эти шаблоны можно было применить только к источникам света реального времени, но в Unity 2020.1 они поддерживают CPU/GPU Lightmapper. Иными словами, источники света запеченного и смешанного типа также учитывают влияние шаблона для затенения как прямого, так и отраженного света.

Поддержка шаблонов в запеченном освещении — это основа поддержки стандарта IES в будущих выпусках для наших клиентов в области архитектуры.

Режимы отображения Contributors и Receivers для сцены
Режимы отображения Contributors и Receivers для сцены

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

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

Этот режим особенно полезен при использовании зондов, поскольку он предоставляет информацию об их использовании. Для удобства восприятия цвета можно настроить на панели Preference.

Трассировка лучей для анимированных мешей (предварительная версия)
Streaming Virtual Texturing (предварительная версия)
Streaming Virtual Texturing (предварительная версия)

Streaming Virtual Texturing — это функция, снижающая потребление памяти ГП и ускоряющая загрузку большого количества текстур высокого разрешения в сцене. Алгоритм работает путем разбивки текстур на плитки с их постепенной загрузкой в память по мере необходимости. Теперь эта функция поддерживается в High Definition Render Pipeline (9.x-Preview и выше) и Shader Graph.

Возможности предварительной версии пакета можно увидеть в примере проекта. Не забудьте рассказать о своих впечатлениях на форуме.

Загрузить Unity 2020.1 сейчас
Загрузить Unity 2020.1 сейчас

Получите доступ к новейшим инструментам и функциям уже сегодня.