diff options
| author | chai <215380520@qq.com> | 2024-05-20 22:36:58 +0800 |
|---|---|---|
| committer | chai <215380520@qq.com> | 2024-05-20 22:36:58 +0800 |
| commit | a22c505984697881f5f911a165ee022087b69e09 (patch) | |
| tree | d3c030aef1ae9b8a01c889dd2902bb1e3324e72b /Thronefall_v1.0/Decompile/CustomPostProcess.cs | |
| parent | 4a4cc82d069b26bc4d4532e73860f86b211ca239 (diff) | |
Diffstat (limited to 'Thronefall_v1.0/Decompile/CustomPostProcess.cs')
| -rw-r--r-- | Thronefall_v1.0/Decompile/CustomPostProcess.cs | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/Thronefall_v1.0/Decompile/CustomPostProcess.cs b/Thronefall_v1.0/Decompile/CustomPostProcess.cs new file mode 100644 index 0000000..6b88bfc --- /dev/null +++ b/Thronefall_v1.0/Decompile/CustomPostProcess.cs @@ -0,0 +1,62 @@ +using System; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Rendering.Universal; + +public class CustomPostProcess : ScriptableRendererFeature +{ + private class CustomRenderPass : ScriptableRenderPass + { + public RenderTargetIdentifier source; + + private Material mat; + + private RenderTargetHandle tempRenderTargetHandle; + + public CustomRenderPass(Material _mat) + { + mat = _mat; + tempRenderTargetHandle.Init("_TemporaryColorTexture"); + } + + public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) + { + } + + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) + { + CommandBuffer commandBuffer = CommandBufferPool.Get(); + commandBuffer.GetTemporaryRT(tempRenderTargetHandle.id, renderingData.cameraData.cameraTargetDescriptor); + Blit(commandBuffer, source, tempRenderTargetHandle.Identifier(), mat); + Blit(commandBuffer, tempRenderTargetHandle.Identifier(), source); + context.ExecuteCommandBuffer(commandBuffer); + CommandBufferPool.Release(commandBuffer); + } + + public override void OnCameraCleanup(CommandBuffer cmd) + { + } + } + + [Serializable] + public class Settings + { + public Material material; + } + + private CustomRenderPass m_ScriptablePass; + + public Settings settings; + + public override void Create() + { + m_ScriptablePass = new CustomRenderPass(settings.material); + m_ScriptablePass.renderPassEvent = RenderPassEvent.BeforeRenderingPostProcessing; + } + + public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) + { + m_ScriptablePass.source = renderer.cameraColorTarget; + renderer.EnqueuePass(m_ScriptablePass); + } +} |
