Création d un viewer d objets 3D : découverte de la librairie graphique OpenGL.



Documents pareils
TP Blender n 2 : Importation d un modèle SketchUp et animation

Installation et configuration du serveur syslog sur Synology DSM 4.0

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

TP1 - Prise en main de l environnement Unix.

TP1 : Initiation à l algorithmique (1 séance)

TP 1 Prise en main de l environnement Unix

pcon.planner 6 Préparer et présenter une implantation en toute simplicité

Eclipse atelier Java

Le langage C. Séance n 4

Présentation de Firefox

TP sauvegarde et restauration avec le logiciel Cobian Backup

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Chapitre 3 : outil «Documents»

Manuel d utilisation du web mail Zimbra 7.1

Manuel d utilisation de la messagerie.

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de

TP 4 de familiarisation avec Unix

Avertissement : Nos logiciels évoluent rendant parfois les nouvelles versions incompatibles avec les anciennes.

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

Planète Multimédia. Voici le logo qu il faut choisir : et tapez sur puis acceptez.

SOMMAIRE. 1. Connexion à la messagerie Zimbra Pré-requis Ecran de connexion à la messagerie 4

Utilisation de l éditeur.

Création de maquette web

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

Initiation à la librairie graphique VTK

des outils disponibles et des performances possibles

05/09/2015. M Ponctualité : CM TD TP & Projet Æ En cas d absence : récupérer!!! 3 05/09/2015

GUIDE ADMINISTRATEUR BIEN DÉMARRER AVEC WISEMBLY

TP1. Outils Java Eléments de correction

Édu-groupe - Version 4.3

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Manuel d utilisation du module GiftList Pro par Alize Web

Module Criteo Tags et Flux pour Magento

On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (

Mise en scène d un modèle dans l espace 3D

wxwidgets dans un environnement Microsoft Windows

GUIDE D UTILISATION ADSL ASSISTANCE

DE CENTRALISE FACTURE CRE ATION

Introduction à Eclipse

LES TOUT PREMIERS PAS

Microsoft Windows XP. Movie Maker 2

Guide utilisateur des services WASATIS (Manuel Version 1.1)

DOCUMENTATION VISUALISATION UNIT

Lancez le setup, après une phase de décompression, la fenêtre d installation des prérequis apparaît, il faut les installer :

Installation et compilation de gnurbs sous Windows

Comment optimiser dans ImageReady?

Guide de démarrage rapide. (pour la version 5.0.)

Utiliser le site learningapps.org pour créer des activités interactives

1 Mesure de la performance d un système temps réel : la gigue

1. Insérez le DVD de support dans le lecteur optique. L onglet Drivers (Pilotes) apparaîtra si l Exécution automatique est activée.

L EFFET PARALLAXE N EST

Business Talk IP Centrex. guide. web utilisateur. pour. les services standards

Applications KIP Cloud Guide de l utilisateur

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Guide d utilisation 2012

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

Your Detecting Connection. Manuel de l utilisateur. support@xchange2.net

ENVOI EN NOMBRE DE SMS

Faites vos premiers pas Avec Iswigo GUIDE D UTILISATION. Pour bien commencer

INTRODUCTION. Pour réaliser une pièce sur Charlyrobot, il faut le faire en trois étapes :

Synthèse d'images. (1) Introduction

Installation de Joomla avec Filezilla

Installation / Sauvegarde Restauration / Mise à jour

Installation et prise en main

MANUEL UTILISATEUR. ADELYAMIN Version V1.0

Bases Java - Eclipse / Netbeans

Création WEB avec DreamweaverMX

!!! Archipad version 1.4. Manuel de Référence

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Manuel Utilisateur Logiciel PEB Partie modeleur version 2.5

REALISATION D UNE CALCULATRICE GRACE AU LOGICIEL CROCODILE CLIPS 3.

PG208, Projet n 3 : Serveur HTTP évolué

Canvas 3D et WebGL. Louis Giraud et Laetitia Montagny. 9 Avril Université Lyon 1

FEN FICHE EMPLOIS NUISANCES

ET 24 : Modèle de comportement d un système Introduction à Labview et initiation à la réalisation d un Instrument Virtuel (VI).

COURS WINDEV NUMERO 3

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

SolidWorks edrawings et publications

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE

Disque Dur Internet «Découverte» Guide d utilisation du service

Tutoriel. Votre site web en 30 minutes

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Niveau 1. Atelier d'initiation à l'ordinateur ... Fondation de la Bibliothèque Memphrémagog inc. Magog (Québec) J1X 2E7 Tél.

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Q6 : Comment calcule t-on l intensité sonore à partir du niveau d intensité?

Isadora. Photo jpeg qualité 50% %, 320X240. Prérequis

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

TP Sauvegarde et restauration avec le logiciel Cobian Backup. Etape 1 :

SELENE : Guide d utilisation de l outil de remontée des fichiers de promouvables

ENVOI EN NOMBRE DE SMS

TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS. R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr

Créer une trace, obtenir son fichier gpx et sa carte Ou Afficher un fichier trace GPX

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Transcription:

TPs L2 Informatique AII3D : découverte de la synthèse d images Création d un viewer d objets 3D : découverte de la librairie graphique OpenGL. Le but de ce TP est de se familiariser avec la librairie et le mode d affichage OpenGL, le positionnement d un objet dans la scène, la gestion de la couleur en RVB ainsi que l animation d un objet. En même temps, il va être possible de se familiariser avec la programmation évènementielle, l élimination des parties cachées d un objet et le bouble buffer. A la fin de ce TP vous aurez créé et animé la scène suivante : 1

Rappels : Le processus de Visualisation en OpenGL Le rôle d OpenGL est de projeter une scène 3D sur une image 2D : l écran. Pour cela, chaque objet défini dans la scène subit plusieures transformations. Quatre transformations utilisées au cours du processus de création d une image : 1. Transformation de modélisation (Model) : Permet de créer la scène à afficher par création, placement et orientation des objets qui la composent. 2. Transformation de visualisation (View) : Permet de fixer la position et l orientation de la caméra. 3. Transformation de projection (Projection) : Permet de fixer les caractéristiques optiques de la caméra (type de projection, angle d ouverture,...). 4. Transformation d affichage (Viewport) : Permet de fixer la taille et la position de l image sur la fenêtre d affichage. Chaque transformation est définie par une matrice. OpenGL compose ces matrices afin d appliquer une transformation sur chaque objet de la scène. Le résultat de cette transformation est l objet dans les coordonnées de l image à afficher. OpenGL fourni un ensemble de fonctions permettant de manipuler les matrices de transformation. On choisi la matrice courante à manipuler avec glmatrixmode. Ensuite on utilise une fonction permettant de définir ou de modifier la matrice courante : glloadidentity, glloadmatrix, glmultmatrix, gltranslate, glrotate, glscale, glulookat, etc... 2

Introduction Avant de pouvoir commencer votre TP, il vous faut installer la structure de programme de départ. Suivez les instructions suivantes : Créez un répertoire qui sera votre répertoire de travail pour les TPs d OpenGL Téléchargez dans ce répertoire le fichier suivant : http ://www.irit.fr/ Loic.Barthe/Enseignements/TPs OpenGL/TP1/intro OpenGL.tar.gz Décompressez l archive dans le répertoire puis effacez la Dans un shell, placez vous dans le répertoire où vous avez décompressé les fichiers et compilez le programme en tapant : make Les fichiers objets (.o) et l exécutable (nommé tp1 ) sont dans le répertoire bin Lancez le programme avec la commande :./bin/tp1 Editez le programme principal main.c. Il est suggéré d utiliser l éditeur kate qui se lance avec la commande : kate main.c & Pour pouvoir effectuer les TPs correctement, vous aurez souvent besoin de vous référer au guide de programmation (html) : http : //www.opengl.org/ Vous pouvez aussi accéder à l aide en ligne avec la commande : Ou encore utiliser konqueror et taper : Effacement de la fenêtre man < nom fonction > man :< nom fonction > Que se passe-t-il quand vous exécutez le programme? Pourquoi? Dans la fonction display du fichier main.c, ajoutez la fonction suivante en première ligne : glclear (GL COLOR BUFFER BIT) ; Que se passe-t-il? Pourquoi? Ajoutez juste après la fonction : glclearcolor (1.0, 1.0, 1.0, 0.0) ; Quelle est la couleur (1.0, 1.0, 1.0)? On notera que la 4ème composante de la couleur est la composante Alpha qui sert à régler la transparence. Pour les TPs, cette composante sera fixée à 0.0 (pas de transparence). Que se passe-t-il? Pourquoi? Positionnez cette fonction à la bonne place pour que la fenêtre soit effacée avec la couleur souhaitée. Faites effacer la fenêtre en rouge, puis en gris foncé. L effacement du buffer image est en général la première chose que l on fait dans la fonction de rendu (display). 3

Afficher et positionner la théière La fenêtre et la matrice de projection ont des valeurs par défaut, ainsi, il est possible de tracer directement un objet. Tracez une théière (teapot) de rayon 1 centrée sur l origine du repère scène à l aide de la fonction suivante : glutsolidteapot(1.) ; La fonction glcolor3f permet de modifier la couleur d affichage des objets à l aide de 3 flottants (rouge,vert,bleu) passés en paramètre. Placez cette fonction au mieux pour que la théière soit tracée en jaune. Il s agit maintenant de retrouver les valeurs par défaut de la fenêtre. On précise que la projection par défaut est une projection orthogonale (pas de perspective). Intéressons nous tout d abord à la fenêtre de projection. Elle définit la position et la taille de l image qui va être affichée dans la fenêtre de l application OpenGL. Elle est définie par la fonction : glviewport(x,y,l,h) ; Que représentent les paramètres x,y,l et h? Insérez cette fonction dans votre programme et retrouvez la valeur par défaut de ses paramètres. Nous allons ajouter une matrice de projection perspective. Pour ça, il nous faut ajouter à la fonction de rendu (display) les fonctions permettant de contrôler la projection. Dans un premier temps, il nous faut passer en mode de modification de la matrice de projection avec la fonction : glmatrixmode (GL PROJECTION) ; Puis on va initialiser la matrice de projection avec la fonction : glloadidentity () ; 4

Quelle est la valeur de la matrice de projection? Que se passe-t-il au niveau de l affichage? Modifiez maintenant la matrice de projection perspective à l aide de la fonction suivante : gluperspective(60.,800./600.,1.,100.) ; Que représentent les paramètres de cette fonction? Pourquoi ne voit-on plus la teapot à l écran? Afin de pouvoir voir la teapot, nous allons la déplacer : nous allons utiliser les matrices de transformation (mode MODELVIEW). Il nous faut donc dans un premier temps activer le mode de modification de matrice de transformation (ceci désactivera le mode de modification de matrice de projection que nous avions activé précédemment). Ceci est fait en ajoutant au programme la fonction : glmatrixmode (GL MODELVIEW) ; Une fois la fonction précédente ajoutée à votre programme, initialisez la matrice avec la fonction : glloadidentity () ; Déplacez maintenant la théière en faisant la translation suivante : gltranslatef(0.,0.,-4.) ; Que s est-il passé? Pourquoi? Modifiez la translation, et ajoutez une rotation et une mise à l échelle à l aide des fonctions : glrotatef(...) glscalef(...) pour placer la teapot afin que le rendu s approche de l image suivante : 5

Afficher la scène Mettons maintenant les objets dans la scène de la façon suivante : Les objets (teapot et cube) sont à une profondeur de 5 en z (plus de rotation ni de mise à l échelle). Le cube peut être tracé avec la fonction : glutsolidcube(...) ; Pour l instant, le cube s affiche devant la teapot. Pour corriger ça, nous allons maintenant activer le test de profondeur, appelé Z-Buffer, pour éliminer les faces cachées. Tout d abord, il faut initialiser le mode d affichage avec test des profondeurs dans la fonction glutinitdisplaymode en ajoutant le paramètre GLUT DEPTH. Ensuite, il faut activer le test des profondeurs à l aide de la fonction glenable(gl DEPTH TEST) placée juste après la création de la fenêtre principale (dans le main(...)). Il est à noter que le Z-Buffer peut être désactivé n importe quand avec la commande gldisable(gl DEPTH TEST). Enfin, il faut aussi effacer cette mémoire (buffer) au début de chaque tracé, en même temps que la mémoire d image (color buffer). Ceci est effectué en ajoutant GL DEPTH BUFFER BIT dans la fonction glclear. La teapot doit maintenant apparaître posée sur le cube. 6

La qualité de l affichage peut être améliorée en utilisant le double buffer. Le double buffer est activé en remplaçant dans la fonction glutinitdisplaymode la valeur GLUT SINGLE par GLUT DOUBLE. Le swap des buffers est alors réalisé à la fin de la fonction de rendu (display) avec la fonction glutswapbuffers() placée juste avant la fonction glflush(). Gestion des évènements : Une lettre (par exemple, la lettre a) est testée dans un switch par le test case a. Utilisez la lettre z pour désactiver le Z-Buffer et la lettre Z pour le réactiver. Si vous souhaitez forcer le réaffichage de la fenêtre, cela peut être fait avec la fonction glutpostredisplay(). Modifier l Affichage L affichage par défaut est un mode plein. On peut passer en affichage filaire en utilisant la fonction : glpolygonmode (GL FRONT AND BACK, GL LINE) ; On peut repasser en mode plein avec les paramètres : glpolygonmode (GL FRONT AND BACK, GL FILL) ; Modifiez votre programme pour que la teapot et le cube soient affichés en filaire. Modifiez à nouveau votre programme pour que seule la teapot soit affichée en filaire. Gestion des évènements : Utilisez la lettre w pour passer en mode d affichage filaire et la lettre W pour repasser en mode d affichage plein. 7