Exemple #1
0
    protected void Blur(RenderTexture source, eBlurType blurType)
    {
        RenderTexture tmpBlurTexture = RenderTexture.GetTemporary(source.width, source.height, source.depth, source.format);

        Blur(source, tmpBlurTexture, blurType);

        RenderTexture.ReleaseTemporary(tmpBlurTexture);
    }
Exemple #2
0
    protected void Blur(RenderTexture source, RenderTexture destination, eBlurType blurType)
    {
        float widthOverHeight = source.width / (1.0f * source.height);
        float oneOverBaseSize = 1.0f / 512.0f;

        int pass = (int)blurType;

        for (int i = 0; i < m_blurIteration; ++i)
        {
            float offsetScale = (1.0f + (i * 0.25f)) * m_blurRange;
            BlurMat.SetVector(ShaderPropertyID.BlurOffset, new Vector4(0, offsetScale * oneOverBaseSize, 0, 0));
            Graphics.Blit(source, destination, BlurMat, pass);
            BlurMat.SetVector(ShaderPropertyID.BlurOffset, new Vector4((offsetScale / widthOverHeight) * oneOverBaseSize, 0, 0, 0));
            Graphics.Blit(destination, source, BlurMat, pass);
        }

        Graphics.Blit(source, destination, BlurMat, pass);
    }