2009-09-15 127 views
20

我聽說過來自開發人員的可視化工具包(VTK)的一些很好的評論。但究竟它有多強大?例如,它可以處理具有數十億個網格點的整個油藏(在模擬器中)的可視化嗎?大多數工業油藏模擬器在並行處理器上運行。我知道VTK支持並行處理,但是在運行諸如儲層模擬之類的東西時,它又能如何穩定地利用並行處理器?有沒有人在如此大規模的項目中使用過VTK?VTK有多好?

Mathematica支持一些簡單的油藏模擬,但我認爲它使用Java Swing庫。那麼,沒有人有任何關於VTK被用於3DSplice之外的強大可視化的想法嗎?另外,任何人都可以談論使用VTK的開發時間嗎?

回答

11

VTK以C++編碼,可用於C++,Python,Tcl/Tk,Java。像桑迪亞這樣的實驗室(包括我相信他們的Titan努力),洛斯阿拉莫斯和利弗莫爾使用VTK進行可視化工作的規模足以與您的野心相媲美(當然,這是通過支持大量硬件來完成的,以及非常熟練的程序員對VTK和項目中使用的所有其他技術非常有經驗 - 「數十億網格點」不是一個需要解決的項目,除非你擁有一個擁有如此極端技能的團隊,而不是任何工具包)。

無論你如何解決這個問題,我都不會聲稱這是一個可視化項目(你想到的雄心勃勃的規模的可視化項目)會很容易 - 但我想不出任何可以使它比VTK更容易!)

+0

我基本上是石油工程師,但我非常熱愛編程(我知道有激情存在並且是技術之間的差異)。我們確實有一個團隊誰曾參與油藏模擬器的開發經驗的程序員的。最近,我們一直在想VTK。 那麼,開發時間呢? – 2009-09-18 07:36:26

+1

開發時間可能比任何其他類似工具,我曾經聽說過,但微調和對龐大的集羣運行數十億節點的可視化FAST仍然會覺得它採取永遠優化更快 - 這是一個固有的難題。我不知道有什麼工具可以使你的開發比VTK更快,但這並不意味着你會像VTK那樣花費大量的精力(所以有什麼選擇 - 什麼都不做 - 因爲它太難了 - )。 – 2009-09-21 05:26:38

+0

也有一些缺點太(從它在我簡短的個人經驗): *文件可能是(多)更好。 *只有郵件列表,沒有論壇。 *如果事情沒有奏效,很難找出原因。 * API質量馬馬虎虎(名字真怪,複製功能,奇概念) – Bim 2014-07-30 16:32:20

-2

定義「強大的」VTK(或任何庫)是不可能的。這一切都取決於你的需求。這不像你可以在VTK上投入任何電網,加上大量的硬件並期望它運行平穩。 VTK不適用於龐大的模型 - 但是有一個名爲Paraview的庫試圖支持這一點。

旁註:我們在普通筆記本電腦上交互式地顯示了十億個細胞模型(不使用VTK/Paraview)。怎麼樣?我想這是一個祕密...... :)

+0

我想這給予好評的提paraview包,但paraview包是一個獨立的程序,而不是一個「庫」。另外,它的作用並不是增加對VTK的大數據支持。目前,我被迫投1票,因爲在技術上不正確。 – Eric 2009-09-21 09:03:35

3

我個人對VTK的體驗是積極的,但只有小數據集。如果你的數據量很大,那肯定會很慢,就像你的情況一樣。從另一方面來說,它體現了很多可視化模式,在純OpenGL中重寫它們是不可想象的。我不知道VTK來自哪裏,但管道架構可能無濟於事。此外,它的大部分取決於您使用的過濾器。例如,體積圖通過建造(許多平行的透明平面)非常緩慢。

我們發現有用的解決方案是在繪製數據集之前將數據集修剪至最小值。很多時候,視覺準確度的損失可以忽略不計。您也可以嘗試使用LevelOfDetail(LOD)過濾器,但我沒有經驗。

7

VTK是一個非常強大的工具包,它提供了各種可視化算法的合理高效的實現。要查看一些VTK可以做的事情,我建議您查看ParaView。 ParaView圍繞VTK構建可用的應用程序,因此您可以通過將各種VTK組件連接在一起來立即可視化數據。

爲了更直接地解決您的問題,VTK中的並行處理用於加速創建可視化。這應該是穩定的,但與模擬計算無關。學習如何使用VTK需要一些時間,但有一本可以購買的書可以解釋如何使用它的許多方面。嘗試使用Python包裝是快速瞭解如何使用VTK的好方法。

對於您的應用程序,我不確定VTK是否是最合適的解決方案。我會推薦使用ParaView或Python VTK綁定進行一些小規模實驗,看看您是否可以創建合理的模擬可視化。

+0

+1用於ParaView參考。請注意,還有[VisIt](https://wci.llnl.gov/codes/visit/)可以做類似的工作。同樣有用的是,ParaView和VisIt可視化都可以使用Python編寫腳本。 – Chris 2011-12-07 22:53:28