Le but du projet de synthèse d’image du premier semestre de mon master I est de simuler l’action d’un pipeline graphique personnalisable. Pour résumer, il m’a fallu réaliser ce que permettent les API tels que OpenGL et DirectX : en entrée, des sommets, sommets qui seront transformés puis projetés sur l’écran, les faces (composées de trois sommets) seront alors remplies et l’ombrage calculé pour avoir en sortie, un rendu.
J’ai utilisé principalement deux librairies. La première est surtout utilisée pour l’interface utilisateur. Il s’agit de QT, QT est une librairie de Trolltech, en C++ et orienté objet, offrant beaucoup de possibilités. Ici, les fonctionnalités d’enregistrement d’images et d’interfaces sont exploitées.
La seconde librairie tend à devenir un standard : Boost. Boost est connu pour ses fonctionnalités en programmation système, mais j’ai trouvé son application par la librairie d’algèbre linéaire « uBlas » que j’ai encapsulée dans des classes Matrix4x4 et Vector3 pour simplifier son utilisation.
Par l’implémentation d’un pipeline graphique, ce projet m’a permis de mieux cerner chacune des étapes d’un rendu temps réel.
En suivant ce lien, vous trouverez un medley des rendus de cette application ainsi qu'une courte synthèse du projet (NB : Les problèmes de caméras mis en évidence ont finalement été corrigé)