Question

J'ai entendu de bons commentaires sur le Visualization ToolKit (VTK) de la part des développeurs. Mais à quel point est-il puissant? Par exemple, peut-il gérer la visualisation d’un réservoir d’huile entier (dans un simulateur) avec des milliards de points de grille? La plupart des simulateurs de réservoir industriels fonctionnent sur des processeurs parallèles. Je sais que VTK prend en charge le traitement en parallèle, mais encore une fois, à quel point peut-il être stable en utilisant des processeurs parallèles lorsqu’il exécute une simulation de réservoir? Quelqu'un at-il utilisé VTK sur un projet de cette envergure?

Mathematica prend en charge certaines simulations de réservoir simples, mais je pense qu’il utilise les bibliothèques Java Swing. Alors, est-ce que quelqu'un a une idée de l'utilisation de VTK pour une visualisation puissante autre que 3DSplice? De plus, quelqu'un peut-il dire quelque chose sur le temps de développement en utilisant VTK?

Était-ce utile?

La solution

VTK est codé en C ++ et utilisable en C ++, Python, Tcl / Tk, Java. Des laboratoires tels que Sandia (y compris, je crois, leurs efforts Titan ), Los Alamos et Livermore, utilisent VTK pour des efforts de visualisation à une échelle suffisamment grande pour rivaliser avec vos ambitions (bien sûr, cela nécessite un énorme support matériel, et des programmeurs extrêmement compétents très expérimentés avec VTK et toutes les autres technologies utilisées dans le projet - "milliards des points de grille "n'est pas un projet à aborder tant que vous n'avez pas une équipe avec des compétences aussi extrêmes, ni avec AUCUNE boîte à outils).

Je ne le prétends pas (un projet de visualisation de l'échelle extrêmement ambitieuse que vous avez à l'esprit) va être facile quelle que soit la façon dont vous l'abordez - mais je ne peux penser à aucun cadre alternatif qui le rendrait plus facile que ne le ferait VTK! -)

Autres conseils

VTK est une boîte à outils assez puissante car elle offre des implémentations relativement efficaces d’une grande variété d’algorithmes de visualisation. Pour savoir ce que VTK peut faire, je vous recommande de consulter ParaView . ParaView crée une application utilisable autour de VTK pour vous permettre de visualiser immédiatement les données en couplant plusieurs composants VTK.

Pour répondre plus directement à vos questions, le traitement parallèle dans VTK est utilisé pour accélérer la création de la visualisation. Cela devrait être stable, mais indépendant du calcul de votre simulation. Apprendre à utiliser VTK prend un certain temps, mais vous pouvez acheter un livre qui explique de nombreux aspects de son utilisation. Expérimenter avec les wrappings Python est un bon moyen de se familiariser avec l’utilisation de VTK.

Pour vos applications, je ne sais pas si VTK est la solution la plus appropriée. Je recommanderais des expériences à petite échelle utilisant les liaisons ParaView ou Python VTK pour voir si vous pouvez créer une visualisation raisonnable de vos simulations.

Mon expérience personnelle avec VTK est positive, mais uniquement avec de petits ensembles de données. Cela peut certainement être très lent si vous avez de grands ensembles de données, comme dans votre cas. Sur le plan positif, il présente tellement de modes de visualisation qu'il est impensable de les réécrire en OpenGL pur. Je ne sais pas d'où vient la lenteur de VTK, mais l'architecture du pipeline n'aide probablement pas. En outre, cela dépend en grande partie du filtre que vous utilisez. Le tracé volumétrique, par exemple, est incroyablement lent par construction (nombreux plans transparents parallèles).

Une solution que nous avons trouvée utile consiste à réduire au minimum le jeu de données avant de le tracer. Très souvent, la perte de précision visuelle est négligeable. Vous pouvez également essayer avec le filtre LevelOfDetail (LOD) mais je n’ai aucune expérience avec lui.

Définition de la puissance de " puissant " VTK (ou n'importe quelle bibliothèque) est impossible. Tout dépend de vos besoins. Ce n'est pas comme si vous pouviez jeter n'importe quelle grille chez VTK, augmenter votre charge de matériel et vous attendre à ce qu'elle fonctionne correctement. VTK n’est pas conçu pour les gros modèles. Il existe cependant une bibliothèque appelée Paraview qui tente de prendre en charge cette fonctionnalité.

Sidenote: nous visualisons des milliards de modèles de cellules de manière interactive sur des ordinateurs portables ordinaires (sans utiliser VTK / Paraview). Comment? Je suppose que c'est un secret ...)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top