Объявление
protected static void BeginContextRendering(Rendering.ScriptableRenderContext context, ListОписание
Вызывает делегаты 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