【问题标题】:DirectX on WPF GeometryWPF 几何上的 DirectX
【发布时间】:2014-01-08 06:39:29
【问题描述】:

我有一个问题: 我需要在画布中绘制一些 WPF 几何图形,并且每个几何图形的表面都是 Direct3D 11 中的复杂 Texture2D。我正在使用 SharpDX 并将 Texture2D 转换为 MemoryStream 然后转换为 WPF ImageSource,因为我正在使用计算着色器,UAV 纹理不支持 Format.Bgra,所以我不能使用 D3DImage。由于存在性能问题,如何将 Texture2D 直接绑定到 WPF Geometry?谢谢。

【问题讨论】:

    标签: c# wpf directx direct3d directcompute


    【解决方案1】:

    出于性能原因,您应该使用 SharpDX 执行整个渲染,而不是使用 WPF 几何图形,仅使用 D3DImage 将渲染结果与 WPF 同步。如果您需要将纹理从一种格式转换为另一种格式以匹配 WPF 格式,您可以简单地使用复制纹理的简单着色器渲染一个完整的四边形。如果您使用 SharpDX Toolkit 执行此操作,则开发它相当容易,因为它提供了 WPF 控件。

    【讨论】:

    • 谢谢,我现在正在使用 D3DImage。我们现在需要对几何图形进行缩放,对于分辨率问题,我需要对 d3dimage 应用变换矩阵,并且我仍然需要对几何图形应用渲染变换,目前,当缩放它们的大小时,如何同步它们总是不同。谢谢
    【解决方案2】:

    简短的回答是您不能,WPF 3D 仍处于起步阶段,自定义着色器支持仅可用于 2D 效果。目前我能提供的最佳建议是将您的几何图形渲染到 XNA 表面上,并将其显示在 AirspacePopup 中,并在顶部显示您的 WPF 控件。

    【讨论】:

    • 好吧,我没有使用 WPF 3D,只是 WPF2D 中的 PathGeometry,只有表面是由计算着色器计算的 2d 纹理。但我在几何中没有找到效果属性。如何将 wpf 几何图形渲染到 XNA 表面上?谢谢
    猜你喜欢
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多