Unity 6.3
0 онлайн 95 гостей 3 в системе
Вход
Конвейеры отображения Шаг 93 из 129

Получить данные из текущего кадра в URP

Вы можете получить текстуры, которые Universal Render Pipeline (URP) создает для текущего кадра, например, текстуру активного цветового буфера или текстуру G-буфера, и использовать их в своих проходах рендеринга.

Эти текстуры называются кадровыми данными, ресурсными данными или кадровыми ресурсами. В этой документации эти текстуры называются кадровыми данными.

Некоторые текстуры могут не существовать в данных кадра, в зависимости от того, какую точку впрыска вы используете для вставки вашего пользовательского прохода рендеринга в цикл рендеринга кадра URP. Дополнительные сведения о том, какие текстуры существуют, см. в Ссылка на точки впрыска.

Получить данные кадра

Данные кадра находятся в ContextContainer объект, который URP предоставляет, когда вы переопределяете RecordRenderGraph метод.

Чтобы получить ручку текстуры в данных кадра, выполните следующие действия:

  1. Получить все данные кадра как объект UniversalResourceData, используя метод Get объекта ContextContainer.

    Например:

    public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameContext)
    {
        using (var builder = renderGraph.AddRasterRenderPass<PassData>("Get frame data", out var passData))
        {
            UniversalResourceData frameData = frameContext.Get<UniversalResourceData>();
        }
    }
    
  2. Получить адрес текстуры в данных кадра.

    Например, следующая команда получает адрес активного цвета текстуры:

    TextureHandle activeColorTexture = frameData.activeColorTexture;
    

Затем вы можете читать текстуру и записывать в нее. См. Использование текстуры в проходе рендеринга.

Ручка текстуры действительна только для текущего графа отображения в текущем кадре.

Вы можете использовать ConfigureInput API, чтобы убедиться, что URP генерирует текстуру, которая вам нужна в данных кадра.

Пример

Полный пример см. в примерах, названных TextureReferenceWithFrameData и BlitWithFrameData в образцах пакета Universal Render Pipeline (URP).

Дополнительные ресурсы