Cahier des Charges Pathfinding polygonal dans les environnements 3D Master Informatique BRESSON Quentin <macharius66@gmail.com> JACINTO Jean-Pierre <jpeg34@hotmail.fr> LIOT Anthony <anthony.liot@gmail.com> ROUS Guillaume <gui.rous@gmail.com> Encadrant : KORICHE Frédéric <koriche@lirmm.fr> 06/02/2008 1
Table des matières 1 Introduction 3 2 Sujet 3 3 Objectifs 4 3.1 Principaux............................. 4 3.2 Facultatifs............................. 4 4 Choix des outils 5 5 Méthode de travail 5 6 Contraintes 5 7 Planning 6 8 Diagramme de Gantt 6 2
1 Introduction De plus en plus de jeux nécessitent la présence de PNJ (Personnages Non Joueurs). Ces agents font partie intégrante d un environnement en 3 Dimensions (3D) pouvant interagir avec celui-ci : déplacements réalistes, comportements rationnels envers les éléments du décor et les personnages contrôlés par un être humain. 2 Sujet Le projet consiste à réaliser des objets en 3D : un personnage et son environnement. Mais également, de créer le déplacement du personnage dans cet univers qui doit être le plus cohérent possible, en fonction de plusieurs contraintes. Cet environnement sera composé de mailles et de textures. L ensemble des polygones constituera des éléments du décor tels que des surfaces avec plus ou moins de reliefs ou des obstacles (arbres, ponts, rivières, montagnes...) afin de pouvoir tester les réactions du PNJ. 3
3 Objectifs 3.1 Principaux Les bases de l application que nous développerons seront : - Création d un personnage unique et personnel. - Réalisation d un environnement propre au personnage. - Chargement des objets en 3D dans notre application. - Application de la triangulation de Delaunay sur chaque objet. - Mise en œuvre du déplacement du personnage avec les algorithmes A* et RTA*. - Développement d une Interface Homme Machine permettant une lecture simple et complète de l animation. 3.2 Facultatifs Il serait intéressant si le temps ne vient pas à manquer, de concevoir une interface graphique plus développée : - Ajout et suppression des différents objets représentant les obstacles. - Gestion de la tesselation (lissage plus ou moins avancé du terrain). - Contrôle de la durée de l animation (vitesse d exécution). - Export de l animation dans un format vidéo (type avi). 4
4 Choix des outils Pour la partie programmation, nous avons choisi le C++. Nous voulions un langage familier et «faiblement typé» où les types de données qu on manipule soient restreints, et proches de la représentation interne du processeur. Mais surtout qu il nous permette d utiliser au mieux la librairie OpenGL. Cette API multiplateforme est utile pour les conceptions d applications générant des images en 3D. De plus, elle est populaire dans l industrie du jeu vidéo. Pour l interface graphique et l affichage du contenu, nous avons choisi la bibliothèque SDL. Elle est très utilisée dans le monde de la création d applications multimédias et est réputée pour sa portabilité. 5 Méthode de travail La conception en 3D occupant une place prépondérante dans le développement du projet on en est convenu qu il était important que chacun d entre nous, touche à ce domaine. Au niveau de la communication, on a créé une «mailing list» afin que l on puisse plus facilement communiquer en dehors des cours et partager nos idées et nos fichiers. Il est prévu d effectuer une réunion hebdomadaire pour évaluer notre avancée et le travail de chacun. En fonction de notre évolution, nous prendrons contact régulièrement avec Mr Koriche suite au cours «Algorithme de l Intelligence Artificielle». 6 Contraintes Une grande partie des ressources du CPU (Central Process Unit) est nécessaire pour pouvoir manipuler un agent tel qu il a été décrit précédemment. Il faudra donc optimiser les différents algorithmes pour que le calcul de l affichage de l ensemble des polygones ne soit pas excessif. Enfin, on voudrait que notre application soit portable sur Linux et Windows. 5
7 Planning 8 Diagramme de Gantt 6