Введение в систему графов рендеринга в URP
Система графов рендеринга представляет собой набор APIs из пакета Core Scriptable Render Pipeline (SRP). Вы используете APIs для написания Scriptable Render Pass в Universal Render Pipeline (URP).
Когда вы используете график отображения API для создания Скриптового Прохода Отображения, вы сообщаете URP следующее:
- Текстуры или текстуры рендеринга для использования. Этот этап является этапом записи.
- Графические команды для выполнения, используя текстуры или рендеринг текстур из стадии записи. Эта стадия является стадией выполнения.
Вы можете тогда вставьте свой Scriptable Render Pass в URP рендерер. Ваш Scriptable Render Pass становится частью внутреннего графа рендеринга URP — последовательности проходов рендеринга, которые URP выполняет каждый кадр.
Система графа рендеринга автоматически оптимизирует график, чтобы минимизировать количество проходов рендеринга, а также память и пропускную способность, используемые проходами рендеринга.
Как система графиков оптимизирует отображение
Система графов отображения выполняет следующие действия для оптимизации отображения:
- Избегает выделения ресурсов, которые не используются фреймом.
- Удаляет проходы рендеринга, если окончательный кадр не использует их выход.
- Оптимизирует GPU память, например, повторно используя выделенную память, если текстура имеет те же свойства, что и предыдущая текстура.
- Автоматически синхронизирует вычислительные и графические командные очереди GPU, если используются вычислительные шейдеры.
На мобильных платформах, которые используют отложенное отображение на основе плиток (TBDR), система графического отображения также может объединять несколько проходов отображения в один проход отображения. Проход отображения сохраняет текстуры в памяти плиток, а не копирует текстуры из GPU в CPU.. В результате URP использует меньше пропускной способности памяти и времени отображения.
Чтобы проверить, как система графиков отображения оптимизирует отображение в ваших пользовательских проходах отображения, см. Анализ графика отображения.
Ресурсы в графической системе отображения
Чтобы объявить ресурс и использовать его в проходе рендеринга, например текстуру или список объектов для рендеринга, вызовите систему графов рендеринга APIs, которая возвращает адрес ресурса. Вы не можете напрямую выделять или удалять ресурсы самостоятельно.
Система графов рендеринга выделяет память для ресурса только перед первым прохождением рендеринга, который записывает в него, и высвобождает память после последнего прохождения рендеринга, которое читает его. Это позволяет графам рендеринга управлять памятью наиболее эффективным способом и избегать выделения памяти для ресурсов, которые не используются в кадре.
Ресурсы можно создавать двумя способами:
- Создайте ресурс внутри прохода рендеринга. Такие ресурсы называются внутренними: их временем жизни управляет система графа рендеринга. Обратиться к ним вне экземпляра графа рендеринга, а также передать их между кадрами или камерами нельзя. Дополнительные сведения см. в Создание временной текстуры для одного кадра.
- Импорт существующего ресурса из-за пределов прохода рендеринга, например, буфера камеры или текстур, которые график рендеринга должен использовать в нескольких кадрах. Эти ресурсы называются импортированными или внешними ресурсами. График рендеринга не управляет сроком жизни этих ресурсов, поэтому вы передаёте их между кадрами и камерами. Дополнительную информацию см. в Использование текстуры в нескольких проходах рендеринга.