L'objectif de se projet est de réaliser un logiciel qui permette
la manipulation d'images 3D tant au format bitmap que sous forme de surfaces
définies par des ensembles de coordonnées de sommets. Les manipulations
que l'on souhaite pouvoir faire incluent:
- Visualisation d'une scène qui peut mélanger des objets
bitmaps 3D et vectoriels
- Modifier dynamiquement la composition de la scène (choisir
les objets qui sont visualisés ou non)
- Effectuer des traitements (par exemple traitement d'image) sur les
objets de la scène
- Primitives d'édition d'objets géométriques 3D
(créer ou effacer des points, lignes, plans...)
- Modifier dynamiquement les échelles de couleurs des objets constituant
la scène
Le logiciel sera développé en Tcl/Tk en utilisant le package
de visualisation VTK. L'intérêt de développer avec ce
langage est sa forte modularité. Le logiciel comportera donc un ensemble
de fonctionnalités basiques, mais avant tout on s'attachera à
penser la structure du logiciel de façon à ce qu'il soit évolutif.
Il faudra que l'on puisse rajouter des fonctionnalités de manipulation
de scène, d'image ou d'objets sous forme de modules en Tcl/Tk, VTK
ou C/C++.
VTK est un package de visualisation de données 2D et 3D tant bitmap
que vectorielles qui ne fournit pas moins de 700 classes C++ pour la visualisation.
Il s'interface très simplement avec Tcl/Tk. On peut par exemple réaliser
un visualiseur de scène 3D en quelques dizaines de lignes. L'intérêt
d'utiliser ce package est d'exploiter les primitives de visualisation déjà
écrites, de façon à ce que le logiciel soit très
modulaire et souple. Tcl/Tk apporte le complément parfait à
ce package de visualisation pour développer des interfaces graphiques.
Une conception qui exploite les possibilités de modularités
de Tcl/Tk vont permettre de faire un logiciel souple et évolutif.
De plus, VTK fournit une widget Tcl/Tk OpenGL, ce qui permet d'exploiter les
cartes graphiques accélérées.