Skip to content

Instantly share code, notes, and snippets.

@wonkee-kim
Created August 11, 2020 00:33
Show Gist options
  • Save wonkee-kim/ddab321c4c3d88fc699d20f1cc7d2b51 to your computer and use it in GitHub Desktop.
Save wonkee-kim/ddab321c4c3d88fc699d20f1cc7d2b51 to your computer and use it in GitHub Desktop.
Simplified version of ScriptableRendererFeature
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
namespace UnityEngine.Experimental.Rendering.Universal {
public class MyRendererFeature : ScriptableRendererFeature {
[System.Serializable]
public class Settings {
public bool isEnabled = true;
[Range(0, 1)] public float intensity = 0.5f;
public RenderPassEvent renderPassEvent = RenderPassEvent.AfterRenderingTransparents;
public Target target = Target.Camera;
public Material blitMaterial = null;
public string textureId = "_BlitPassTexture";
}
public enum Target {
Camera,
Texture
}
public Settings settings = new Settings();
RenderTargetHandle m_renderTargetTexture;
MyRenderPass myRenderPass;
public override void Create() {
myRenderPass = new MyRenderPass(this.name, settings.renderPassEvent, settings.blitMaterial);
m_renderTargetTexture.Init(settings.textureId);
}
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) {
if(!settings.isEnabled || settings.intensity <= 0 || settings.blitMaterial == null)
return;
settings.blitMaterial.SetFloat("_Intensity", settings.intensity);
RenderTargetIdentifier src = renderer.cameraColorTarget;
RenderTargetHandle dest = (settings.target == Target.Camera) ? RenderTargetHandle.CameraTarget : m_renderTargetTexture;
myRenderPass.Setup(src, dest);
renderer.EnqueuePass(myRenderPass);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment