Unity 6.3
0 онлайн 42 гостей 3 в системе
Вход

Блит в URP

Чтобы переключиться с одной текстуры на другую в пользовательском рендеринге в Universal Render Pipeline (URP), используйте следующее:

Шейдер, который вы используете с Blitter API должен быть ручным шейдером. Shader Graph шейдеры не совместимы с Blitter API.

Примечание: Не используйте CommandBuffer.Blit или Graphics.Blit APIs, или APIs, которые используют их внутренне, такие как RenderingUtils.Blit. Эти APIs могут нарушить XR рендеринг, и не совместимы с собственными рендеринг проходами.

Например, в функцию Execute в проходе рендеринга добавьте следующее:

{
    Blitter.BlitCameraTexture(commandBuffer, sourceTexture, destinationTexture, materialToUse, passNumber);
}

Вы также можете использовать AddBlitPass или AddCopyPass APIs в вашем методе RecordRenderGraph для блита или копирования текстур. Например:

using UnityEngine.Rendering.RenderGraphModule.Util;

...

    public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) {

        // Set up the source texture, destination texture, material, and shader pass number for the blit
        RenderGraphUtils.BlitMaterialParameters parameters = new(sourceTexture, destinationTexture, materialToUse, passNumber);

        // Add the blit pass
        renderGraph.AddBlitPass(parameters, passName: "My Blit Pass");
    }

Примеры

Для полных примеров использования Blitter, AddBlitPassи AddCopyPass APIs выполните следующие действия:

  1. Импорт примеров графа отображения URP. Дополнительные сведения см. в Импорт примера пакета в URP.
  2. В окне Project перейдите в Образцы > Universal Render Pipeline > 17.3.0 > URP RenderGraph Образцы.
  3. Откройте Блит, BlitWithFrameDataили BlitWithMaterial.

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