2025-06-28 03:01:03 -04:00
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.Rendering;
|
|
|
|
|
using UnityEngine.Rendering.Universal;
|
|
|
|
|
|
|
|
|
|
public class ClearRTAfterTransparent : ScriptableRendererFeature
|
|
|
|
|
{
|
|
|
|
|
class ClearPass : ScriptableRenderPass
|
|
|
|
|
{
|
2026-07-17 21:09:34 +08:00
|
|
|
[System.Obsolete]
|
2025-06-28 03:01:03 -04:00
|
|
|
public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
|
|
|
|
|
{
|
|
|
|
|
CommandBuffer cmd = CommandBufferPool.Get("Clear RT After Transparent");
|
|
|
|
|
cmd.ClearRenderTarget(true, true, Color.clear); // 清颜色 & 深度
|
|
|
|
|
context.ExecuteCommandBuffer(cmd);
|
|
|
|
|
CommandBufferPool.Release(cmd);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ClearPass pass;
|
|
|
|
|
|
|
|
|
|
public override void Create()
|
|
|
|
|
{
|
|
|
|
|
pass = new ClearPass
|
|
|
|
|
{
|
|
|
|
|
renderPassEvent = RenderPassEvent.AfterRenderingTransparents // 在透明物体之后
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
|
|
|
|
|
{
|
|
|
|
|
renderer.EnqueuePass(pass);
|
|
|
|
|
}
|
|
|
|
|
}
|