2010-10-04 3 views
5

Est-ce que quelqu'un a de l'expérience pour comparer VTK et OpenSceneGraph? Je suis plus familier avec VTK, mais je suis curieux de savoir si quelqu'un a essayé les deux intensivement.VTK (boîte à outils de visualisation) versus OSG (OpenSceneGraph), autre?

Je ai construit tous les deux, 5.6 vtk et 2.9.9 OSG, peut exécuter les exemples ... à première vue OSG semble plus «rugueux», mais c'est peut-être OK. En particulier, je m'inquiète de pouvoir jouer avec un openGL de bas niveau en VTK; par exemple. Je parie que glReadPixels se comporterait mieux avec OSG. Commentaires?

(ou est-il une belle « autre » que je suis absent? Je sais que d'autres existent, mais s'il vous plaît jeter un oeil à la portée massive de VTK et ... OSG)

Répondre

10

VTK et vraiment résoudre OSG différents problèmes, alors que vous devriez utiliser dépend de ce que vous essayez d'accomplir! VTK est principalement destiné à la visualisation scientifique, et en tant que tel est plus orienté vers les algorithmes de visualisation de données. Il peut avoir une certaine capacité à travailler dans un mode graphique de scène, mais principalement pour que différents jeux de données puissent être enregistrés (superposés) les uns sur les autres. Ce n'est pas vraiment destiné à représenter des scènes arbitraires (même si cela peut être fait). Et vous avez raison, il n'est pas prévu que vous mixiez les appels OpenGL avec VTK. Encore une fois, cela peut être fait, mais ce n'est pas nécessairement facile. D'autre part, OSG est le successeur spirituel de l'interprète de SGI, et est plus destiné à des scènes graphiques arbitraires. Cela dépend beaucoup de la métaphore de la scène, ce que je vous encourage à lire (wikipedia a un article décent). Je n'ai pas beaucoup d'expérience avec ça (être plus sur le côté scientifique des choses). En bref, si vous souhaitez afficher des isosurfaces de données volumétriques, des visualisations de champs d'écoulement ou d'autres visualisations dérivées de données scientifiques, optez pour VTK. Si vous essayez d'implémenter un monde virtuel, allez avec OSG (ou quelque chose de similaire). Si vous essayez d'accomplir autre chose, faites le nous savoir, et peut-être quelqu'un peut vous recommander un outil plus adapté à vos besoins.

+0

Eh bien, je suis vraiment dans une zone grise, d'où j'ai besoin de décider avec soin. J'ai besoin d'un 'monde virtuel' mais cela peut être extrêmement simple, je pense que quelques bâtiments vtkPolyData et un grand rectangle pour le sol avec des textures collées le feraient. Ce que je dois vraiment pouvoir faire est de lire les données d'image qui sont rendues, d'effectuer d'autres calculs ailleurs sur le flux d'image, puis éventuellement de mettre à jour la géométrie. Donc, j'ai vraiment besoin d'un moyen de «screengrab» efficacement; par exemple. glReadPixels() serait génial si VTK peut le faire, je ne sais pas où mettre cet appel. –

+0

Je vois qu'il y a un 'vtkOpenGLStateCache', mais je vais tout simplement rediriger tout vers OpenCV, donc je préfère éviter plus de vtk OO-wrapping que nécessaire. –

+1

Je vois. Tout d'abord, si vous avez vtkRenderWindow, vous pouvez appeler vtkRenderWindow :: Get [RGBA] PixelData dessus, et il retournera un bloc de pixels - soit comme un pointeur brut, soit dans un type vtkArray. Pour être franc, OSG et VTK sonnent comme un peu exagéré - avez-vous envisagé d'utiliser OpenGL? Ou, selon votre langage de programmation, il y a probablement des bibliothèques de rendu de scène légères que vous pourriez utiliser. – Gretchen

Questions connexes