Here are the examples of the csharp api UnityEngine.PostProcessing.MotionBlurComponent.FrameBlendingFilter.BlendFrames(UnityEngine.Rendering.CommandBuffer, float, UnityEngine.Rendering.RenderTargetIdentifier, UnityEngine.Rendering.RenderTargetIdentifier, UnityEngine.Material) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.
1 Examples
19
View Source File : MotionBlurComponent.cs
License : MIT License
Project Creator : PacktPublishing
License : MIT License
Project Creator : PacktPublishing
public override void PopulateCommandBuffer(CommandBuffer cb)
{
#if UNITY_EDITOR
// Don't render motion blur preview when the editor is not playing as it can in some
// cases results in ugly artifacts (i.e. when resizing the game view).
if (!Application.isPlaying)
return;
#endif
// Skip rendering in the first frame as motion vectors won't be abvailable until the
// next one
if (m_FirstFrame)
{
m_FirstFrame = false;
return;
}
var material = context.materialFactory.Get("Hidden/Post FX/Motion Blur");
var blitMaterial = context.materialFactory.Get("Hidden/Post FX/Blit");
var settings = model.settings;
var fbFormat = context.isHdr
? RenderTextureFormat.DefaultHDR
: RenderTextureFormat.Default;
int tempRT = Uniforms._TempRT;
cb.GetTemporaryRT(tempRT, context.width, context.height, 0, FilterMode.Point, fbFormat);
if (settings.shutterAngle > 0f && settings.frameBlending > 0f)
{
// Motion blur + frame blending
reconstructionFilter.ProcessImage(context, cb, ref settings, BuiltinRenderTextureType.CameraTarget, tempRT, material);
frameBlendingFilter.BlendFrames(cb, settings.frameBlending, tempRT, BuiltinRenderTextureType.CameraTarget, material);
frameBlendingFilter.PushFrame(cb, tempRT, context.width, context.height, material);
}
else if (settings.shutterAngle > 0f)
{
// No frame blending
cb.SetGlobalTexture(Uniforms._MainTex, BuiltinRenderTextureType.CameraTarget);
cb.Blit(BuiltinRenderTextureType.CameraTarget, tempRT, blitMaterial, 0);
reconstructionFilter.ProcessImage(context, cb, ref settings, tempRT, BuiltinRenderTextureType.CameraTarget, material);
}
else if (settings.frameBlending > 0f)
{
// Frame blending only
cb.SetGlobalTexture(Uniforms._MainTex, BuiltinRenderTextureType.CameraTarget);
cb.Blit(BuiltinRenderTextureType.CameraTarget, tempRT, blitMaterial, 0);
frameBlendingFilter.BlendFrames(cb, settings.frameBlending, tempRT, BuiltinRenderTextureType.CameraTarget, material);
frameBlendingFilter.PushFrame(cb, tempRT, context.width, context.height, material);
}
// Cleaning up
cb.ReleaseTemporaryRT(tempRT);
}