void OnRenderImage(RenderTexture source, RenderTexture destination) { if (_settings.shutterAngle > 0 && _settings.frameBlending > 0) { // Reconstruction and frame blending var temp = RenderTexture.GetTemporary(source.width, source.height, 0, source.format); _reconstructionFilter.ProcessImage(_settings.shutterAngle, _settings.sampleCount, source, temp); _frameBlendingFilter.BlendFrames(_settings.frameBlending, temp, destination); _frameBlendingFilter.PushFrame(temp); RenderTexture.ReleaseTemporary(temp); } else if (_settings.shutterAngle > 0) { // Reconstruction only _reconstructionFilter.ProcessImage(_settings.shutterAngle, _settings.sampleCount, source, destination); } else if (_settings.frameBlending > 0) { // Frame blending only _frameBlendingFilter.BlendFrames(_settings.frameBlending, source, destination); _frameBlendingFilter.PushFrame(source); } else { // Nothing to do! Graphics.Blit(source, destination); } }