Directx 是否与计算着色器和Direct2D互操作?

Directx 是否与计算着色器和Direct2D互操作?,directx,direct2d,compute-shader,Directx,Direct2d,Compute Shader,我正在开发一个集成WPF和DirectX的应用程序。我的目标是拥有一个共享曲面,用于: 加载初始图像数据 运行DirectX 11计算着色器进行一些图像处理 使用Direct2D在顶部绘制 在我的WPF应用程序中显示结果 我想我已经算出了1,3,4,但是2让我头疼。我的基本问题归结为:我认为WPF和Direct2D互操作的共享曲面格式必须是B8G8R8A8_UNorm,但我无法在该类型的纹理上为我的计算着色器创建无序访问视图 如何使计算着色器在此场景中工作?我错过了一些制造无人机的技巧吗?我是否

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

  • 加载初始图像数据
  • 运行DirectX 11计算着色器进行一些图像处理
  • 使用Direct2D在顶部绘制
  • 在我的WPF应用程序中显示结果
  • 我想我已经算出了1,3,4,但是2让我头疼。我的基本问题归结为:我认为WPF和Direct2D互操作的共享曲面格式必须是
    B8G8R8A8_UNorm
    ,但我无法在该类型的纹理上为我的计算着色器创建无序访问视图


    如何使计算着色器在此场景中工作?我错过了一些制造无人机的技巧吗?我是否需要以某种方式重新构造我的应用程序以使用多个纹理?

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

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