admin管理员组

文章数量:1650771

unity urp 自带了一个后处理组件Volume,提供了不少后处理效果:

除此之外,Render Feature 也可以实现类似的效果,并且自由度更高。
使用方式是,在RenderPiplineAsset 中的Renderer中新增Feature,下面举例说明如何通过Feature增加一个KawaseBlur的后处理效果。
首先写一个自定义的Feature脚本:

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;

public class KawaseBlur : ScriptableRendererFeature
{
   
    [System.Serializable]
    public class KawaseBlurSettings
    {
   
        public RenderPassEvent renderPassEvent = RenderPassEvent.AfterRenderingTransparents;
        public Material blurMaterial = null;

        [Range(2,15)]
        public int blurPasses = 2;

        [Range(1,4)]
        public int downsample = 1;
        public bool copyToFramebuffer = true;
        public string targetName = "_blurTexture";
    }

    public KawaseBlurSettings settings = new KawaseBlurSettings();

    class CustomRenderPass : ScriptableRenderPass
    {
   
        public Material blurMaterial;
        public int passes;
        public int downsample;
        public bool copyToFramebuffer;
        public string targetName;        
        string profilerTag;

        int tmpId1;
        int tmpId2;

        RenderTargetIdentifier tmpRT1;
        RenderTargetIdentifier tmpRT2

本文标签: 后处理效果URPUnity3dfeature