Programmation graphique TD 5 : Lego Star Wars, l`Empire contre
Transcription
Programmation graphique TD 5 : Lego Star Wars, l`Empire contre
Programmation graphique TD 5 : Lego Star Wars, l’Empire contre-attaque 11 mars 2008 On continue le TD précédent. Vous allez avoir uniquement besoin des fichiers supplémentaires elsa2:/home/enseign/scollang/graphique/td4/face.c et vador.c. 1 Textures L’utilisation de textures en OpenGL se fait en plusieurs étapes. 1. Récupération d’un (ou plusieurs) identifiant(s) de texture avec glGenTextures. L’identifiant 0 est réservé pour dire « pas de texture ». 2. Création de la texture avec glBindTexture. 3. Sélection des paramètres de la texture avec glTexParameter. 4. Sélection de l’image bitmap associée avec glTexImage2D. 5. Activation du texturage avec glEnable. 6. Au moment de dessiner, sélection de la texture avec glBindTexture (encore). 7. Pour chaque sommet, définition des coordonnées de texture avec glTexCoord. 1. On veut dessiner le visage d’Obi-Wan Kenobi. Où va-t-on placer le code pour chacun des points ci-dessus ? (Attention, les pièces d’Obi-Wan (dont sa tête) déclarées en global sont construites au moment de l’initialisation du programme, donc avant l’initialisation d’OpenGL. On ne peut donc pas mettre d’appels OpenGL dans le constructeur, et il faudra appeler une fonction membre Init de Tete à la fin d’InitGL.) 2. Écrire le code. Pour charger l’image, faire simplement un #include de face.c et accèder aux champs de bonhomme face. 3. Les modes de filtrage par défaut nécessitent des mipmaps, il faut donc choisir explicitement un autre mode (glTexParameteri avec GL TEXTURE MIN FILTER et GL TEXTURE MAG FILTER). Essayer avec GL NEAREST et GL LINEAR. 4. Générer une hiérarchie de mipmaps avec gluBuild2DMipmaps. Essayer les autres modes de filtrage. 5. Même chose pour Dark Vador. 1