07 April 2020
Capture de la géométrie d’un jeu OpenGL par instrumentation des shaders OpenGL
Ce stage de Master 2 de Bastien Thomasson et encadré par Frédéric a porté sur la capture de la géométrie d’un niveau de jeu. Le travail portait sur l’écriture d’un programme permettant :
d’intercepter les appels OpenGL pour les dérouter vers des fonctions d’analyse et de capture. Cette fonctionnalité fait essentiellement appel à de la programmation système.
d’instrumenter les shaders pour capturer les informations géométriques. Cette fonctionnalité fait appel à l’analyse grammaticale (bison, flex ; nous avons aussi testé du code ANTLR)
de reconstituer un univers 3D en inférant la matrice de transformation globale à partir de la matrice de vue, image après image.
capture automatique une fois un paramétrage mis en place pendant que le jeu tourne, effectué une seule fois. Et ce, sans altérer le fonctionnement du jeu.
programmation de toute l’interface utilisateur nécessaire à cet effet
Nous avons testé la capture avec deux jeux, IOQuake 3 (dans la vidéo), et SuperTuxCart.
Ce stage a été l’occasion d’appliquer des connaissances à la fois en Informatique Graphique, en programmation système, ainsi qu’en analyse grammaticale pour réaliser un applicatif plutôt ludique !