ScriptableRenderContext
структура в UnityEngine.Rendering
Выполнено в:UnityEngine.CoreModule
Описание
Задаёт состояние и команды отрисовки, используемые пользовательскими конвейерами рендеринга.
Когда вы определяете пользовательский RenderPipeline, вы используете ScriptableRenderContext, чтобы планировать и отправлять на GPU обновления состояния и команды отрисовки.
Реализация метода RenderPipeline.Render обычно удаляет объекты, которые конвейер рендеринга не должен рендеринговать для каждого Camera (см. CullingResults), а затем выполняет серию вызовов ScriptableRenderContext.DrawRenderers, смешанных с вызовами ScriptableRenderContext.ExecuteCommandBuffer. Эти вызова устанавливают глобальные свойства Shader, изменяют цели рендеринга, отправляют вычисления shader и выполняют другие задачи рендеринга. Чтобы выполнить цикл рендеринга, вызовите ScriptableRenderContext.Submit.
Дополнительные ресурсы: RenderPipeline.
Открытые методы
| Метод | Описание |
|---|---|
| BeginRenderPass | Расписывает начало нового прохода рендеринга. В любой момент времени может быть активен только один проход рендеринга. |
| BeginScopedRenderPass | Планирует начало нового прохода рендеринга. Если вызвать этот метод в операторе using, Unity автоматически вызывает EndRenderPass при выходе из блока using. Одновременно может быть активен только один проход рендеринга. |
| BeginScopedSubPass | Планирует начало нового подпрохода внутри прохода рендеринга. Если вызвать этот метод в операторе using, Unity автоматически выполнит EndSubPass при выходе из блока using. Проходы рендеринга не могут существовать отдельно: каждый из них должен содержать хотя бы один подпроход. Одновременно активным может быть только один подпроход. |
| BeginSubPass | Расписывает начало нового подпрохода внутри прохода рендеринга. Проходы рендеринга никогда не могут быть самостоятельными, они всегда должны содержать по крайней мере один подпроход. Только один подпроход может быть активен в любой момент времени. |
| CreateGizmoRendererList | Создает новый Гизмо RendererList. |
| CreateRendererList | Создает новый рендерер RendererList. |
| CreateShadowRendererList | Создает новую тень RendererList. |
| CreateSkyboxRendererList | Создает новый skybox RendererList. |
| CreateUIOverlayRendererList | Создает новый UIOverlay RendererList. |
| CreateWireOverlayRendererList | Создает новый WireOverlay RendererList. |
| Cull | Выполняет отбор на основе ScriptableCullingParameters, обычно получаемого из Camera, который в настоящее время отображается. |
| CullShadowCasters | Выполняет отбор теневых бросателей для всех видимых светов. |
| DrawGizmos | Расписывает рисование подмножества Gizmos (до или после последующей обработки) для заданного Camera. |
| DrawUIOverlay | Нарисуйте накладку UI. |
| DrawWireOverlay | Расписывает рисование наложения проводника для заданного представления Scene Camera. |
| EndRenderPass | Расписывает окончание текущего активного прохода рендеринга. |
| EndSubPass | Расписывает окончание текущего активного подпрохода. |
| ExecuteCommandBuffer | Расписывает выполнение пользовательского графического командного буфера. |
| ExecuteCommandBufferAsync | Расписывает выполнение Командного Буфера в очереди асинхронных вычислений. Переданный ComputeQueueType определяет порядок очереди. |
| HasInvokeOnRenderObjectCallbacks | Проверьте, не зарегистрированы ли обратные вызова OnRenderObject для каких-либо объектов в сцене. |
| InvokeOnRenderObjectCallback | Расписывает вызов обратного вызова OnRenderObject для скриптов MonoBehaviour. |
| PrepareRendererListsAsync | Начинает обработку предоставленного RendererLists в фоновом режиме. |
| QueryRendererListStatus | Запрос статуса RendererList. |
| SetupCameraProperties | Расписывает настройку глобальных переменных Shader, специфических для Camera. |
| StartMultiEye | Расписывает начало мелкозернистого стерео-рендеринга на ScriptableRenderContext. |
| StereoEndRender | Расписание уведомления о завершении стерео рендеринга на одном кадре. |
| StopMultiEye | Расписывает остановку стерео-рендеринга на ScriptableRenderContext. |
| Submit | Передаёт все запланированные команды в цикл отображения для выполнения. |
| SubmitForRenderPassValidation | Этот метод отправляет все запланированные команды в цикл рендеринга для проверки. Проверка проверяет, могут ли выполняться запланированные команды в проходах рендеринга, начатых с вызова BeginRenderPass. |
Статические методы
| Метод | Описание |
|---|---|
| EmitGeometryForCamera | Выдаёт геометрию UI для рендеринга для указанной камеры. |
| EmitWorldGeometryForSceneView | Выводит геометрию UI в вид Scene для отображения. |
| PopDisableApiRenderers | Включить возможность немедленного добавления и удаления узлов сцены рендерера в массивы сцены. |
| PushDisableApiRenderers | Предотвращает немедленное добавление или удаление узлов сцены рендерера в массивы сцены. Это защищает от создания недействительных индексов или указателей, вызванных изменениями в массивах сцены после вычисления вывода очистки. |