Image Based Flow Visualization(IBFV)

<script src="http://widgets.amung.us/classic.js" type="text/javascript"></script>

Image Based Flow Visualization

 

IBFV(Image Based Flow Visualization)是利用噪點圖(noise image)來模擬向量場運動的一種可視化方法。爲了瞭解IBFV,先來看看它的原理。如下圖

ibfv01

 

 

 

從上圖中可以看到,在一個2D向量場(vector field)中有很多樣點(sampling),這些樣點都在網格(grid)上。每個樣點受到向量場的影響,在Δt時刻後,產生速度和位移。由於向量場的影響,網格就要發生變形,如上圖中的(warped grid)。然後,我們再用噪點圖作爲網格的texture,和flow texture進行混合(blending)。上圖中map textureinject nosieflow texture是個循環的過程,這樣就能產生像流動一樣的效果。要注意的是,這裏不能只使用一張噪點圖,因爲我們想到得到動畫的效果。所以我們可以預先用代碼隨機的生成很多張。

 

上面的代碼隨機生成噪點圖。有了噪點圖我們就可以在進行對網格貼圖的時候,順序的取出噪點圖。下面來看看如何計算向量場對網格的影響。假設向量場中一點p的位置爲p(x,y),那麼在 Δt時刻後,p’的位置爲:

 

 

這裏假設在很短的Δt時刻內,p做勻速直線運動。這樣就可以得到2D向量場中每個樣點受向量場影響在Δt時刻後的位置了。利用這個位置座標作爲噪點圖的貼圖座標,然後和inject noise進行混合。然後重複這個步驟,就可以得到連續的動畫效果,如下圖。

 

 

ibfv01

 

 

如果我們在inject noise階段,把inject noise用color map進行貼圖,那麼我們可以得到彩色的流動畫。比如,我們用紅色代表速度快的部分,藍色代表速度慢的部分,如下圖。

 

ibfv03

 

 

下面列出主要的pseudo代碼

 

*原創文章,轉載請註明出處*

發佈了31 篇原創文章 · 獲贊 17 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章