Top Qs
Chronologie
Chat
Contexte
VTK
logiciel informatique De Wikipédia, l'encyclopédie libre
Remove ads
VTK (pour Visualization ToolKit en anglais) est une bibliothèque logicielle libre sous licence BSD de classes C++ pour la visualisation scientifique de données 3D et le traitement d'images. Elle s'interface facilement avec les langages Python et Java. Elle a été développée à partir de 1993 au Centre de Recherche du groupe General Electric et utilisée en premier dans le domaine médical. Par la suite ses développeurs (Will Schroeder et Ken Martin) ont fondé la société Kitware Inc. aux États-Unis pour assurer le support commercial et continuer le développement de ce produit.


Remove ads
Caractéristiques
VTK supporte l'import et l'export de données depuis les formats VTK (format de fichier), mais peut aussi lire de nombreux formats issus de solveurs numériques comme OpenFOAM ou Ansys Fluent.
VTK est une bibliothèque multiplateforme, et peut être compilée pour MacOS, Windows, Linux, mais aussi Android et WebAssembly.
Le rendu graphique de VTK repose sur le standard OpenGL avec un support expérimental pour ANARI[2] et WebGPU[3]. Du rendu réaliste par lancer de rayon est aussi possible via l'intégration de la librairie open source Ospray, ainsi que du rendu physique réaliste (PBR).
Les algorithmes intégrés dans VTK proposent une version parallèle, pour une utilisation avec des données massives dans un contexte de calcul haute performance.
Remove ads
Architecture
Résumé
Contexte
VTK est construit autour d'une architecture composée de modules. Ces différents modules peuvent être activés ou non au moment de la compilation en utilisant CMake. Les classes VTK définissant des algorithmes sont appelés "filtres" et peuvent produire, transformer ou exporter des données.
Le modèle de données de VTK est prévu pour être flexible et supporte de nombreux types de maillages, en deux et trois dimensions: les maillages structurés, uniformes et rectilignes, mais aussi non structurés, qui définissent les coordonnées des points, ainsi que leur connectivité, formant ainsi des cellules. VTK supporte aussi l'exécution de filtres sur des données définies par raffinement de maillage adaptatif (AMR), basé sur des patches ou des arbres (HyperTreeGrid), mais aussi les cellules d'ordre élevé via le modèle vtkCellGrid[4].
L'utilisateur de VTK définit un pipeline composés de filtres successifs, le premier étant généralement une source standard ou un lecteur de fichier, et le dernier étant une action d'écriture ou de rendu. L'évaluation de ce pipeline suit un modèle d'exécution paresseuse séquentielle : les filtres en amont du pipeline ne sont évalués que lorsqu'un filtre en aval demande un résultat.
Les modèles de données et l'exécution des pipelines VTK sont prévus pour être distribuables entre plusieurs processeurs ou ordinateurs grâce à l'utilisation de MPI.
Au delà de l'interface de programmation C++, VTK fournit également une couche interprétée en Python, Java et .NET (via la bibliothèque propriétaire ActiViz).
Remove ads
Domaines d'utilisation
VTK est à la base de plusieurs logiciels de visualisation scientifique libres tels que ParaView et VisIt. La bibliothèque PyVista fournit une API de haut niveau au dessus de VTK pour les utilisateurs de Python.
VTK est aussi utilisé dans une variété de domaines scientifiques, parmi lesquels figurent:
Exemples
Création d'une sphère bleue avec la bibliothèque VTK Python.
from vtkmodules.vtkFiltersSources import vtkSphereSource
from vtkmodules.vtkRenderingCore import (
vtkPolyDataMapper,
vtkActor,
vtkRenderWindow,
vtkRenderer,
vtkRenderWindowInteractor,
)
import vtkmodules.vtkRenderingOpenGL2
import vtkmodules.vtkInteractionStyle
# Instanciation de l'objet sphère
sphere = vtkSphereSource()
sphere.SetRadius(2.0)
sphere.SetThetaResolution(16)
sphere.SetPhiResolution(16)
# Création du mapper, l'interface entre la donnée et le rendu
mapper = vtkPolyDataMapper()
mapper.SetInputConnection(sphere.GetOutputPort())
# Instanciation d'un acteur
actor = vtkActor()
actor.SetMapper(mapper)
actor.GetProperty().SetColor(0, 0.3, 1)
# Création de la sceène de rendu et ajout de l'objet sphere sur fond noir
renderer = vtkRenderer()
renderer.AddActor(actor)
renderer.SetBackground(0, 0, 0)
# Création de la fenêtre de rendu
ren_win = vtkRenderWindow()
ren_win.AddRenderer(renderer)
# Instanciation de l'interacteur
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow(ren_win)
# Lancement du rendu de l'image
ren_win.Render()
iren.Start()
Remove ads
Bibliographie
- (en) W.J. Schroeder, L.S. Avila, W. Hoffman, Visualizing with VTK: A tutorial, IEEE Transaction on Computer Graphics and Applications, 2000, 20(5), p. 20-27.
- (en) Carsten Zerbst, Scientific visualization with VTK and Tcl, Linux Magazine issue 16, 2002, p. 60-63.
- (en) Drew McCormack, Developing Visualization Applications with Cocoa and VTK, part1, part2, 2003
Références
Livres
Liens internes
Liens externes
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
