На этой странице объясняется, как работает конвейер рендеринга со сценариями (SRP) в Unity, а также вводятся некоторые ключевые понятия и терминология. Информация на этой странице применима к универсальному конвейеру рендеринга (URP), конвейеру рендеринга высокого разрешения (HDRP) и пользовательским конвейерам рендеринга, основанным на SRP.
Скриптовый конвейер рендеринга – это тонкий слой API, который позволяет планировать и настраивать рендерингпроцесс вывода графики на экран. (или к текстуре рендера). По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
См. в Словарь с использованием команд C# скриптыФрагмент кода, который позволяет вам создавать свои собственные Компоненты, запускать игровые события, изменять свойства Компонентов с течением времени и реагировать на вводимые пользователем данные любым удобным для вас способом. подобно. Подробнее
См. в Словарь. Unity передает эти команды своей низкоуровневой графической архитектуре, которая затем отправляет инструкции графическому API.
URP и HDRP созданы на основе SRP. Вы также можете создать собственный конвейер рендеринга поверх SRP.
Экземпляр конвейера рендеринга и актив конвейера рендеринга
Каждый конвейер рендеринга на основе SRP имеет два ключевых настраиваемых элемента:
- A Экземпляр конвейера рендеринга. Это экземпляр класса, определяющий функциональность вашего конвейера рендеринга. Его сценарий наследуется от RenderPipeline и переопределяет его метод
Render()
. - A Актив конвейера рендеринга. Это актив в вашем проекте Unity, в котором хранятся данные о том, какой экземпляр конвейера рендеринга использовать и как его настроить. Его сценарий наследуется от RenderPipelineAsset и переопределяет его метод
CreatePipeline()
.
Дополнительную информацию об этих элементах и инструкции по их созданию в пользовательском конвейере рендеринга см. в разделе Создание Актив конвейера рендеринга и экземпляр конвейера рендеринга.
Контекст ScriptableRenderContext
ScriptableRenderContext
— это класс, выступающий в качестве интерфейса между пользовательским кодом C# в конвейере рендеринга и низкоуровневым графическим кодом Unity.
Используйте API ScriptableRenderContext для планирования и выполнения команд рендеринга. Дополнительную информацию см. в разделе Планирование и выполнение команд рендеринга в Scriptable Render Pipeline.
Точки входа и обратные вызовы
При работе с SRP используйте их, чтобы Unity вызывала ваш код C# в определенное время.
- RenderPipeline.Render — это основная точка входа в SRP. Unity вызывает этот метод автоматически. Если вы пишете собственный конвейер рендеринга, здесь вы начинаете писать свой код.
- Класс RenderPipelineManager содержит следующие события, на которые вы можете подписаться, чтобы выполнять пользовательский код в определенных точках цикла рендеринга: