1

我当前的代码是带有自定义图像视图的普通 WPF。我需要平移和缩放一张非常高分辨率的图片,但当然它需要大量的 CPU 能力才能做到这一点。

我的问题是:如果我将控件从图像视图更改为 DirectX 之类的控件,这会大大增加我的缩放和平移体验,还是没有这么大的区别?(我们使用的显卡是 Nvidia ion2,CPU 是最高 2 Ghz 的 intel atom)

4

3 回答 3

3

2D 加速不如 3D 完善。在此处查看基准。我相信使用图片作为纹理并控制相机进行平移和缩放应该会大大提高性能。

于 2011-03-24T10:01:56.313 回答
0

据我所知,WPF 使用 DirectX 来呈现其内容,因此我认为这不会给您带来高性能的提升。

如果您遇到性能问题,我认为答案是查看您的缓存算法。

于 2011-03-24T09:48:17.747 回答
0

WPF 图形不是很强大。我们已经在 Direct3D9 中进行了所有的图形渲染,并且只在 D3DImage 控件中显示了 3D 场景。

在谈到大型位图渲染时,我们发现最好的方法是创建 Direct3D 纹理。当图像尺寸小于 GPU 原生支持的(caps.MaxTextureWidth,caps.MaxTextureHeight)时,它的创建速度相当快,并且渲染本身非常快。这通常是 8k x 8k 或 16k x 16k。谈论数百 MB 的位图,也应该足以供您使用。

要查看可以使用它获得的性能,您可以下载我们的图表控件,将大位图设置为背景图像到地理地图。然后您还会看到缩放和平移等速度有多快。肯定会击败 WPF 内置图像处理 :-)

(我是 Arction 的 LightningChart 开发人员之一)

于 2013-03-23T13:52:55.493 回答