切换主武器
This commit is contained in:
@@ -26,40 +26,34 @@ namespace SLSFramework.Rendering.PostProcessing
|
||||
.Where(c => c.InjectionPoint == CustomPostProcessInjectionPoint.AfterTransparent)
|
||||
.OrderBy(c => c.OrderInInjectionPoint)
|
||||
.ToList();
|
||||
afterTransparentPass =
|
||||
new ScriptablePostProcessorPass("Custom PostProcessor - after Transparent", afterTransparentPostProcessors)
|
||||
{
|
||||
renderPassEvent = RenderPassEvent.AfterRenderingTransparents
|
||||
};
|
||||
afterTransparentPass = new ScriptablePostProcessorPass("Custom PostProcessor - after Transparent", afterTransparentPostProcessors)
|
||||
{
|
||||
renderPassEvent = RenderPassEvent.AfterRenderingTransparents
|
||||
};
|
||||
|
||||
var beforePostProcessPostProcessors = postProcessorVolumes
|
||||
.Where(c => c.InjectionPoint == CustomPostProcessInjectionPoint.BeforePostProcess)
|
||||
.OrderBy(c => c.OrderInInjectionPoint)
|
||||
.ToList();
|
||||
beforePostProcessPass =
|
||||
new ScriptablePostProcessorPass("Custom PostProcessor - before PostProcessing", beforePostProcessPostProcessors)
|
||||
{
|
||||
renderPassEvent = RenderPassEvent.BeforeRenderingPostProcessing
|
||||
};
|
||||
beforePostProcessPass = new ScriptablePostProcessorPass("Custom PostProcessor - before PostProcessing", beforePostProcessPostProcessors)
|
||||
{
|
||||
renderPassEvent = RenderPassEvent.BeforeRenderingPostProcessing
|
||||
};
|
||||
|
||||
var afterPostProcessPostProcessors = postProcessorVolumes
|
||||
.Where(c => c.InjectionPoint == CustomPostProcessInjectionPoint.AfterPostProcess)
|
||||
.OrderBy(c => c.OrderInInjectionPoint)
|
||||
.ToList();
|
||||
afterPostProcessPass =
|
||||
new ScriptablePostProcessorPass("Custom PostProcessor - after PostProcessing", afterPostProcessPostProcessors)
|
||||
{
|
||||
renderPassEvent = RenderPassEvent.AfterRenderingPostProcessing
|
||||
};
|
||||
afterPostProcessPass = new ScriptablePostProcessorPass("Custom PostProcessor - after PostProcessing", afterPostProcessPostProcessors)
|
||||
{
|
||||
renderPassEvent = RenderPassEvent.AfterRenderingPostProcessing
|
||||
};
|
||||
}
|
||||
|
||||
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
|
||||
{
|
||||
// 只有在相机开启后处理时才执行
|
||||
if (renderingData.cameraData.postProcessEnabled)
|
||||
{
|
||||
// 关键点:将 renderingData 传递给 Pass 的 Setup 方法
|
||||
// 这样我们就能把数据缓存下来给 RenderGraph 使用了
|
||||
if (afterTransparentPass.Setup(ref renderingData))
|
||||
{
|
||||
afterTransparentPass.ConfigureInput(ScriptableRenderPassInput.Color);
|
||||
@@ -82,21 +76,19 @@ namespace SLSFramework.Rendering.PostProcessing
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
base.Dispose(disposing);
|
||||
if (disposing)
|
||||
{
|
||||
if (postProcessorVolumes != null)
|
||||
{
|
||||
foreach (var item in postProcessorVolumes)
|
||||
{
|
||||
item.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
// 关键点:调用 Pass 的清理函数,销毁缓存池中的材质
|
||||
afterTransparentPass?.Cleanup();
|
||||
beforePostProcessPass?.Cleanup();
|
||||
afterPostProcessPass?.Cleanup();
|
||||
|
||||
afterTransparentPass = null;
|
||||
beforePostProcessPass = null;
|
||||
afterPostProcessPass = null;
|
||||
postProcessorVolumes = null;
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user