public GaussianBlurShader(GaussianBlur gaussianBlur, int radius) { Radius = radius; this.gaussianBlur = gaussianBlur; // Craete ImageEffectShader blurH = gaussianBlur.ToLoadAndUnload(new ImageEffectShader("GaussianBlurEffect", true)); blurV = gaussianBlur.ToLoadAndUnload(new ImageEffectShader("GaussianBlurEffect", true)); blurH.Initialize(gaussianBlur.Context); blurV.Initialize(gaussianBlur.Context); // Setup Horizontal parameters blurH.Parameters.Set(GaussianBlurKeys.VerticalBlur, false); blurV.Parameters.Set(GaussianBlurKeys.VerticalBlur, true); var size = radius * 2 + 1; nameGaussianBlurH = string.Format("GaussianBlurH{0}x{0}", size); nameGaussianBlurV = string.Format("GaussianBlurV{0}x{0}", size); // TODO: cache if necessary offsetsWeights = GaussianUtil.Calculate1D(this.Radius, gaussianBlur.SigmaRatio); // Update permutation parameters blurH.Parameters.Set(GaussianBlurKeys.Count, offsetsWeights.Length); blurV.Parameters.Set(GaussianBlurKeys.Count, offsetsWeights.Length); blurH.EffectInstance.UpdateEffect(gaussianBlur.Context.GraphicsDevice); blurV.EffectInstance.UpdateEffect(gaussianBlur.Context.GraphicsDevice); // Update parameters blurH.Parameters.Set(GaussianBlurShaderKeys.OffsetsWeights, offsetsWeights); blurV.Parameters.Set(GaussianBlurShaderKeys.OffsetsWeights, offsetsWeights); }
/// <inheritdoc/> protected override void InitializeCore() { base.InitializeCore(); transformGroupEffect = new ImageEffectShader(colorTransformGroupEffectName); // TODO GRAPHICS REFACTOR //transformGroupEffect.SharedParameterCollections.Add(Parameters); transformGroupEffect.Initialize(Context); Parameters = transformGroupEffect.Parameters; // we are adding parameter collections after as transform parameters should override previous parameters // TODO GRAPHICS REFACTOR //transformGroupEffect.ParameterCollections.Add(transformsParameters); this.transformContext = new ColorTransformContext(this, Context); }
protected override void InitializeCore() { base.InitializeCore(); aoApplyImageEffect = ToLoadAndUnload(new ImageEffectShader("ApplyAmbientOcclusionShader")); aoRawImageEffect = ToLoadAndUnload(new ImageEffectShader("AmbientOcclusionRawAOEffect")); aoRawImageEffect.Initialize(Context); blurH = ToLoadAndUnload(new ImageEffectShader("AmbientOcclusionBlurEffect")); blurV = ToLoadAndUnload(new ImageEffectShader("AmbientOcclusionBlurEffect", true)); blurH.Initialize(Context); blurV.Initialize(Context); // Setup Horizontal parameters blurH.Parameters.Set(AmbientOcclusionBlurKeys.VerticalBlur, false); blurV.Parameters.Set(AmbientOcclusionBlurKeys.VerticalBlur, true); }