Notre système de visualisation 3D sera basé sur les modules VTK, Qt et OpenGL. Le module VTK fournira des classes qui prendront en charge de manière transparente les couches Qt et OpenGL afin de faciliter la mise en oeuvre du processus de rendu 3D.
VTK (Visualization Tool Kit) est une librairie C++ sophistiquée pour l'infographie 3D, le traitement d'images, la modélisation, le rendu volumique et la visualisation scientifique. VTK est une extension des fonctionnalités OpenGL pour faciliter le rendu de scène 3D.
VTK = OpenGL + Fonctionnalités
Le module VTK s'appuie sur la couche OpenGL pour exploiter la puissance des processeurs graphiques GPU afin de bénéficier de l'accélération matérielle lors du rendu 3D.
QSurfaceFormat (Format de surface Qt pour OpenGL) est un ensemble de paramètres prédéfinis pour le rendu OpenGL. Il définit un certain nombre de paramètres OpenGL par défaut tels que, le profil, la version, la taille des tampons des couleurs RGBA, la taille des tampons de profondeur, le nombre d'échantillons par pixel.
QVTKOpenGLNativeWidget (Qt VTK OpenGL Native Widget) est un widget Qt pour le rendu OpenGL de données au format « VTK ». Il étend les fonctionnalités du widget Qt OpenGL « QOpenGLWidget » pour le rendu de données au format « VTK ».
QVTKOpenGLNativeWidget = QOpenGLWidget + Fonctionnalités
QOpenGLWidget = Qt + OpenGL + Fonctionnalités
QVTKOpenGLNativeWidget::defaultFormat (QSurfaceFormat pour VTK) est un ensemble de paramètres OpenGL prédéfinis pour le rendu de données au format « VTK ».
vtkCamera est une caméra virtuelle pour le rendu 3D de données « VTK ». vtkCamera permet de positionner et d'orienter le point de vue et le point focal de la caméra. vtkCamera permet de paramétrer la caméra selon 3 critères :
(1) La direction de la vue vers le haut de la caméra, par défaut, (0, 1, 0).
(2) La position de la caméra dans le repère du monde réel, par exemple, (0, 0, 10).
(3) Le point focal de la caméra dans le repère du monde réel, par exemple, (0, 0, 0).
vtkRenderer est un moteur de rendu 3D de données « VTK ». vtkRenderer contrôle le processus de rendu des objets dans le but de convertir la géométrie, l'éclairage et la vue de la caméra en une image. vtkRenderer effectue aussi la transformation des coordonnées entre les coordonnées du monde réel, les coordonnées de la vue (le système de coordonnées de rendu graphique) et les coordonnées d'affichage (les coordonnées réelles de l'écran). vtkRenderer peut également contrôler certaines fonctionnalités de rendu avancées, tel que l'éclairage bilatéral.
vtkActor représente une entité dans une scène de rendu de données « VTK ». vtkActor représente un objet qu'on veut visualiser dans la fenêtre de rendu de données « VTK ».