【问题标题】:How to use vertex shader via Win2d如何通过 Win2d 使用顶点着色器
【发布时间】:2016-03-28 09:42:21
【问题描述】:

我已经阅读并查看了很多关于 Win2D 的信息,发现I can use custom pixel and vertex shaders。

我找到了如何创建自定义像素着色器资源

        var bitmapTiger = await CanvasBitmap.LoadAsync(sender, "imageTiger.jpg");
        tigerSize = bitmapTiger.Size.ToVector2();

        effect = new PixelShaderEffect(await Utils.ReadAllBytes("my_pixel_shader.fxo"))
        {
            Source1 = bitmapTiger,
            Source1BorderMode = EffectBorderMode.Hard,
            Source1Mapping = SamplerCoordinateMapping.Offset,
            MaxSamplerOffset = 1
        };

但我找不到如何通过 Win2D 创建顶点着色器资源。

提前致谢

【问题讨论】:

  • HLSL 顶点着色器的标准构造不工作吗?
  • 我在这部分编程方面经验不足。我最近开始研究它。我有一个使用 SharpDX 的小项目,我想用 Win2D 重写它(为了我的自学)。在 SharpDX 我有 PixelShader 和 VertexShader 类。在 Win2d 中,我发现只有 PixelShaderEffect 类
  • 哦,好吧,所以你只想使用现有的着色器。我以为你想写一个顶点着色器,我的错。

标签: c++ uwp win2d windows-8.1-universal


【解决方案1】:

正如site you linked 所说:

很遗憾,现在无法在 Win2D 中添加自定义图像效果。

现在错了!
但不幸的是,Win2D 目前只提供了一种使用pixel shaders 的方法。如果要使用顶点着色器,则必须使用 Direct3D。有一个 Example Gallery 示例如何将 Direct3D 与 Win2D (the one with the teapot) 混合,您可以找到 code on GitHub。我不知道这是否对你有帮助,但我能找到的就这些了。

【讨论】:

  • 谢谢。 Win2D正在开发中,我认为VertexShader(像Pixel Shader一样)将来会实现
  • @AndriiKrupka 我不确定添加顶点着色器,因为该框架旨在获得快速的 2D 图形,而顶点着色器主要用于 3D 图形。但你说得对,它正在开发中,甚至像素着色器也只推出了大约一周。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多