SAIPO 1aac374103 1.添加了一系列shader
a.镜面反射
   b.水面反射
   c.炸弹冲击波
2021-07-08 22:58:46 +08:00

55 lines
2.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
//必须得用到这个namespace
//namespace UnityEngine.Experiemntal.Rendering.Universal
//{
public class MPRendererFeature : ScriptableRendererFeature
{
public enum Target
{
Color,
Texture
}
[System.Serializable]
public class HLSettings
{
public RenderPassEvent renderPassEvent = RenderPassEvent.AfterRenderingSkybox;
public Material mMat;
public Target destination = Target.Color;
//public int blitMaterialPassIndex = -1;
public string textureId = "_ScreenTexture";
//public float contrast = 0.5f;
}
public HLSettings settings = new HLSettings();
RenderTargetHandle m_renderTargetHandle;
MP_RenderPass m_ScriptablePass;
public override void Create()
{
//int passIndex = settings.mMat != null ? settings.mMat.passCount - 1 : 1;
//settings.blitMaterialPassIndex = Mathf.Clamp(settings.blitMaterialPassIndex, -1, passIndex);
m_ScriptablePass = new MP_RenderPass("HLPostEffectRender", settings.renderPassEvent, settings.mMat);//, settings.contrast);
m_renderTargetHandle.Init(settings.textureId);
}
// Here you can inject one or multiple render passes in the renderer.
// This method is called when setting up the renderer once per-camera.
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
{
var src = renderer.cameraColorTarget;
var dest = (settings.destination == Target.Color) ? RenderTargetHandle.CameraTarget : m_renderTargetHandle;
if (settings.mMat == null)//丢失材质
{
return;
}
m_ScriptablePass.Setup(src,dest);
renderer.EnqueuePass(m_ScriptablePass);
}
}
//}