Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

RenderPipeline.BeginContextRendering

Объявление

protected static void BeginContextRendering(Rendering.ScriptableRenderContext context, List cameras);

Описание

Вызывает делегаты RenderPipelineManager.beginContextRendering и RenderPipelineManager.beginFrameRendering.

Используйте делегаты, которые вызывает этот метод, для реализации функций в начале RenderPipeline.Render.

В универсальном конвейере рендеринга (URP) и конвейере рендеринга высокого разрешения (HDRP) Unity автоматически вызывает этот метод в начале RenderPipeline.Render. Если вы пишете собственный Scriptable Render Pipeline, вы можете сами вызвать этот метод в том же месте. Эта функция несовместима со встроенным конвейером рендеринга.

Делегаты, вызываемые этим методом, работают одинаково друг с другом, за исключением того, что RenderPipelineManager.beginFrameRendering вызывает выделение кучи и RenderPipelineManager.beginContextRendering не работает. Поэтому следует использовать RenderPipelineManager.beginContextRendering, чтобы избежать ненужного выделения кучи и сборки мусора.

Этот метод заменяет RenderPipeline.BeginFrameRendering. Он делает все то же, что и метод, и, кроме того, вызывает делегата RenderPipelineManager.beginContextRendering. Если вы пишете собственный конвейер рендеринга с поддержкой сценариев, используйте этот метод вместо RenderPipeline.BeginFrameRendering.

В следующем примере кода показано, как вызвать этот метод, если вы создаете собственный конвейер рендеринга с поддержкой сценариев:

using UnityEngine; using UnityEngine.Rendering; using System.Collections.Generic; public class ExampleRenderPipelineInstance : RenderPipeline { public ExampleRenderPipelineInstance() { } override protected void Render(ScriptableRenderContext context, List<Camera> cameras) { // Call the RenderPipelineManager.beginContextRendering and RenderPipelineManager.beginFrameRendering delegates BeginContextRendering(context, cameras); // Put the rest of your Render method code here } // Older version of the Render function that can generate garbage, needed for backwards compatibility override protected void Render(ScriptableRenderContext context, Camera[] cameras) { } }

Смотрите так же: RenderPipelineManager.beginContextRendering, RenderPipelineManager.beginFrameRendering, RenderPipeline.EndContextRendering, Unity Manual: Scriptable Render Pipeline

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3