스크립팅을 통해 URP 프레임 렌더링에 커스텀 렌더 패스를 삽입하는 방법
이 페이지에서는 커스텀 렌더러 기능을 구현하지 않고 스크립팅을 통해 커스텀 렌더 패스를 URP 프레임 렌더링에 삽입하는 방법을 설명합니다.
RenderPipelineManager 클래스의 이벤트 중 하나에 메서드를 구독합니다.
구독된 메서드에서
ScriptableRenderer
인스턴스의EnqueuePass
메서드를 사용하여 커스텀 렌더 패스를 URP 프레임 렌더링에 삽입합니다.
예제 코드:
public class EnqueuePass : MonoBehaviour
{
[SerializeField] private BlurSettings settings;
private BlurRenderPass blurRenderPass;
private void OnEnable()
{
...
blurRenderPass = new BlurRenderPass(settings);
// Subscribe the OnBeginCamera method to the beginCameraRendering event.
RenderPipelineManager.beginCameraRendering += OnBeginCamera;
}
private void OnDisable()
{
RenderPipelineManager.beginCameraRendering -= OnBeginCamera;
blurRenderPass.Dispose();
...
}
private void OnBeginCamera(ScriptableRenderContext context, Camera cam)
{
...
// Use the EnqueuePass method to inject a custom render pass
cam.GetUniversalAdditionalCameraData()
.scriptableRenderer.EnqueuePass(blurRenderPass);
}
}