2014-01-08 103 views
1

我只是有一個問題: 我需要在畫布中繪製一些WPF幾何圖形,並且每個幾何圖形的表面都是Direct3D 11中複雜的Texture2D。我使用SharpDX並將Texture2D轉換爲MemoryStream然後轉換爲WPF ImageSource,因爲我使用的是Compute Shader,Format.Bgra不支持UAV紋理,所以我不能使用D3DImage。由於存在性能問題,我如何直接將Texture2D綁定到WPF幾何?謝謝。WPF幾何上的DirectX

回答

0

出於性能方面的原因,您應該使用SharpDX執行整個渲染,而不是使用WPF幾何圖形,只有D3DImage才能將渲染結果與WPF同步。如果您需要將紋理從一種格式轉換爲另一種格式以匹配WPF格式,則可以使用複雜紋理的簡單着色器簡單渲染完整四邊形。如果您使用SharpDX Toolkit進行此操作,則可以很容易地開發它,因爲它提供了一個WPF控件。

+0

謝謝,我現在使用D3DImage。我們現在需要在幾何上進行縮放,對於分辨率問題,我需要將轉換矩陣應用於d3dimage,並且我仍然需要將渲染轉換應用於幾何,我如何同步它們,當前,縮放它們的尺寸時總是不同的。謝謝 – WindyBamboo

0

簡短的回答是你不能,WPF 3D仍處於起步階段,自定義着色器支持僅適用於2D效果。我現在可以提供的最佳建議是將幾何圖形渲染到XNA表面,並將其顯示在AirspacePopup中,並將WPF控件放在頂部。

+0

那麼,我沒有使用WPF 3D,只是WPF2D中的PathGeometry,只有曲面是由計算着色器計算出來的2D紋理。但是我在幾何中沒有找到一個效果屬性。我如何將一個wpf幾何體渲染到XNA表面上?謝謝 – WindyBamboo