- Home /
 
lerp blur effect unity pro
Hi,
Is it possible to have the blur effect on the camera slowly lerp in when called, as its in C# I have no idea where to start as I'm doing all my work in .js
Any advice or help would be appreciated, thanks.
Answer by clunk47 · Dec 17, 2012 at 03:27 AM
Well, I have modified the blur effect script to have a fade in option along with fade in speed, and max blur. You would need to create a new C# Script and name it Blur_MOD and place it in the Image effects folder. I have a public static int i for iterations if "Fade In" is enabled, and the effect's "Blur Spread" equals i if fade is enabled. I'm not so sure about UnityScript, but if you wanted to disable automatic fade, just uncheck "Fade In" and access "i" from another script by using Blur_MOD.i
I'm not sure if it will work the same way since I'm not as good at UnityScript as I am C#. Here is Blur_MOD.cs
Hope this at least gets you somewhere with your concern.
 using UnityEngine;
 using System.Collections;
 
 [ExecuteInEditMode]
 [AddComponentMenu("Image Effects/Blur_MOD")]
 public class Blur_MOD : MonoBehaviour
 {    
     public int iterations = 2;
     public static float i = 0;
     public bool fadeIn = false;
     public float fadeInSpeed = 2.0f;
     public float maxBlur = 3.0f;
     public float blurSpread = 0.0f;
     public Shader blurShader = null;    
     static Material m_Material = null;
     protected Material material {
         get {
             if (m_Material == null) {
                 m_Material = new Material(blurShader);
                 m_Material.hideFlags = HideFlags.DontSave;
             }
             return m_Material;
         } 
     }
     protected void OnDisable() {
         if( m_Material ) {
             DestroyImmediate( m_Material );
         }
     }    
     void FixedUpdate()
     {
         if(fadeIn)
         {
             blurSpread = i;
             i+= fadeInSpeed * Time.smoothDeltaTime;
         }
         if(i >= maxBlur)
             i = maxBlur;
     }
     protected void Start()
     {
         if (!SystemInfo.supportsImageEffects) {
             enabled = false;
             return;
         }
         if (!blurShader || !material.shader.isSupported) {
             enabled = false;
             return;
         }
     }
     public void FourTapCone (RenderTexture source, RenderTexture dest, int iteration)
     {
         float off = 0.5f + iteration*blurSpread;
         Graphics.BlitMultiTap (source, dest, material,
             new Vector2(-off, -off),
             new Vector2(-off,  off),
             new Vector2( off,  off),
             new Vector2( off, -off)
         );
     }
     private void DownSample4x (RenderTexture source, RenderTexture dest)
     {
         float off = 1.0f;
         Graphics.BlitMultiTap (source, dest, material,
             new Vector2(-off, -off),
             new Vector2(-off,  off),
             new Vector2( off,  off),
             new Vector2( off, -off)
         );
     }
     void OnRenderImage (RenderTexture source, RenderTexture destination) {        
         RenderTexture buffer = RenderTexture.GetTemporary(source.width/4, source.height/4, 0);
         RenderTexture buffer2 = RenderTexture.GetTemporary(source.width/4, source.height/4, 0);
         
         DownSample4x (source, buffer);
         
         bool oddEven = true;
         for(int i = 0; i < iterations; i++)
         {
             if( oddEven )
                 FourTapCone (buffer, buffer2, i);
             else
                 FourTapCone (buffer2, buffer, i);
             oddEven = !oddEven;
         }
         if( oddEven )
             Graphics.Blit(buffer, destination);
         else
             Graphics.Blit(buffer2, destination);
         
         RenderTexture.ReleaseTemporary(buffer);
         RenderTexture.ReleaseTemporary(buffer2);
     }    
 }
 
 
              Thank you for doing this, much appreciated, does exactly what I wanted.
Thank you for asking the question, I never thought about doing this until you asked, this will really come in handy :) I voted up your question for being a good one. Have a nice day!
Answer by shirish47 · May 25, 2017 at 02:53 PM
which shader to attach with it?? blur shader parameter..
Your answer
 
             Follow this Question
Related Questions
Can I blur only part of the objects on my scene? 1 Answer
Unable to access Blur 2 Answers
Lerping a color.a upon Player Death? 0 Answers
Swing an object back and forth 0 Answers
My Lerp() is not working 2 Answers