You've already forked taptap2024_GJ_chidouren
65 lines
2.8 KiB
C#
65 lines
2.8 KiB
C#
using System;
|
|
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
using UnityEngine.Rendering.Universal;
|
|
using UnityEngine.Serialization;
|
|
|
|
namespace Framework.RenderFeature
|
|
{
|
|
public class GaussBlurFeature : ScriptableRendererFeature
|
|
{
|
|
[Serializable]
|
|
public class Setting
|
|
{
|
|
public bool enable = true;
|
|
public Material grayMaterial = null;
|
|
public Color grayColor = Color.white;
|
|
public bool isGray = true;
|
|
public bool isBlur = true;
|
|
public Material blurMaterial = null;
|
|
[Range (0, 1)] public float blurProgress = 1;
|
|
[Range (0, 1)] public float grayScale = 1;
|
|
[Range (0 , 1)] public float colorChannel_R = 1;
|
|
[Range (0 , 1)] public float colorChannel_G = 1;
|
|
[Range (0 , 1)] public float colorChannel_B = 1;
|
|
[Range (1, 10)] public int blurPasses = 1;
|
|
|
|
// [TitleGroup("模糊设置"), Title("分辨率精度(越小越高)"), Range(1, 4)] public int downsample = 1;
|
|
}
|
|
|
|
public RenderPassEvent renderPassEvent = RenderPassEvent.AfterRenderingTransparents;
|
|
public GaussBlurFeature.Setting setting;
|
|
public string cmdName = "GaussBlurFeature";
|
|
private GaussBlurPass m_ScriptablePass;
|
|
|
|
public override void Create ()
|
|
{
|
|
// return;
|
|
this.m_ScriptablePass = new GaussBlurPass ().Init (this.setting, cmdName);
|
|
this.m_ScriptablePass.renderPassEvent = this.renderPassEvent;
|
|
}
|
|
|
|
public override void AddRenderPasses (ScriptableRenderer renderer, ref RenderingData renderingData)
|
|
{
|
|
this.m_ScriptablePass.ConfigureInput (ScriptableRenderPassInput.Color);
|
|
renderer.EnqueuePass (this.m_ScriptablePass);
|
|
// var supportsCameraStackingType = renderer.SupportsCameraStackingType ( CameraRenderType.Base);
|
|
// if (supportsCameraStackingType)
|
|
// {
|
|
// renderer.EnqueuePass (this.m_ScriptablePass);
|
|
// }
|
|
}
|
|
|
|
public override void SetupRenderPasses (ScriptableRenderer renderer, in RenderingData renderingData)
|
|
{
|
|
// 只对游戏摄像机应用后处理(还有预览摄像机等)
|
|
if (renderingData.cameraData.cameraType == CameraType.Game)
|
|
{
|
|
// 设置向pass输入color (m_RenderPass父类)
|
|
m_ScriptablePass.ConfigureInput (ScriptableRenderPassInput.Color);
|
|
// 设置RT为相机的color
|
|
m_ScriptablePass.SetTarget (renderer.cameraColorTargetHandle);
|
|
}
|
|
}
|
|
}
|
|
} |