2011-05-12 116 views
2

我在Silverlight中使用WriteableBitmap作爲臨時存儲的工具,並最終繪製我的算法的結果,繪製看似平坦的二維均勻分佈的宇宙,其中有限的物。Silverlight上的高斯模糊WriteableBitmap

要SEEE「宇宙」(圖3)的定義:http://alienryderflex.com/homogeneity/

我使用位圖尺寸調整到aproximate算法,並獲得具有線性質量損失二次加速。

問題是我需要在圖像上做一個高斯模糊,以減小縮小和放大後的像素化,如果不存在則會增加算法的錯誤率。

你可以看到我的測試實現Here

如果按下Generate然後Draw,然後等待20秒,您將看到即使在輸出像素化時也可以看到。

但是我需要輸出位圖作爲算法第二階段的「物質密度圖」。

那麼如何在這些可寫位圖上進行高斯模糊? 我真的很想找到一個合適的實現,而不是寫我自己的,這將是非常費時的一系列整數 - >聖潔的基督沒有字節指針的圖像數據??

謝謝!

編輯:

爲了澄清:我需要的高斯模糊數據傳回操作就可以了:不僅是視覺上的模糊圖像。

回答

1

在silveright中做到這一點的最好方法是編寫自定義圖形效果。在Silverlight 3中,您可以將它們編寫爲DirectX .fx文件。這些將被硬件加速,並且將避免在不同圖像表示之間來回緩慢拷貝。

Here是一個介紹。有可能會更好,但它會讓你開始。關於像素着色器的很酷的事情是,它們速度如此之快,以至於您無需擔心優化。

+0

我知道如何對HLSL高斯模糊進行編碼,即使它必須在兩遍中完成,並且在HLSL中做到這一點非常痛苦。我已經在這裏做過了:http://marino.boletus.hr/3dpee.zip - 但!我唯一的問題是:在像素着色器應用了效果之後,我可以獲取位圖數據嗎?我不僅需要視覺數據。 – 2011-05-12 21:38:34