2009-09-15 26 views
20

He escuchado buenas críticas del Visualization ToolKit (VTK) de los desarrolladores. Pero, ¿qué tan poderoso es? Por ejemplo, ¿puede manejar la visualización de un depósito de petróleo completo (en un simulador) con miles de millones de puntos de malla? La mayoría de los simuladores de yacimientos industriales se ejecutan en procesadores paralelos. Sé que VTK es compatible con el procesamiento en paralelo, pero una vez más, ¿qué tan estable puede ser utilizar procesadores paralelos cuando se ejecuta algo así como simulaciones de yacimientos? ¿Alguien ha usado VTK en un proyecto de tan gran escala?¿Qué tan bueno es VTK?

Mathematica admite algunas simulaciones de yacimientos simples, pero creo que utiliza las bibliotecas Java Swing. Entonces, ¿alguien tiene alguna idea de que VTK se utilice para una visualización poderosa que no sea 3DSplice? Además, ¿alguien puede decir algo sobre el tiempo de desarrollo usando VTK?

Respuesta

11

VTK está codificado en C++ y se puede usar en C++, Python, Tcl/Tk, Java. Laboratorios como Sandia (incluido, creo, su esfuerzo Titan), Los Alamos y Livermore, utilizan VTK para los esfuerzos de visualización en una escala lo suficientemente grande como para rivalizar con sus ambiciones (por supuesto, esto se hace con grandes cantidades de hardware en apoyo, y programadores extremadamente hábiles con mucha experiencia con VTK y todas las demás tecnologías utilizadas en el proyecto: "miles de millones de puntos de malla" no es un proyecto que deba abordarse hasta que tenga un equipo con habilidades tan extremas, no con CUALQUIER herramienta).

No estoy afirmando que esto (un proyecto de visualización de la escala ferozmente ambiciosa que tiene en mente) será FÁCIL, no importa cómo lo aborde, pero no puedo pensar en ningún marco alternativo que pueda hacer ¡es más fácil que VTK! -)

+0

Básicamente, soy ingeniero petrolero pero soy un apasionado de la programación (sé que hay una diferencia entre ser apasionado y ser hábil). Contamos con un equipo de programadores expertos que han participado en el desarrollo de simuladores de yacimientos. Últimamente, hemos estado pensando en VTK. Entonces, ¿qué pasa con el tiempo de desarrollo? –

+1

El tiempo de desarrollo puede ser más rápido que cualquier otro kit de herramientas similar que he escuchado, pero ajustar y optimizar para ejecutar visualizaciones de mil millones de nodos RÁPIDO en clústeres grandes todavía se sentirá como que lleva una eternidad: es un problema intrínsecamente DURO. No conozco ninguna herramienta que haga su desarrollo más rápido que VTK, pero eso no significa que le GUSTARÁ la cantidad de esfuerzo involucrado incluso con VTK (entonces, ¿cuál es la alternativa, no hacer nada en absoluto, ya que es muy difícil?) –

+0

También hay algunas desventajas (por mi corta experiencia personal con ella): * La documentación podría ser (mucho) mejor. * Solo una lista de correo, ningún foro. * Si las cosas no funcionan, es difícil averiguar por qué. * La calidad de la API es regular (nombres impares, funciones duplicadas, conceptos impares) – Bim

-2

Definir qué tan "potente" VTK (o cualquier biblioteca) es imposible. Todo depende de tus necesidades. No es como si pudieras tirar cualquier cuadrícula en VTK, reforzar con montones de hardware y esperar que funcione sin problemas. VTK no está orientado a modelos enormes; sin embargo, hay una biblioteca llamada Paraview que intenta respaldar esto.

Nota: visualizamos millones de modelos de células de forma interactiva en computadoras portátiles simples (no usando VTK/Paraview). ¿Cómo? Supongo que es un secreto ... :)

+0

Quiero votar esto por mencionar ParaView, pero ParaView es un programa independiente, no una "biblioteca". Además, su función no es agregar soporte de datos grandes a VTK. Por ahora, estoy obligado a votar -1 por ser técnicamente incorrecto. – Eric

3

Mi experiencia personal con VTK es positiva, pero solo con pequeños conjuntos de datos. Definitivamente puede ser muy lento si tiene grandes conjuntos de datos, como en su caso. En el lado positivo, tiene tantos modos de visualización que es impensable reescribirlos en OpenGL puro. No sé de dónde viene la lentitud de VTK, pero la arquitectura de la tubería probablemente no ayude. Además, gran parte depende del filtro que use. La trama volumétrica, por ejemplo, es terriblemente lenta por la construcción (muchos planos transparentes paralelos).

Una solución que encontramos útil fue recortar el conjunto de datos al mínimo indispensable antes de trazarlo. Muy a menudo, la pérdida de precisión visual es insignificante. También puedes probar con el filtro LevelOfDetail (LOD) pero no tengo experiencia con él.

7

VTK es un conjunto de herramientas bastante potente ya que ofrece implementaciones razonablemente eficientes de una amplia variedad de algoritmos de visualización. Para ver algo de lo que VTK puede hacer, recomiendo consultar ParaView. ParaView construye aplicaciones utilizables alrededor de VTK para que pueda visualizar datos de forma inmediata uniendo varios componentes VTK.

Para abordar sus preguntas de forma más directa, el procesamiento paralelo en VTK se utiliza para acelerar la creación de la visualización. Esto debería ser estable, pero independiente de su cálculo de simulación. Aprender a usar VTK lleva algo de tiempo, pero hay un libro que puedes comprar que explica muchos aspectos de cómo usarlo. Experimentar con los envoltorios de Python es una buena forma de ponerse al día sobre cómo usar VTK.

Para sus aplicaciones, no estoy seguro de si VTK es la solución más adecuada.Recomendaría algunos experimentos a pequeña escala utilizando enlaces ParaView o Python VTK para ver si puede crear una visualización razonable de sus simulaciones.

+0

+1 Para referencia de ParaView. Tenga en cuenta que también hay [VisIt] (https://wci.llnl.gov/codes/visit/) que hace un trabajo similar. También es útil tener en cuenta que las visualizaciones ParaView y VisIt pueden ser creadas mediante Python. – Chris

Cuestiones relacionadas