Система акриловых слоев — MRTK3

Внимание!

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

Эта экспериментальная функция позволяет поверхностям выглядеть полупрозрачными (например, матовое стекло). Акриловые ресурсы можно использовать для создания эффекта размытого фона на задних панелях, похожего на акриловый материал в Windows. Эти ресурсы требуют использования конвейера универсальной отрисовки.

Образец системы акрилового слоя

Важно!

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

Использование

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

Система состоит из следующих компонентов:

Вспомогательный компонент акрила

Назначьте этот компонент (скрипт) каждой задней части, использующей акриловый материал. Этот компонент уведомляет диспетчер акрилового слоя всякий раз, когда объект включен или отключен. Акриловый шейдер в настоящее время поддерживает два слоя (0 и 1).

Диспетчер акриловых слоев

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

Менеджер поддерживает два метода записи фонового изображения:

  1. Копирование framebuffer: записывает копию текущего фреймбаффера со сниженным качеством изображения во время рендеринга URP с помощью набора проходов функции рендерера
  2. Отрисовка в текстуру: отрисовывает отдельное изображение с уменьшенным разрешением фоновых объектов

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

Также есть возможность постепенного наложения обновленной карты в течение нескольких кадров (если карта не обновляется каждый кадр).

Расширенное использование

Параметры редактора

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

Примечание

Эта функция работает только с методом захвата Copy Framebuffer.

Параметры для конкретной платформы

При построении для Quest с помощью стерео-представления используйте следующий код в компоненте Менеджера акрилового слоя:

Capture Method = Copy Framebuffer Filter Method = Kawase Update Period = 1

Пример

Посмотрите пример Акрила (экспериментальная) для демонстраций системы акрилового слоя.

Дополнительные материалы

Акриловый материал в Windows— исследование быстров алгоритмов размытия изображений на основе GPU в реальном времени