Exemple #1
0
        void GetScreen()
        {
            // Image myImage = GetComponent<Image>();

            LinearBlur myBlur = new LinearBlur();
            //Texture2D
            Texture2D blurTexture = renderCamera.screenshot;

            TextureScale.Bilinear(blurTexture, blurTexture.width / downSampleAmount, blurTexture.height / downSampleAmount);
            blurTexture = myBlur.Blur(blurTexture, blurPixels, 2);
            blurTexture.Apply();
            myImage.material.mainTexture = blurTexture;
        }
    static public Sprite RequestSprite(Sprite originalSprite, int blurSize, int blurIterations)
    {
        BlurObject blurObject = null;

        bool exist = dictionary.TryGetValue(originalSprite, out blurObject);

        if (exist)
        {
            if (blurObject.sprite == null || blurObject.sprite.texture == null)
            {
                dictionary.Remove(originalSprite);

                blurObject.sprite         = LinearBlur.Blur(originalSprite, blurSize, blurIterations, Color.white);
                blurObject.blurSize       = blurSize;
                blurObject.blurIterations = blurIterations;

                dictionary.Add(originalSprite, blurObject);
            }
            else if (blurObject.blurSize != blurSize || blurObject.blurIterations != blurIterations)
            {
                blurObject.sprite         = LinearBlur.Blur(originalSprite, blurSize, blurIterations, Color.white);
                blurObject.blurSize       = blurSize;
                blurObject.blurIterations = blurIterations;
            }
            return(blurObject.sprite);
        }
        else
        {
            Sprite sprite = LinearBlur.Blur(originalSprite, blurSize, blurIterations, Color.white);

            blurObject = new BlurObject(sprite, blurSize, blurIterations);

            dictionary.Add(originalSprite, blurObject);

            return(blurObject.sprite);
        }
    }