From df1e3842c7571cf6db8f8238b893bde049abf651 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 21 Sep 2021 19:51:10 +0800 Subject: *custom rendering pipeline --- Assets/Scripts/Rendering/RenderingUtility.cs | 66 ++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Assets/Scripts/Rendering/RenderingUtility.cs (limited to 'Assets/Scripts/Rendering/RenderingUtility.cs') diff --git a/Assets/Scripts/Rendering/RenderingUtility.cs b/Assets/Scripts/Rendering/RenderingUtility.cs new file mode 100644 index 00000000..297a9b79 --- /dev/null +++ b/Assets/Scripts/Rendering/RenderingUtility.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Rendering; + +// https://docs.unity3d.com/Manual/GraphicsCommandBuffers.html +// https://docs.unity3d.com/ScriptReference/Rendering.CameraEvent.html + +// 前向渲染的camera events +// * DepthTexture +// * DepthNormalTexture +// * ForwardOpaque +// * ImageEffectsOpaque +// * Skybox +// * ForwardAlpha +// * ImageEffects +// * Everything + +[Flags] +public enum ERenderingEvent +{ + None = 0, + BeforeDepthTexture = 1, + BeforeDepthNormalsTexture = 1 << 1, + BeforeForwardOpaque = 1 << 2, + BeforeImageEffectsOpaque = 1 << 3, + BeforeSkybox = 1 << 4, + BeforeForwardAlpha = 1 << 5, + BeforeImageEffects = 1 << 6, + //BeforeEverything = 1 << 7, + AfterDepthTexture = 1 << 8, + AfterDepthNormalsTexture = 1 << 9, + AfterForwardOpaque = 1 << 10, + AfterImageEffectsOpaque = 1 << 11, + AfterSkybox = 1 << 12, + AfterForwardAlpha = 1 << 13, + AfterImageEffects = 1 << 14, + AfterEverything = 1 << 15, +} + +public static class RenderingUtility +{ + public static Dictionary renderingEventToCameraEventDic = new Dictionary { + {ERenderingEvent.BeforeDepthTexture, CameraEvent.BeforeDepthTexture }, + {ERenderingEvent.BeforeDepthNormalsTexture, CameraEvent.BeforeDepthNormalsTexture }, + {ERenderingEvent.BeforeForwardOpaque, CameraEvent.BeforeForwardOpaque }, + {ERenderingEvent.BeforeImageEffectsOpaque, CameraEvent.BeforeImageEffectsOpaque }, + {ERenderingEvent.BeforeSkybox, CameraEvent.BeforeSkybox }, + {ERenderingEvent.BeforeForwardAlpha, CameraEvent.BeforeForwardAlpha }, + {ERenderingEvent.BeforeImageEffects, CameraEvent.BeforeImageEffects }, + {ERenderingEvent.AfterDepthTexture, CameraEvent.AfterDepthTexture }, + {ERenderingEvent.AfterDepthNormalsTexture, CameraEvent.AfterDepthNormalsTexture }, + {ERenderingEvent.AfterForwardOpaque, CameraEvent.AfterForwardOpaque }, + {ERenderingEvent.AfterImageEffectsOpaque, CameraEvent.AfterImageEffectsOpaque }, + {ERenderingEvent.AfterSkybox, CameraEvent.AfterSkybox }, + {ERenderingEvent.AfterForwardAlpha, CameraEvent.AfterForwardAlpha }, + {ERenderingEvent.AfterImageEffects, CameraEvent.AfterImageEffects }, + {ERenderingEvent.AfterEverything, CameraEvent.AfterEverything }, + }; + + public static CameraEvent ToCameraEvent(this ERenderingEvent e) + { + return renderingEventToCameraEventDic[e]; + } +} -- cgit v1.1-26-g67d0