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 !