我的當前代碼是具有自定義圖像視圖的正常WPF。我需要平移和縮放非常高分辨率的圖片,但當然這需要大量的CPU-Power來完成。用於平移和縮放5000x5000圖片的WPF或DirectX?
我的問題是:如果我將控件從圖像視圖更改爲像directX這樣會增加我的縮放和平移expirience很多或沒有這麼大的差異? (我們使用的圖形卡是Nvidia ion2,CPU是一個高達2 Ghz的Intel原子)
我的當前代碼是具有自定義圖像視圖的正常WPF。我需要平移和縮放非常高分辨率的圖片,但當然這需要大量的CPU-Power來完成。用於平移和縮放5000x5000圖片的WPF或DirectX?
我的問題是:如果我將控件從圖像視圖更改爲像directX這樣會增加我的縮放和平移expirience很多或沒有這麼大的差異? (我們使用的圖形卡是Nvidia ion2,CPU是一個高達2 Ghz的Intel原子)
2D加速並不像3D那樣完美。請參閱benchmarks。 我相信使用圖片作爲紋理並控制相機進行平移和縮放應該會提高性能。
從我所知的WPF使用DirectX渲染其內容,所以我不認爲這會給你一個高性能提升。
如果你有性能問題,我會認爲答案是通過你的緩存algorythm。
WPF圖形不是很強大。我們在Direct3D9中完成了所有圖形渲染,並且只在D3DImage控件中顯示3D場景。
在談論大型位圖渲染時,我們發現最好的方法是創建Direct3D紋理。創建它的速度相當快,並且在圖像尺寸小於GPU本機支持的情況下渲染速度非常快(caps.MaxTextureWidth,caps.MaxTextureHeight)。通常是8k x 8k或16k x 16k。談論數百MB的位圖,並且應該足以供您使用。
要查看可以使用它獲得的性能,可以下載我們的Chart control,將大的位圖設置爲背景圖像以生成地理圖。然後你看也有多快過於放大&鍋等擊敗WPF內置的圖像處理肯定:-)
(我在Arction LightningChart開發商之一)
我從來沒有做過任何DirectX,但我認爲這將是一個矯枉過正的(或是否?).. – Martin 2011-03-24 10:15:52
wasnt甚至很難..謝謝! wpf 3d比2d更好;) – Martin 2011-03-24 13:28:22