3DPolyviewer

3DPolyviewer a été réalisé dans le cadre de mon DUT. Ce projet, développé par un groupe de 3 étudiants, avait pour but de mettre au point un visionneur de polyèdres 3D convexes en C++/Qt4.

Si l'application peut sembler limitée au premier abord (car seul les polyhédres convexes sont supportés), il faut savoir que l'aspect mathématique était au centre du projet. En effet, nous avions l'obligation de réaliser nous-même tout le processus de projection qui permettrait d'obtenir à partir d'un polyèdre 3D une figure 2D affichable (autrement dit, il nous était interdit d'utiliser le module OpenGL de Qt ou toute autre bibliothèque nous permettant de gérer la 3D).

3DPolyviewer en détails

Les polyèdres sont chargés depuis un fichier .pol écrit dans un format simple contenant toutes les informations nécessaires à sa reconstitution.

Ils peuvent ensuite être affichés suivant une projection perspective ayant comme origine la caméra ou bien suivant une projection orthogonale qui peut soit avoir la caméra comme origine, soit l'un des axes x (vue de « Face »), y (vue de « Droite »), z (vue de « Dessus »). La « vue » principale par défaut est la projection perspective mais elle peut facilement être modifiée.

Il possible, avec la souris, de déplacer et faire tourner le polyèdre ainsi que la camera.


Quelques fonctionnalités supplémentaires ont été ajoutées au projet. À savoir :
-Un éditeur de polyèdre permettant d'éditer le contenu du fichier .pol et de prévisualiser directement les modifications dans le programme ainsi que de les enregistrer.
-La possibilité de faire un rendu du polyèdre (d'exporter le polyèdre en image) suivant la vue principale actuelle, dans la résolution voulue.

-Le support de l'internationalisation. Le logiciel peut actuellement être utilisé en français ou en anglais.
-Une aide détaillée intégrée, pour une utilisation plus facile.

L'intérêt du projet

L'aspect mathématique est relativement intéressant dans l'affichage du polyèdre puisqu'il faut passer de l'espace 3D (avec des points aux coordonnées 3D) à un plan (avec des points 2D). L'une des façon de faire est l'utilisation de matrices.
Par exemple, pour la vue perspective, on construit une matrice V contenant coordonnées 3D homogènes des points du polyèdre, une matrice G de changement de repère qui permet de transformer les coordonnées du polyèdre de son repère au repère de la camera, et une matrice K de calibration de la camera, permettant de régler entre autre la focale de celle-ci. Le simple calcul P = K * G * V permet d'obtenir une matrice P contenant les coordonnées 2D homogènes des projetés des points du polyèdre.

Téléchargement

3DPolyViewer pour Windows, sans installation (4,5 Mio)

Voir aussi un autre article sur 3DPolyviewer, écrit par Alexandre Rabérin.