revival/game/Assets/Scripts/Rendering/GlitchFeature.cs

53 lines
1.6 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
using Debug = UnityEngine.Debug;
public class GlitchFeature : ScriptableRendererFeature
{
[Serializable]
public class Settings
{
public RenderTexture glitchTex;
public RenderTexture stencilTex;
public RenderTexture blendTex;
public Material blendMat;
public Material fadeMat;
public Material stencilMat;
public float sample;
public float fadeStrength;
}
[SerializeField] private Settings _settings = new Settings();
private GlitchPass _glitchPass;
private BlendPass _blendPass;
private GlitchStencilPass _stencilPass;
public override void Create()
{
_blendPass = new BlendPass(_settings);
_glitchPass = new GlitchPass();
_stencilPass = new GlitchStencilPass(_settings);
}
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
{
// get glitch stencil information
_stencilPass.renderPassEvent = RenderPassEvent.AfterRendering;
renderer.EnqueuePass(_stencilPass);
_blendPass.renderPassEvent = RenderPassEvent.BeforeRenderingPostProcessing;
renderer.EnqueuePass(_blendPass);
// _glitchPass.renderPassEvent = RenderPassEvent.AfterRenderingOpaques;
// _glitchPass.Settings = _settings;
// renderer.EnqueuePass(_glitchPass);
}
}