Unity 6.3
0 онлайн 130 гостей 3 в системе
Вход
Материалы и шейдеры Шаг 194 из 442

Как работает потоковое виртуальное текстурирование

Эта функция является экспериментальной и не готова для использования в производстве. Функция и документация могут быть изменены или удалены в будущем.

Система потокового виртуального текстурирования (SVT) разделяет текстуры на плитки.

Во время выполнения, когда SVT семплирует текстуру, он делает следующее:

  • Он считывает текстуру косвенности, вычисляет невиртуальные UV и по ним считывает кэш-текстуру.
  • Он преобразует виртуальные UV в идентификатор тайла и подключает дополнительную цель рендеринга, куда эти идентификаторы записываются. CPU асинхронно копирует эту цель обратно в основную память и обрабатывает её в отдельном потоке, формируя запросы к менеджеру асинхронного чтения на загрузку тайлов с диска в кэш в памяти GPU (если их там ещё нет).

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

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

SVT в отладочном представлении High Definition Render Pipeline

Отладочный вид High Definition Render Pipeline (HDRP) показывает, сколько соседних пикселей экрана запрашивают одну и ту же плитку.

Чтобы открыть вид отладки HDRP, перейдите в верхнее меню Unity и выберите Окно > Анализ > Отладчик рендеринга > Рендирование. Чтобы просмотреть данные отладки для SVT, установите Полноэкранный режим отладки на RequestedVirtualTextureTiles.

Отладочный вид использует различные цвета для каждой плитки ID.
Отладочный вид использует различные цвета для каждой плитки ID.

Пиксели, которые образуют одну и ту же плитку текстуры, имеют один и тот же цвет. Оттенок цвета (зеленый, красный и т.д.) представляет уровень mipmap, к которому принадлежит плитка. Например, все желтоватые плитки принадлежат к mipmap 1 текстуры.