自定义PixelShaderEffect,将背景作为输入

时间:2019-06-27 16:19:25

标签: uwp-xaml fragment-shader direct2d win2d

我需要一个手写的PixelShaderEffect才能将背景图像用作输入。

我希望它具有自定义的书面模糊效果,即模糊的中心会随着距中心(圆形)的距离的增加而逐渐失去模糊性和不透明度。

我发现的所有示例都在进行:“如何将图像馈送到着色器中”。不是我所需要的,背景是动画的,渲染成额外的图像有点贵。

我知道使用提供的GaussianBlurEffect可以执行我想要的操作...尽管我很难让它在UWP上运行,并且它的形式是矩形而不是圆形。 (而且不透明度不是渐变)

问题: 是否可以将背景馈送到自定义PixelShaderEffect中,就像UWP下的GaussianBlurEffect中一样?

1 个答案:

答案 0 :(得分:0)

  

以背景为输入的自定义PixelShaderEffect

根据您的要求,您可以参考编写了模糊效果的Win2D代码示例LayersExampleenter image description here

它使用CanvasRadialGradientBrush来渲染模糊效果。

case LayerMode.OpacityBrush:
gradientBrush.Center = ball.Position;
gradientBrush.RadiusX = gradientBrush.RadiusY = ball.Radius* ball.FadeAlpha * 3;

using (ds.CreateLayer(gradientBrush))

{

    ball.Draw(ds);

}

break;