Shader "CustomRenderTexture/BackgroundShader"

{

    Properties

    {

        _MainTex ("Base (RGB)", 2D) = "white" { }

        _ScreenTex ("Screen Tex", 2D) = "white" { }

        _PixelRange ("Pixel Range", Range(1, 10)) = 5 

    }

    SubShader

    {

        Pass

        {

            CGPROGRAM

            #pragma vertex vert

            #pragma fragment frag

            #include "UnityCG.cginc"


            struct appdata

            {

                float4 vertex : POSITION;

            };


            struct v2f

            {

                float4 pos : TEXCOORD0;

            };


            v2f vert(appdata v)

            {

                v2f o;

                o.pos = v.vertex;

                return o;

            }


            sampler2D _ScreenTex;

            float _PixelRange;


            float4 SampleAverage(float2 screenPos, float range)

            {

                float3 avgColor = float3(0.0, 0.0, 0.0);

                int count = 0;

                for (int x = -range; x <= range; x++)

                {

                    for (int y = -range; y <= range; y++)

                    {

                        float2 offset = float2(x, y) * _ScreenTex_TexelSize; 

                        avgColor += tex2D(_ScreenTex, screenPos + offset).rgb;

                        count++;

                    }

                }

                return float4(avgColor / count, 1.0);

            }


            float4 frag(v2f i) : SV_Target

            {

                float2 screenPos = i.pos.xy / i.pos.w;

                return SampleAverage(screenPos, _PixelRange);

            }

            ENDCG

        }

    }

}


셰이더 코드는 이렇게 생겨먹었고


using UnityEngine;


public class SetTexelSize : MonoBehaviour

{

    public Material material;

    public Texture screenTex;


    void Update()

    {

        if (screenTex != null)

        {

            Vector2 texelSize = new Vector2(1.0f / screenTex.width, 1.0f / screenTex.height);

            material.SetVector("_ScreenTex_TexelSize", texelSize);

        }

    }

}

그걸 보좌하는 C# 코드는 이렇게 생겨먹었는데


어떻게 써야할지 감이 안 잡힌다