public void RefreshState(CustomUberPostFeature.CustomUberPostSettings settings)
 {
     _uberSettings.EyeMaskEnable       = settings.EyeMaskEnable;
     _uberSettings.DualKawaseDOFEnable = settings.DualKawaseDOFEnable;
     _uberSettings.RainDropEnable      = settings.RainDropEnable;
     _uberSettings.VignetteEnable      = settings.VignetteEnable;
     _uberSettings.GlitchEnable        = settings.GlitchEnable;
 }
    public CustomUberPostPass(RenderPassEvent evt, RenderQueueRange renderQueueRange, LayerMask layerMask, Material blitMaterial, CustomUberPostFeature.CustomUberPostSettings settings)
    {
        this.renderPassEvent = evt;
        this.blitMaterial    = blitMaterial;
        m_FilteringSettings  = new FilteringSettings(renderQueueRange, layerMask);
        RefreshSettings(settings);

        /******** DualKawase ********/
        m_Pyramid = new BlurSampleLevel[k_MaxPyramidSize];
        for (int i = 0; i < k_MaxPyramidSize; i++)
        {
            m_Pyramid[i] = new BlurSampleLevel()
            {
                down = Shader.PropertyToID("_BlurMipDown" + i),
                up   = Shader.PropertyToID("_BlurMipUp" + i)
            };
        }
    }
    public void RefreshSettings(CustomUberPostFeature.CustomUberPostSettings settings)
    {
        _uberSettings.Copy(settings);
        blitMaterial.SetFloat(STATIC_ScreenAspect, _uberSettings.ScreenAspect);
        blitMaterial.SetFloat(STATIC_IdMask, _uberSettings.IDMask ? 1 : 0);
        if (_uberSettings.IDMask)
        {
            blitMaterial.EnableKeyword("USE_ID_TEXTURE");
        }
        else
        {
            blitMaterial.DisableKeyword("USE_ID_TEXTURE");
        }

        if (settings.OverlayEnable)
        {
            if (_uberSettings.PolarUV)
            {
                blitMaterial.EnableKeyword("USE_POLARUV");
            }
            else
            {
                blitMaterial.DisableKeyword("USE_POLARUV");
            }
            blitMaterial.SetVector(STATIC_OverlayCoordiate, _uberSettings.OverlayCoordiate);
            blitMaterial.SetVector(STATIC_NormalCoordiate, _uberSettings.NormalCoordiate);
            blitMaterial.SetFloat(STATIC_NormalStr, _uberSettings.NormalStr);
            blitMaterial.SetFloat(STATIC_GradingOffset, _uberSettings.GradientOffset);
        }

        if (settings.EyeMaskEnable)
        {
            blitMaterial.SetFloat(STATIC_Handle, _uberSettings.Handle);
            blitMaterial.SetFloat(STATIC_Gradient, _uberSettings.Gradient);
        }

        if (settings.RadialBlurEnable)
        {
            blitMaterial.SetVector(STATIC_RadialBlurCenter, _uberSettings.RadialBlurCenter);
            blitMaterial.SetFloat(STATIC_RadialBlurMaskStr, _uberSettings.RadialBlurMaskStr);
            blitMaterial.SetInt(STATIC_RadialBlurSampleTime, _uberSettings.RadialBlurSampleTime);
            blitMaterial.SetFloat(STATIC_RadialBlurOffsetStr, _uberSettings.RadialBlurOffsetStr);
        }

        if (settings.DualKawaseDOFEnable)
        {
            blitMaterial.SetFloat(STATIC_BlurOffset, _uberSettings.BlurRadius);
            blitMaterial.SetFloat(STATIC_FocusLength, _uberSettings.FocusLength);
            blitMaterial.SetFloat(STATIC_DofRadius, _uberSettings.DOFRadius);
        }

        if (settings.RainDropEnable)
        {
            blitMaterial.SetFloat(STATIC_RainForce, _uberSettings.RainForce);
            blitMaterial.SetFloat(STATIC_RainDropSize, _uberSettings.RainDropSize);
            blitMaterial.SetFloat(STATIC_RainDropAngle, _uberSettings.RainDropAngle);
            blitMaterial.SetFloat(STATIC_DropAspect, _uberSettings.DropAspect);
            blitMaterial.SetFloat(STATIC_DropSpeed, _uberSettings.DropSpeed);
            blitMaterial.SetFloat(STATIC_DropMotionTurb, _uberSettings.DropMotionTurb);
            blitMaterial.SetFloat(STATIC_DISTORTION, _uberSettings.Distortion);
            blitMaterial.SetFloat(STATIC_BLUR, _uberSettings.Blur);
        }

        if (settings.VignetteEnable)
        {
            blitMaterial.SetColor(STATIC_VignetteColor, _uberSettings.VignetteColor);
            blitMaterial.SetVector(STATIC_VignetteCenter, _uberSettings.VigenetteCenter);
            blitMaterial.SetFloat(STATIC_VignetteIntensity, _uberSettings.VignetteIntensity);
            blitMaterial.SetFloat(STATIC_VignetteSmoothness, _uberSettings.VignetteSmoothness);
        }

        if (settings.GlitchEnable)
        {
            blitMaterial.SetFloat(STATIC_ScanLineJitter, _uberSettings.ScanLineJitter);
            blitMaterial.SetFloat(STATIC_VerticalJump, _uberSettings.VerticleJump);
            blitMaterial.SetFloat(STATIC_HorizontalShake, _uberSettings.HorizontalShake);
            blitMaterial.SetFloat(STATIC_RGBShiftAmp, _uberSettings.RGBShiftAmp);
            blitMaterial.SetFloat(STATIC_ShiftSpeed, _uberSettings.ShiftSpeed);
            blitMaterial.SetVector(STATIC_ManualShift, _uberSettings.ManualShift);
            blitMaterial.SetFloat(STATIC_Lighten, _uberSettings.Lighten);
            blitMaterial.SetColor(STATIC_Color1, _uberSettings.Color1);
            blitMaterial.SetColor(STATIC_Color2, _uberSettings.Color2);
            blitMaterial.SetColor(STATIC_Color3, _uberSettings.Color3);
            blitMaterial.SetFloat(STATIC_Balance, _uberSettings.Balance);
            blitMaterial.SetFloat(STATIC_X, _uberSettings.X ? 1 : 0);
            blitMaterial.SetFloat(STATIC_Y, _uberSettings.Y ? 1 : 0);
        }

        blitMaterial.SetFloat(STATIC_Saturate, _uberSettings.SaturateStr);
    }