-
-
Save unitycoder/fa8301b46f5f58f3ada76f499dfb593d to your computer and use it in GitHub Desktop.
A simple class to perform image blurring by overriding the main RenderTexture.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using UnityEditor; | |
using System; | |
using System.IO; | |
using System.Linq; | |
using System.Collections; | |
using System.Collections.Generic; | |
using System.Text.RegularExpressions; | |
public class Blur { | |
Color tint = Color.black; | |
float tinting = 0.4f; | |
float blurSize = 4.0f; | |
int passes = 8; | |
Material blurMaterial; | |
RenderTexture destTexture; | |
public Blur(int width, int height) { | |
blurMaterial = new Material(Shader.Find("Hidden/Blur")); | |
blurMaterial.SetColor("_Tint", tint); | |
blurMaterial.SetFloat("_Tinting", tinting); | |
blurMaterial.SetFloat("_BlurSize", blurSize); | |
destTexture = new RenderTexture(width, height, 0); | |
destTexture.Create(); | |
} | |
public Texture BlurTexture(Texture sourceTexture) { | |
RenderTexture active = RenderTexture.active; // Save original RenderTexture so we can restore when we're done. | |
try { | |
RenderTexture tempA = RenderTexture.GetTemporary(sourceTexture.width, sourceTexture.height); | |
RenderTexture tempB = RenderTexture.GetTemporary(sourceTexture.width, sourceTexture.height); | |
for (int i = 0; i < passes; i++) { | |
if (i == 0) { | |
Graphics.Blit(sourceTexture, tempA, blurMaterial, 0); | |
} else { | |
Graphics.Blit(tempB, tempA, blurMaterial, 0); | |
} | |
Graphics.Blit(tempA, tempB, blurMaterial, 1); | |
} | |
Graphics.Blit(tempB, destTexture, blurMaterial, 2); | |
RenderTexture.ReleaseTemporary(tempA); | |
RenderTexture.ReleaseTemporary(tempB); | |
} catch (Exception e) { | |
Debug.LogException(e); | |
} finally { | |
RenderTexture.active = active; // Restore | |
} | |
return destTexture; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment