Skip to content

Hirai0827/URPOnRenderImagePass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

URPOnRenderImagePass

image

About

URPではOnRenderImageが使えないので、その代替となるPassを作成しました。

IPostProcessorを継承したMonoBehaviourをCameraのついたComponentに着けると、そのカメラのレンダリングが終わったタイミングで呼び出されるコマンドバッファをOnPostProcessから設定できます。

Usage

利用しているRendererにDrawOnRenderImagePass(RendererFeature)を追加

image

IPostProcessorを継承したMonoBehaviourを作成し、OnPostProcessに実装を書く。CommandBuffer cmdに行いたい処理などを詰める

//サンプル
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
using UnityEngine;
namespace URPOnRenderImagePass
{
    public class PostProcessSimplyBlit:MonoBehaviour,IPostProcessor
    {
        [SerializeField] private Material blitMat;
        public void OnPostProcess(CommandBuffer cmd,RenderTargetHandle src,RenderTargetHandle dest,RenderingData renderingData)
        {
            cmd.Blit(src.Identifier(),dest.Identifier(),blitMat);
        }
    }
}

作成したMonoBehaviourをCameraコンポネントと同じオブジェクトに付ける

image

CommandBuffer cmdに詰められたコマンド群はポストプロセスのタイミングで実行されます(正確にはRenderPassEvent.BeforeRenderingPostProcessingのタイミング)

image

Note

レンダリングの仕様変更のためにどうしてもCommandBufferがGPUでメインスレッドとは独立に実行されることを念頭に置く必要があります。レガシーのパイプラインに比べて少し処理を書くのが難しくなった感が否めませんが、自由度はレガシーの比ではないので、うまく使いこなせるといいなぁ、と思っています…

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published