Applications multimédias : modélisation et animation 3D



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

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)


Chapitre 22 Optimisation pour diffusion à l'écran, pour le web

TD : Codage des images

Chapitre II : Infographie et bibliothèques graphiques

Création de maquette web

Les algorithmes de base du graphisme

Formats d images. 1 Introduction

Programmation C. Apprendre à développer des programmes simples dans le langage C

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Outils permettant la diffusion de l information. Un point sur le droit numérique

Structure du format BMP, sa lecture, sa construction et son écriture

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Traitement numérique de l'image. Raphaël Isdant

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Introduction aux systèmes temps réel

Introduction au langage C

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

Géométrie discrète Chapitre V

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Architecture des ordinateurs

FORMATS DE FICHIERS. Quels sont les différents types d informations numériques dans un document multimédia?

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours de numérisation sur Epson Perfection

Synthèse d images Edmond Boyer

Les images et les animations sur le web. Guérineau Chloé BTS2 Année 2001/2012

Comment optimiser dans ImageReady?

Initiation. àl algorithmique et à la programmation. en C

RIE LE RENDU THEO. 2 e trim ÉTAPE DE FINITION BOÎTE DE DIALOGUE. remarques

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Programmation système de commandes en C

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

I00 Éléments d architecture

Maintenir un service de traitement de son ou d image d ordinateur

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

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

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

Analyse d images. Edmond.Boyer@imag.fr. Edmond Boyer UFRIMA 1

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

COPY. Picture Style Editor Ver. 1.4 MODE D EMPLOI. Logiciel de création de fichiers de style d image. Contenu de ce mode d emploi

UE Programmation Impérative Licence 2ème Année

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Programmation système I Les entrées/sorties

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

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Le langage C. Séance n 4

La visio-conférence holographique : Pourquoi? Comment?

Un ordinateur, c est quoi?

L interface Outils, palettes, règles, repères, grille Paramétrer les préférences

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

TBI et mathématique. Pour vous soutenir dans votre enseignement des mathématiques. Les outils du logiciel Notebook. les ressources internet

En DV (PAL ou NTSC), la largeur est toujours de 720 pixels, c'est la proportion du pixel qui change la proportion de l'image.

Modules Multimédia PAO (Adobe)

Cours Informatique 1. Monsieur SADOUNI Salheddine

Initiation à linfographie

Hiver 2013 IMN 259. Introduction à l analyse d images. Par Pierre-Marc Jodoin

TP : Gestion d une image au format PGM

TP SIN Traitement d image

Chap17 - CORRECTİON DES EXERCİCES

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Chapitre 13 Numérisation de l information

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

L espace de travail de Photoshop

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Les bases de l étalonnage avec Adobe Premiere Pro Formation de Duduf

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

Introduction à l informatique en BCPST

nom : Collège Ste Clotilde

Infolettre #18 : Les graphiques avec Excel 2010

Synthèse d'images. (1) Introduction

Programme de formation Photoshop : Initiation 24 heures de formation (3 jours) 1/2

Photoshop Séquence 4 - Créer une image de taille personnalisée taille

Catégories de format d'optimisation

Conception des systèmes répartis

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Support de formation Notebook

EXCEL TUTORIEL 2012/2013

Initiation au logiciel imovie HD

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Indications pour une progression au CM1 et au CM2

L informatique en BCPST

Réalisation d un diaporama en haute définition avec. Adobe Premiere Elements 3.0 ou Adobe Premiere Pro 2.0. Encodage pour Internet

Codage d information. Codage d information : -Définition-

Qualité du logiciel: Méthodes de test

Licence Sciences et Technologies Examen janvier 2010

Cours 1 : Qu est-ce que la programmation?

Environnement logiciel open source pour la création d œuvres artistiques interactives

Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur

1. Avoir un fichier InDesign correct :

Les images numériques. 1. Le dessin vectoriel


ACTIVITÉ DE PROGRAMMATION

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Transcription:

Applications multimédias : modélisation et animation 3D Frank Singhoff Bureau C-203 Université de Brest, France LISyC/EA 3883 singhoff@univ-brest.fr UE applications de l informatique, Université de Brest Page 1/50

Sommaire 1. Quelques définitions : images fixes, flots continus et animation. 2. Du modèle 3D à l image animée : introduction à la synthèse d image. 3. Exemple d une bibliothèque graphique : OpenGL. 4. Résumé, ce qu il faut retenir. UE applications de l informatique, Université de Brest Page 2/50

Multimédias et flots continus Quelques définitions [DEM 99] : Médium : moyen par lequel l information est perçue, stockée ou transmise. Médium discret : qui n est pas assujetti à une contrainte temporelle (exemple : livre électronique, image fixe/non animée). Médium continu (ou flot continu) : médium dont l information est organisée en échantillons et où les échantillons sont contraints temporellement les uns vis-à-vis des autres (ex : séquence d images, fichier MPEG2 Layer 3). Multimédias : littéralement qui est constitué de plusieurs média (pluriel de médium) discrets ou continus. UE applications de l informatique, Université de Brest Page 3/50

Une image, c est quoi? (1) Pixel : composant élémentaire d une image. Image : ensemble de pixels organisés dans un plan. Tampon(s) : stocke une information pour chaque pixel d une image (ex : couleur, profondeur). UE applications de l informatique, Université de Brest Page 4/50

Une image, c est quoi? (2) Exemple de la couleur du pixel : Deux principaux codes existent : le RVB (ou RGB) et luminance/chrominance : 1. Luminance/chrominance. Développé à la base pour la télévision hertzienne (passage du noir/blanc à la couleur). Code YIQ (NTSC) et code YUV (PAL/SECAM). Intensité de lumiere (Y) ; Information chromatique : IQ/UV. 2. RVB. Chaque couleur est codée par 4 composantes qui définissent l intensité en R(rouge), V(vert), B(bleue), A(alpha). Conversion possible entre RGB/YIQ/YUV. Exemple de codage RGB : 8 bits par pixel, soit 2 bits par composante, soit 256 couleurs. UE applications de l informatique, Université de Brest Page 5/50

Une image, c est quoi? (3) Mémoire vidéo : mémoire centrale d un ordinateur dédiée à l affichage des données informatiques. Taille de la mémoire vidéo pour afficher une image fixe : Nombre de pixel en abscisse et ordonnée (taille de l image). Nombre d information mémorisée pour chaque pixel (nombre de tampon). Méthode de codage de chaque information. Si l information est compréssée ou non (ex : fichiers BitMap/BMP ou JPEG). UE applications de l informatique, Université de Brest Page 6/50

Une image, c est quoi? (4) Exemple de calcul de la mémoire vidéo nécessaire pour l affichage d une image fixe : Couleur codée sur 24 bits (16777216 de couleurs possibles pour un pixel) Taille de l image de 1024x768 = 786432 pixels. Taille de la mémoire vidéo : 24x1024x768/8 = 2,25 méga octets (fichier BITMAP). = 24 bits/pixel pour la couleur est le standard pour les formats JPEG, MPEG : photo numérique, TV numérique, DVD,... = Téléphonie mobile/pda a moins gourmand (ex : 8 bits/pixel). a Personal digital assistant UE applications de l informatique, Université de Brest Page 7/50

Un flot continu, c est quoi? (1) Animer c est dessiner/élaborer puis afficher/présenter une séquence d images. Synchronisations intra-flux et inter-flux. Taille de la mémoire nécessaire pour présenter des flots continus : Nombre de flots (vidéo, audio, sous-titre,...). Format de chaque échantillons/images. La méthode d animation (simple ou double "buffering"). UE applications de l informatique, Université de Brest Page 8/50

Un flot continu, c est quoi? (2) Animation simple buffering : Le processeur utilise un tampon pour constituer la prochaine image à afficher. Simultanément, la carte graphique utilise ce même tampon pour afficher à l écran l image en cours. UE applications de l informatique, Université de Brest Page 9/50

Un flot continu, c est quoi? (3) Animation double buffering : Le processeur utilise un tampon pour constituer l image à afficher. Simultanément, la carte graphique utilise un deuxième tampon pour afficher à l écran l image précédente. Quand le processeur a terminé de préparer une image, les deux tampons sont échangés. UE applications de l informatique, Université de Brest Page 10/50

Sommaire 1. Quelques définitions : images fixes, flots continus et animation. 2. Du modèle 3D à l image animée : introduction à la synthèse d image. 3. Exemple d une bibliothèque graphique : OpenGL. 4. Résumé, ce qu il faut retenir. UE applications de l informatique, Université de Brest Page 11/50

Infographie : du modèle 3D à l image Infographie: ou informatique graphique, peut être définie comme étant l utilisation de l ordinateur pour créer, mémoriser et manipuler des images. Modèle de la scène Algorithmes de synthèse (restitution ou rendering) Image affichée à l écran L infographie 3D, ou comment restituer une scène 3D par une image fixe [LIE 88, WOO 04, MAL 05]. Domaines d application : Conception assistée par ordinateur (ex : CATIA), Simulation de processus, physique, scientifique,... L imagerie médicale, cinéma, jeux. UE applications de l informatique, Université de Brest Page 12/50

Un modèle, c est quoi (1) Modèle : représentation abstraite, ensemble d objets organisés pour réprésenter une scène à afficher. Modèle = approximation de l élément à représenter. Graphiquement, un modèle/objet c est : Soit un ensemble de polygones (polyèdre). Série de points généralement sur un seul plan (appelé facette dans ce cas). Pleins ou non (mode fil-de-fer). Soit des surfaces ou courbes calculées par une méthode particulière ( ex : Beziers, splines, fractales). Soit un assemblage hiérarchique d objets canoniques (ex : sphère, cube, cône,...). Ces objets sont projetés/mis à échelle selon les besoins. = Données vectorielles. UE applications de l informatique, Université de Brest Page 13/50

Un modèle, c est quoi (2) Outre les objets, une scène est généralement complétée par : La position de la caméra, son orientation, le cadrage, le champs de vision, La description de différents phénomènes complémentaires tels que l éclairage, l ombrage, le brouillard, la transparence, le lissage, Des données "pixel": des textures (procédés de remplissage de polygones), des polices,... UE applications de l informatique, Université de Brest Page 14/50

Une modèle, c est quoi (3) Exemple de modèle/scène 3D : UE applications de l informatique, Université de Brest Page 15/50

Sommaire 1. Quelques définitions : images fixes, flots continus et animation. 2. Du modèle 3D à l image animée : introduction à la synthèse d image. 3. Exemple d une bibliothèque graphique : OpenGL. 4. Résumé, ce qu il faut retenir. UE applications de l informatique, Université de Brest Page 16/50

Une bibliothèque, c est quoi? Bibliothèque : ensemble de sous-programmes (fonctions et/ou procédures) réutilisables rassemblés dans un fichier, qui permet d accélerer l écriture de programmes. Bibliothèque mathématique : sin, cos, sqrt,... Exemple : bibliothèque C de Linux. Bibliothèque interface homme-machine : bouton, fenêtre, zone de texte, menu... Exemple : bibliothèque graphique de visual basic. Bibliothèque graphique 3D.... UE applications de l informatique, Université de Brest Page 17/50

Bibliothèque graphique 3D (1) Bibliothèque graphique 3D : ensemble de sous-programmes pour décrire et restituer une scène 3D. Ce que doit offrir une bibliothèque graphique 3D : 1. Description du modèle, manipulation de données pixels. 2. Outils de traduction d un modèle en une image (processus de restitution ou rendering). 3. Interface pour la mise en oeuvre d algorithmes d animation élémentaire. 4. Interaction avec : Le système d exploitation (le système de multi-fenêtrage). Les périphériques d entrée (clavier, souris, haut-parleurs,...). UE applications de l informatique, Université de Brest Page 18/50

Bibliothèque graphique 3D (2) Processus de restitution (modèle = image fixe): 1. Traduction des sommets en matrices puis transformation de projection/perspective/cadrage, mise en couleur et calcul d éclairage des polygones,... 2. Traduction des données vectorielles en pixels. 3. Puis fusion avec les données "pixels". 4. Tests de profondeur, stencil, alpha, dithering (correction de dégradé), effet brouillard,... UE applications de l informatique, Université de Brest Page 19/50

OpenGl (1) OpenGl, c est : Un standard international. Normalisé en 1989 (GL) par Sillicon Graphics, puis portée sur d autres architectures en 1993 (OpenGL). Avec OpenGL, on peut produire des images synthétiques sophistiquées (reflets, ombres) en temps réel si on dispose de ressources matérielles adéquates. Existe sur de nombreuses architectures (NT, Unix, OS2, Amiga, etc...) Nombreuses implémentations logicielles (Exemple sous NT : SGI OpenGL, 3dfx OpenGL, Mesa, Microsoft OpenGL...) et/ou matérielles (cartes graphiques). UE applications de l informatique, Université de Brest Page 20/50

OpenGl (2) Quelles bibliothèques avec OpenGL? 1. La bibliothèque OpenGL à proprement dit. 2. Des bibliothèques complémentaires : OpenGL Utility Library (GLU) : surcouche à OpenGL, fournit des fonctions plus évoluées pour la gestion des caméras ou la création de modèle avec une haute définition. OpenGL Extension Library pour le système graphique X11 (GLX) : interopérabilité avec le protocole X11. GL Utility Toolkit (GLUT) : fournit une interface simple pour le dialogue avec le système d exploitation. UE applications de l informatique, Université de Brest Page 21/50

OpenGL (3) Comment dessiner ce modèle : Pour ce faire, il faut : 1. Vider l écran, c-à-d manipuler les tampons. 2. Choisir une couleur pour dessiner (le blanc), c-à-d coder/manipuler la couleur. 3. Dessiner le carré, c-à-d définir un polygone. UE applications de l informatique, Université de Brest Page 22/50

Approximation polyédrique (1) Comment mémoriser un volume? un objet 3D? y z x Coordonnées = (x,y,z) Chaque sommet est défini par un triplé (x,y,z) le situant dans un repère cartésien. Un objet 3D est approximé par une série (finie) de sommets calculés ou non. Les sommets peuvent constituer soit : Des polyèdres (ensemble de sommets constituant des faces, ou polygones). Des courbes ou surfaces d interpolation (ex : Beziers ou B-splines). UE applications de l informatique, Université de Brest Page 23/50

Approximation polyédrique (2) Exemple : la sphère Nécessaire compromis entre efficacité et qualité de l image (méthode d approximation) : Nombre de sommets et stockage en mémoire. Temps de calcul pour les animations (ex : translation) ou les effets graphiques (ex : lumière). UE applications de l informatique, Université de Brest Page 24/50

Approximation polyédrique (3) P1 M2 P3 P1 M6 P2 M3 P2 P4 P4 P1 P3 P6 M4 P2 P1 P5 P4 P7 M1 P8 P6 P3 P7 P3 M5 P2 P5 P5 P4 P6 Polygone dans un plan : est défini par une suite de segments s1,..., sn tel que le segment si = [Pi, Pi + 1] où Pi est un point du plan avec P1=Pn. i = 1,..., n s appellent les "sommets" du polygone. Les segments si sont nommés "arêtes". Point intérieur : soit un polygone P est un point M du plan. M est intérieur si la demie-droite issue de M intersecte un nombre impair de segments de P. UE applications de l informatique, Université de Brest Page 25/50

Approximation polyédrique (4) 7 6 5 4 3 2 1 Y0 X0 1 2 3 4 5 6 7 8 9 (3,6) (1,7) (1,2), (4,5), (7,8) Algorithme de remplissage naïf : 1. Pour chaque pixel, tester par parité son appartenance au polygone. 2. Colorier le pixel selon (1). Exemple d algorithme de remplissage de polygones de type "scanline" : 1. Traiter le polygone ligne par ligne. 2. Parcourir les arêtes du polygone et détecter les segments intérieurs. 3. Colorier segments par segments. UE applications de l informatique, Université de Brest Page 26/50

Approximation polyédrique (5) Polygone convexe : un polygone P est convexe si 1. Pour tous points M et M qui sont intérieurs à P, le segment [M,M ] est entièrement composé de points intérieurs à P. 2. Toutes ses diagonales (segment qui joint 2 sommets non consécutifs) sont entièrement à l intérieur de la surface délimitée par le polygone. Polygone concave : P est concave si l une de ses diagonales n est pas entièrement à l intérieur de la surface délimitée. Polygone avec autointersection: P contient une autointersection si deux de ses segments non consécutifs s intersectent. UE applications de l informatique, Université de Brest Page 27/50

Approximation polyédrique (6) Xmin Xmax AB BC CA 7 6 5 4 A (+inf, inf) (+inf,3) (+inf,4) (+inf,5) (+inf, inf) (+inf, inf) (+inf,3) (3,3) (+inf,4) (2,4) (+inf,5) (2,5) 3 (+inf,6) (+inf,6) (1,6) 2 1 C B (+inf,7) (+inf, inf) (1,7) (1,7) (+inf, inf) (+inf, inf) Y0 (+inf, inf) (+inf, inf) (+inf, inf) X0 1 2 3 4 5 6 7 8 9 UE applications de l informatique, Université de Brest Page 28/50

Approximation polyédrique (7) Polygones remplis : Attention : beaucoup de bibliothèques (c est le cas pour OpenGL) supposent que les polygones sont convexes!!! Des polygones concaves, à trous, avec autointersection peuvent être redécoupés en sous-polygones. UE applications de l informatique, Université de Brest Page 29/50

Approximation polyédrique (8) Comment définit-on un polygone avec OpenGl : 1. Par une liste ordonnée de sommets. Un sommet est défini par la fonction glv ertex3f. Une liste de sommets est définie par les fonctions glbegin et glend. Open GL ne supporte que les polygones convexes. 2. Par une méthode de connection de ces sommets (ou primitives). Primitives disponibles : GL_P OIN T S, GL_LIN ES, GL_LINE_STRIP, GL_TRIANGLES, GL_TRIANGLES_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUADS_STRIP, GL_POLY GON. UE applications de l informatique, Université de Brest Page 30/50

Approximation polyédrique (9) Primitives OpenGL pour tracer des points/lignes/polygones : P0 P2 P0 P4 P2 P5 P0 P3 P1 P3 P4 P1 P3 P2 P1 GL_POINTS GL_LINES GL_LINE_STRIP P0 P1 P2 GL_LINE_LOOP P3 P0 P2 P1 GL_TRIANGLES P0 P1 P3 P2 GL_QUADS P0 P2 P4 P6 P0 P2 P4 P6 P0 P1 P5 P1 P3 P5 GL_TRIANGLE_STRIP P1 P3 P5 P7 GL_QUADS_STRIP P2 P3 GL_POLYGON P4 UE applications de l informatique, Université de Brest Page 31/50

Approximation polyédrique (10) Dessiner cette scène, c est : 1. Vider l écran, c-à-d manipuler les tampons. 2. Choisir une couleur pour dessiner (le blanc), c-à-d coder/manipuler la couleur. 3. Dessiner le carré, c-à-d définir un polygone. UE applications de l informatique, Université de Brest Page 32/50

Approximation polyédrique (11) Exemple d affichage (en langage C) d une scène : /* Dessine le polygone */ glbegin(gl_polygon); glvertex3f (0.0, 0.0, 0.0); glvertex3f (0.5, 0.0, 0.0); glvertex3f (0.5, 0.5, 0.0); glvertex3f (0.0, 0.5, 0.0); glend(); Quelle est la dimension du polygone? UE applications de l informatique, Université de Brest Page 33/50

Gestion de la couleur (1) Dessiner cette scène, c est : 1. Vider l écran, c-à-d manipuler les tampons. 2. Choisir une couleur pour dessiner (le blanc), c-à-d coder/manipuler la couleur. 3. Dessiner le carré, c-à-d définir un polygone. UE applications de l informatique, Université de Brest Page 34/50

Gestion de la couleur (2) OpenGL utilise le codage RGB. Fonction glcolor3f : positionne la couleur active. Les valeurs de chaque composante sont comprises entre 0 et 1 (intensité de la lumière, valeurs flottantes). Quelques exemples de valeurs significatives : glcolor3f(0.0, 0.0, 0.0); glcolor3f(0.0, 0.0, 1.0); glcolor3f(0.0, 1.0, 0.0); glcolor3f(1.0, 0.0, 0.0); glcolor3f(0.7, 0.7, 0.7); glcolor3f(0.3, 0.3, 0.3); glcolor3f(1.0, 1.0, 1.0); glcolor3f(1.0, 1.0, 0.0); glcolor3f(1.0, 0.6, 0.6); // noir // bleu // vert // rouge // gris clair // gris fonce // blanc // jaune // rose UE applications de l informatique, Université de Brest Page 35/50

Gestion de la couleur (3) Exemple d affichage de notre scène : /* Dessine le polygone en BLANC! */ glcolor3f (1.0, 1.0, 1.0); glbegin(gl_polygon); glvertex3f (0.0, 0.0, 0.0); glvertex3f (0.5, 0.0, 0.0); glvertex3f (0.5, 0.5, 0.0); glvertex3f (0.0, 0.5, 0.0); glend(); UE applications de l informatique, Université de Brest Page 36/50

Gestion des tampons (1) Dessiner cette scène, c est : 1. Vider l écran, c-à-d manipuler les tampons. 2. Choisir une couleur pour dessiner (le blanc), c-à-d coder/manipuler la couleur. 3. Dessiner le carré, c-à-d définir un polygone. UE applications de l informatique, Université de Brest Page 37/50

Gestion des tampons (2) Tampons avant (GL_FRONT ) et arrière (GL_BACK) suivants : chromatiques (GL_COLOR_BU F F ER_BIT ). de profondeur (GL_DEPTH_BUFFER_BIT ). d accumulation (GL_ACCU M_BU F F ER_BIT ). stencil (GL_STENCIL_BUFFER_BIT ). Principales fonctions : 1. Vider un tampon : glclear. 2. Sélectionner la valeur pour vider un tampon : glclearcolor, glcleardepth, glclearstencil, glclearaccum. 3. Copier/Coller/lire/écrire : gldrawbuf f er, glreadbuf f er, glcopypixels,... 4. Tests tels que lissage, stencil, profondeur,... UE applications de l informatique, Université de Brest Page 38/50

Gestion des tampons (3) Exemple du test de profondeur : Le test de profondeur permet de rejeter/ne pas afficher les polygones cachés par d autres (opération de clipping). Il n est pas activé par défaut. Activation par : glenable(gl_dep T H_T EST) Lors de la restitution, le tampon GL_DEPTH_BUFFER_BIT est rempli conformément à la position des différents objets. Entre deux restitutions, ce tampon doit donc être vidé par : glclear(gl_depth_buffer_bit) UE applications de l informatique, Université de Brest Page 39/50

Gestion des tampons (4) Exemple d affichage de notre scène : /* Vider les tampons chromatique et de profondeur */ glclear(gl_color_buffer_bit); glclear(gl_depth_buffer_bit); /* Dessiner le polygone en BLANC */ glcolor3f (1.0, 1.0, 1.0); glbegin(gl_polygon); glvertex3f (0.0, 0.0, 0.0); glvertex3f (0.5, 0.0, 0.0); glvertex3f (0.5, 0.5, 0.0); glvertex3f (0.0, 0.5, 0.0); glend(); UE applications de l informatique, Université de Brest Page 40/50

Fonction d affichage complète #include <GL/glut.h> void display(void) { /* Vider les tampons */ glclear(gl_color_buffer_bit); glclear(gl_depth_buffer_bit); /* Dessiner le polygone */ glcolor3f (1.0, 1.0, 1.0); glbegin(gl_polygon); glvertex3f (0.0, 0.0, 0.0); glvertex3f (0.5, 0.0, 0.0); glvertex3f (0.5, 0.5, 0.0); glvertex3f (0.0, 0.5, 0.0); glend(); /* Forcer le rendu maintenant */ glutswapbuffers (); } UE applications de l informatique, Université de Brest Page 41/50

Sommaire 1. Quelques définitions : images fixes, flots continus et animation. 2. Du modèle 3D à l image animée : introduction à la synthèse d image. 3. Exemple d une bibliothèque graphique : OpenGL. 4. Résumé, ce qu il faut retenir. UE applications de l informatique, Université de Brest Page 42/50

Résumé, ce qu il faut retenir Ce que contient une image et les méthodes d animation (notion de flots continus, simple ou double buf f ering). Infographie, processus de restitution. Comment décrire un objet par un polyèdre. Comment manipuler couleurs et tampons. Codage RGB. UE applications de l informatique, Université de Brest Page 43/50

Bibliographie [DEM 99] I. Demeure and C. Bonnet. Introduction aux systèmes temps réel. Collection pédagogique de télécommunications, Hermès, septembre 1999. [LIE 88] T. Liebling and H. Rothlisberger. «Infographie et applications». Editions Masson, 1988. [MAL 05] R. Malgouyres. «Algorithmes pour la synthèse d image 3D». Editions Dunod, 2005. [WOO 04] M. Woo, J. Neider, T. Davis, and D. Shreiner. «Guide officiel d Open GL 1.4». Campus Press, 2004. UE applications de l informatique, Université de Brest Page 44/50

Annexe : présentation du langage C (1) Le langage C en quelques mots : 1. Langage de programmation généraliste et proche du système d exploitation (gestion mémoire). 2. Langage de programmation impératif et structuré : Blocs : ensemble d instructions délimité par { et } Fonctions : ensemble d instructions paramétrable qui réalise une tache donnée, en vue d être réutilisé (factorisation du code). Peut être un élément de bibliothèque. UE applications de l informatique, Université de Brest Page 45/50

Annexe : présentation du langage C (2) Structure simplifiée d un programme : /* Références aux bibliothèques utilisées */ /* Fonction principale */ int main(int argc, char** argv) { /* Déclarations : variables, types, fonctions */ /* Instructions (séquentielles, itératives, conditionnelles, appels de fonctions) */ } UE applications de l informatique, Université de Brest Page 46/50

Annexe : présentation du langage C (3) Types et déclarations de variables : Types : caractère, entier, flottant, chaîne de caractères.... Déclaration d une variable entière : int a; /* int nom_variable=valeur */ Déclaration d une variable flottante : double b; /* double nom_variable=valeur */ Déclaration d une tableau d entier ou d une chaine de caractères : char str [100]; /* char nom_variable [TAILLE]*/ Opérateurs : Opérateurs arithmétiques : +,, /, Opérateurs logiques : == (égalité),! = (inégalité), <=, >= UE applications de l informatique, Université de Brest Page 47/50

Annexe : présentation du langage C (4) Structures de contrôle élémentaires : Affectation : a=100; /* variable=valeur; */ Séquence : a=100; /* instruction1; instruction 2; */ b=1.5; Instruction conditionelle : if(a==100) /* if (test) */ b=b-1.5; /* instruction1; */ else b=b+1.5; /* else instruction2; */ UE applications de l informatique, Université de Brest Page 48/50

Annexe : présentation du langage C (5) Itération (exemple 1) : int var [100]; for(int i=0;i<100;i++){/* for(init;test;incrément){*/ var[i]=0; /* instructions; */ } /* } */ Itération (exemple 2) : int var [100]; int i; i=0; while (i<100) { /* while(test) { */ var[i]=0; /* instructions; */ i=i+1; /* } */ } UE applications de l informatique, Université de Brest Page 49/50

Annexe : présentation du langage C (6) Exemple de programme : #include <stdio.h> int main(int argc, char* argv[]) { int calculer_somme(int n) { int i; int s=0; for (i=0;i<=n;i++) { s=s+i; } return s; } int a=5; } int somme=calculer_somme(a); printf("somme = %d\n", somme); UE applications de l informatique, Université de Brest Page 50/50