【问题标题】:Interop with Compute Shaders and Direct2D?与计算着色器和 Direct2D 互操作?
【发布时间】:2013-03-25 21:10:41
【问题描述】:

我正在开发一个集成 WPF 和 DirectX 的应用程序。我的目标是拥有一个共享表面,用于:

  1. 加载初始图像数据。
  2. 运行 DirectX 11 计算着色器以进行一些图像处理。
  3. 使用 Direct2D 在顶部绘图。
  4. 在我的 WPF 应用中显示结果。

我认为我已经弄清楚了 1、3 和 4,但是 2 让我很头疼。我的基本问题归结为:我认为 WPF 和 Direct2D 互操作的共享表面格式必须为 B8G8R8A8_UNorm,但我无法在该类型的纹理上为我的计算着色器创建无序访问视图。

如何让计算着色器在这种情况下工作?我是否错过了一些创建无人机的棘手方法?我是否需要重组我的应用程序以某种方式使用多个纹理?

【问题讨论】:

    标签: directx direct2d compute-shader


    【解决方案1】:

    鉴于这些 DirectX 功能和 WPF 互操作(使用 D3D9Image)的有限格式支持,这是不可能的。

    在所有这些功能之间实现互操作的一种方法是在 R8G8B8A8_UNorm 中执行几乎所有操作,然后在最后使用 Direct2D 将结果写入用于与 WPF 互操作的 B8G8R8A8_UNorm 呈现目标。 Direct2D 可以将 RGB 结果写入 BGR 目标,因此非常简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 2019-07-31
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      相关资源
      最近更新 更多