2010-10-04 12 views
5

¿Alguien tiene experiencia para comparar bastante VTK y OpenSceneGraph? Estoy más familiarizado con VTK, pero tengo curiosidad sobre si alguien ha intentado ambos extensamente.VTK (juego de herramientas de visualización) versus OSG (OpenSceneGraph), ¿otro?

Tengo ambos compilados, 5.6 vtk y 2.9.9 osg, puedo ejecutar los ejemplos ... a primera vista OSG parece más "rudo", pero quizás eso está bien. En particular, me preocupa poder jugar con OpenGL de bajo nivel en VTK; p.ej. Apuesto a que glReadPixels se comportaría mejor con OSG. ¿Comentarios?

(o hay un buen 'otro' que me falta? Sé que existen otros, pero por favor, eche un vistazo al alcance masivo de OSG y VTK ...)

Respuesta

10

VTK y OSG realmente resolver diferentes problemas, entonces, ¡lo que debe usar depende de lo que está tratando de lograr! VTK está destinado principalmente a la visualización científica, y como tal está más orientado a los algoritmos de visualización de datos. Puede tener cierta capacidad para trabajar en un modo de gráfico de escena, pero principalmente para que se puedan registrar diferentes conjuntos de datos (superpuestos) uno encima del otro. En realidad, no está destinado a representar escenas arbitrarias (aunque podría meterse en él). Y tiene razón, no se pretende que mezcle llamadas OpenGL con VTK. De nuevo, se puede hacer, pero no es necesariamente fácil.

OSG, por otro lado, es el sucesor espiritual del Ejecutante de SGI, y está destinado más a escenas gráficas arbitrarias. Es muy dependiente de la metáfora de la escena-gráfico, sobre la cual te animo a leer (wikipedia tiene un artículo decente). No tengo mucha experiencia con eso (estar más en el lado de sci-vis de las cosas).

En resumen, si desea ver isosuperficies de datos volumétricos, visualizaciones de campo de flujo u otras visualizaciones derivadas de datos científicos, vaya con VTK. Si está tratando de implementar un mundo virtual de algún tipo, vaya con OSG (o algo similar). Si está tratando de lograr algo más, infórmenos, y quizás alguien pueda recomendar una herramienta más adecuada para sus necesidades.

+0

Bueno, realmente estoy en un área gris, por lo tanto, tengo que decidir con cuidado. Necesito un 'mundo vritual', pero puede ser extremadamente simple, creo que algunos edificios vtkPolyData y un gran rectángulo de suelo con texturas pegadas lo harían. Lo que realmente necesito hacer es leer los datos de la imagen que se procesan, hacer algunos cálculos en otro lugar de la alimentación de la imagen, y posiblemente actualizar la geometría como resultado. Entonces realmente necesito una forma de 'capturar la pantalla' de manera eficiente; p.ej. glReadPixels() sería genial si VTK puede hacerlo, simplemente no sé dónde poner esa llamada. –

+0

Veo que hay una 'vtkOpenGLStateCache', pero de todos modos voy a canalizar todo a OpenCV, así que preferiría evitar más vtk OO-wrapping de lo necesario. –

+1

Ya veo. En primer lugar, si tiene vtkRenderWindow, puede llamar a vtkRenderWindow :: Get [RGBA] PixelData y devolverá un bloque de píxeles, ya sea como un puntero sin formato o en un tipo vtkArray. Para ser sincero, tanto OSG como VTK parecen un poco exagerados. ¿Ha considerado utilizar OpenGL? O, según su lenguaje de programación, probablemente haya algunas bibliotecas de renderizado de escenas ligeras que podría usar. – Gretchen

Cuestiones relacionadas