Domanda

Ho sentito alcune buone recensioni di Visualization ToolKit (VTK) dagli sviluppatori. Ma esattamente quanto è potente? Ad esempio, può gestire la visualizzazione di un intero serbatoio di petrolio (in un simulatore) con miliardi di punti griglia? La maggior parte dei simulatori di serbatoi industriali funzionano su processori paralleli. So che VTK supporta l'elaborazione parallela, ma di nuovo quanto può essere stabile utilizzando processori paralleli durante l'esecuzione di simulazioni di serbatoi? Qualcuno ha usato VTK in un progetto su così vasta scala?

Mathematica supporta alcune semplici simulazioni del serbatoio, ma penso che utilizzi le librerie Java Swing. Quindi, qualcuno ha idea del VTK utilizzato per una visualizzazione potente diversa da 3DSplice? Inoltre, qualcuno può dire qualcosa sui tempi di sviluppo usando VTK?

È stato utile?

Soluzione

VTK è codificato in C ++ e utilizzabile in C ++, Python, Tcl / Tk, Java. Lab come Sandia (incluso, credo, il loro Titan ), Los Alamos e Livermore, usano VTK per gli sforzi di visualizzazione su una scala abbastanza grande da competere con le tue ambizioni (ovviamente, questo è fatto con enormi quantità di hardware a supporto e programmatori estremamente qualificati molto esperti con VTK e tutte le altre tecnologie utilizzate nel progetto - & miliardi; di punti griglia "non è un progetto da affrontare fino a quando non avrai una squadra con abilità così estreme, non con QUALSIASI toolkit).

Non sto affermando questo (un progetto di visualizzazione della scala ferocemente ambiziosa che hai in mente) sarà FACILE, non importa come lo affronti, ma non riesco a pensare a nessun framework alternativo che lo renderebbe più facile di quanto VTK! -)

Altri suggerimenti

VTK è un toolkit piuttosto potente in quanto offre implementazioni ragionevolmente efficienti di un'ampia varietà di algoritmi di visualizzazione. Per vedere alcune delle operazioni che VTK può fare, ti consiglio di dare un'occhiata a ParaView . ParaView sviluppa un'applicazione utilizzabile attorno a VTK in modo da poter visualizzare immediatamente i dati accoppiando vari componenti VTK insieme.

Per rispondere più direttamente alle tue domande, l'elaborazione parallela in VTK viene utilizzata per accelerare la creazione della visualizzazione. Questo dovrebbe essere stabile, ma indipendente dal calcolo della simulazione. Imparare a usare VTK richiede del tempo, ma è possibile acquistare un libro che spiega molti aspetti di come utilizzarlo. Sperimentare con gli involucri Python è un buon modo per informarsi su come usare VTK.

Per le tue applicazioni, non sono sicuro che VTK sia la soluzione più adatta. Consiglierei alcuni esperimenti su piccola scala usando i collegamenti ParaView o Python VTK per vedere se riesci a creare una visualizzazione ragionevole delle tue simulazioni.

La mia esperienza personale con VTK è positiva, ma solo con piccoli set di dati. Può sicuramente essere molto lento se hai set di dati di grandi dimensioni, come nel tuo caso. Tra i lati positivi, sfoggia così tante modalità di visualizzazione che è impensabile riscriverle in OpenGL puro. Non so da dove provenga la lentezza di VTK, ma probabilmente l'architettura della pipeline non aiuta. Inoltre, gran parte dipende dal filtro utilizzato. Il diagramma volumetrico, ad esempio, è follemente lento per costruzione (molti piani paralleli trasparenti).

Una soluzione che abbiamo trovato utile era tagliare il set di dati al minimo indispensabile prima di tracciarlo. Molto spesso, la perdita di precisione visiva è trascurabile. Puoi anche provare con il filtro LevelOfDetail (LOD) ma non ho esperienza con esso.

Definizione di come " potente " VTK (o qualsiasi libreria) è impossibile. Dipende dai tuoi bisogni. Non è che puoi lanciare qualsiasi griglia su VTK, rinforzare con un sacco di hardware e aspettarti che funzioni senza intoppi. VTK non è orientato verso modelli enormi, tuttavia esiste una libreria denominata Paraview che tenta di supportare questo.

Sidenote: visualizziamo miliardi di modelli di celle in modo interattivo su laptop semplici (non usando VTK / Paraview). Come? Immagino sia un segreto ... :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top