首页 > 解决方案 > 以背景为输入的自定义 PixelShaderEffect

问题描述

我需要一个自写PixelShaderEffect的以背景图像作为输入。

我想要一个自定义的书面模糊效果,其中是一个模糊的中心,它会随着与中心的距离(圆形)的增加而直接失去模糊和不透明度。

我发现的所有示例都是这样:“如何将图像输入着色器”。不是我需要的,背景是动画的,渲染成额外的图像有点贵。

我知道只要GaussianBlurEffect你能做我想做的事……虽然我很难让它在 UWP 上运行,而且它的形式是矩形,而不是圆形。(而且不透明度不是渐变)

问题:有没有办法将背景输入PixelShaderEffectGaussianBlurEffectUWP 下的自定义中?

标签: uwp-xamlfragment-shaderdirect2dwin2d

解决方案


以背景为输入的自定义 PixelShaderEffect

LayersExample对于您的要求,您可以参考编写模糊效果的 Win2D 代码示例。在此处输入图像描述

它用于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;

推荐阅读