GRAPHISME PAR ORDINATEUR SIF-1032. Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
à partir notamment du cours Siggraph 97 et d’autres ….
INF-1019 Programmation en temps réel
GIF Qualité et performance du rendu en infographie
VersaWorks: Impression de données variables
Concepts avancés en mathématiques et informatique appliquées
Transformations de visualisation en OpenGL
Création d'un diaporama Création d'un diaporama
SUJETS SPÉCIAUX EN INFORMATIQUE I PIF Contenu du cours Transformations géométriques des objets –Transformations 2D –Transformations entre systèmes.
GRAPHISME PAR ORDINATEUR
Gestion des événements liés à la fenêtre et aux périphériques dentrée.
FICHIERS : Définition : Algorithme général:
Modélisation géométrique à l’aide d’un maillage
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Visualisation de surfaces décrites analytiquement
IFT3730: Infographie 3D Textures
IFT3730 : Infographie 3D Systèmes et modèles graphiques Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.
PIF-6003 Sujets spéciaux en informatique I
Standard Template Library
Interprétation automatique
Application de texture en OpenGL
Texture 2D en PGC++.
Découpage des objets selon le volume de vue
Techniques de points de contrôle en OpenGL : formes de Bézier
Représentation et traitement des images en OpenGL
PROTOTYPE D’UN PROGRAMME ÉCRIT EN C++ BASÉ SUR OPENGL
Projet Télédétection Vidéo Surveillance Deovan Thipphavanh – Mokrani Abdeslam – Naoui Saïd Master 2 Pro SIS / 2006.
Modélisation géométrique
PHP 5° PARTIE : LES COOKIES
GRAPHISME PAR ORDINATEUR
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
GRAPHISME PAR ORDINATEUR
Intervalles de confiance pour des proportions L’inférence statistique
Projet Lancer de Rayons
Programmation Création d’une mire 1 afficher une image
Synthèse d’images 3. Texture
Les outils graphiques Ce sont des programmes avec les quel on peut modifier ou créer differentes sorte d’images ou videos,sert a la création,manipuler.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Performance de circuits.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 6 Transformation et animation de plusieurs modèles 3D avec XNA –Chargement des modèles 3D (modèle.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 8 Rendu de surfaces –Modèles de rendu de surfaces –Illumination de la scène –Sources lumineuses –Composante.
GRAPHISME PAR ORDINATEUR
Architecture et Fonctionnement d’un GPU Géométrie Rendu.
Éléments de présentation
Comprendre le SGBDR Microsoft Access – partie 2
Les outils graphiques Permet de traiter ces dessin Manipuler des formes, des photos Modifier les vidéo 3 D.
Visualisation des flots optiques en 3D
Les outils graphiques -Les outils graphiques sont des logiciels de retouche d’image -Mettre des images en 3D -manipuler des videos et les mettre en 3D.
Conception des pages Web avec
GRAPHISME PAR ORDINATEUR
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 2 Introduction à XNA –Installation de XNA 4.0 –Premier projet –Gestion des ressources (images, vidéo.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition.
Traitement du signal (images) u Sujets –Détection des droites –Transformée de Hough (espace paramétré) *avec la pente et l’ordonnée à l’origine *avec.
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 7 Introduction à l’illumination avec XNA Voir le tutoriel:
Utilisation des formules de base
Premières notions de la 3D
Dév. Application interactive III
Qu’est-ce qu’un outil graphique?
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Environnement Flash MX
DREAMWEAVER Première séance Villaron Audrey – Shibly Tarek.
** Flash séance 2 Action script. ** Action Script Ajoute de l’interactivité Permet de contrôler les clips  Langage de programmation orienté objet.
Dreamweaver le retour Avec Les Formulaires Les Calques
EXPOSE FLASH 2 SI 28 24/10/2006 Delphine GODREAU Hélène PERRIER.
SI 28 - Présentation Image Ready Aurélie Letenoux GSU 4.
Dreamweaver 2 Feuilles de Style CSS Formulaires Calques Comportements
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
Les vues O.Legrand G.Seront. Les vues Dans Android, une ihm est composée de vues. Ces vues.
GRAPHISME PAR ORDINATEUR
Transcription de la présentation:

GRAPHISME PAR ORDINATEUR SIF-1032

Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition d’une texture sur une surface courbe Lectures (Chapitre 8) Site NeHe: Leçons 6 et 7 NeHe’s OpenGL Tutorials: Chapitres 6 et 7 OpenGL Programming Guide: Chapitre 9

Textures Les textures 2D sont généralement des images de format.bmp Les textures 2D servent à remplacer des surfaces de géométrie complexe (ex: briques sur des murs) La superposition des textures sur des surfaces consiste à projeter l ’espace de la texture représentée par des coordonnées (s,t) dans un plan dont les coordonnées sont données par des triplets (x,y,z)

Textures Exemples de superposition de textures 2D sur des surfaces (Voir leçon 6 de NeHe)

Textures Exemples de textures 2D (image.bmp, générée)

Textures Superposition des textures: transformation de l’espace des textures vers l’espace des surfaces Texture/World World/Screen

Textures Superposition des textures: transformation de l’espace des textures vers l’espace des surfaces

Textures Superposition des textures: transformation de l’espace des textures vers l’espace des surfaces Transformation spatiale Affectation de la couleur (x, y,z) SURFACE TEXTURE

Textures Définir les textures images 2D (voir leçon 6) texture[]: une liste de pointeurs de texture

Textures Définir les textures images 2D (voir leçon 6) AUX_RGBImageRec *texture1 crée un enregistrement pour le premier bitmap chargé et utilisé comme texture. Cet enregistrement contient les données RGB de l’image.bmp auxDIBImageLoad() charge l’image.bmp (ex: NeHe.bmp) et la stocke dans l’enregistrement texture1

Textures Définir les textures images 2D (voir leçon 6) glGenTextures(1, &texture[0]) indique à OpenGL que nous voulons construire une texture et qu’elle soit stockée dans l’entrée 0 de texture[] glBindTexture(GL_TEXTURE_2D, texture[0]) indique à OpenGL que texture[0] (la première texture) sera une texture 2D glBindTexture() permet à OpenGL de pointer sur une zone mémoire où sera stockée la texture (&texture[0]). À la création de la texture elle est stockée dans cet emplacement de mémoire. Après, si un lien à la mémoire est effectué, OpenGL lira la texture correspondante à partir de cet emplacement de mémoire RAM

Textures Définir les textures images 2D (voir leçon 6) Ces fonctions permettent de spécifier le type de filtrage utilisé quand l’image est plus grande (GL_TEXTURE_MAG_FILTER) à l’écran que la texture l’est en réalité, ou quand l’image est plus petite (GL_TEXTURE_MIN_FILTER) sur l’écran comparativement à la texture GL_LINEAR donne un aspect lisse à notre texture de proche ou de loin à l’écran. L’utilisation du paramètre GL_LINEAR se traduit par une charge de travail importante pour la carte vidéo ce qui peut ralentir notre système GL_NEAREST donne une texture beaucoup moins lisse et quand elle est agrandie à l’écran les formes de la texture deviennent carrée

Textures Définir les textures images 2D (voir leçon 6) Création de la texture. Indique à OpenGL que la texture est 2D (GL_TEXTURE_2D). 0 représente le niveau de détail des images, habituellement à 0. 3 est le nombre de composantes de couleurs (RGB). texture1->sizeX donne automatiquement la largeur de la texture. texture1->sizeY donne la hauteur de la texture. Le zéro suivant est la bordure, habituellement laissé 0. GL_RGB indique à OpenGL que l’image est RGB. GL_UNSIGNED_BYTE représente la dimension en octet des composantes de couleurs de chaque pixel des images (unsigned char). texture1->data indique à OpenGL où sont stockées les données images associées à une texture

Textures Définir les textures images 2D (voir leçon 6) LoadGLTextures() permet de charger l’image.bmp et permet la création de la texture glEnable(GL_TEXTURE_2D) active le mode texture mapping

Textures Définir les textures images 2D (voir leçon 6) La fonction glBindTexture() permet de sélectionner la texture utilisée. Pour les autres textures il faudrait appeler la fonction glBindTexture(GL_TEXTURE_2D, texture[numéro de texture]). Il faut appeler cette fonction hors des énoncés glBegin() et glEnd().

Textures Définir les textures images 2D (voir leçon 6) La fonction glTexCoord2f() permet de définir les coordonnées de textures. La première, la coordonnée x (s). 0.0f est à gauche de la texture. 0.5f dans le milieu et 1.0f à droite. La seconde, la coordonnée y (t). 0.0f est le bas de la texture. 0.5f est le milieu et 1.0f dans le haut.

Textures Définir les textures images 2D (voir leçon 6)

Textures Définir les textures images 2D (voir leçon 6) La face frontale du cube est couverte avec la portion inférieure gauche de la texture

Textures Définir les textures images 2D (voir leçon 6)

Textures Définir les textures images 2D (voir leçon 6) La face frontale du cube est couverte avec la portion supérieure droite de la texture

Textures Définir les textures images 2D (voir leçon 6)

Textures Définir les textures images 2D (voir leçon 6) La face frontale du cube est couverte avec une répétition de la texture de 2 en x et y

Textures Définir les textures images 2D (voir leçon 6)

Textures Définir les textures images 2D (voir leçon 6) La face frontale du cube est couverte avec une répétition de la texture de 4 en x et de 2 en y

Textures Définir les textures images 2D (voir leçon 6)

Textures Définir les textures images 2D –La fonction glTexImage2D() permet de définir une texture image 2D avec OpenGL –Paramètres: Type de texture: GL_TEXTURE_2D Niveau de détail: 0 en général Nombre de composantes de couleur (1 à 4) Largeur de la texture image (puissance de 2 [64, 256]) Hauteur de la texture image (puissance de 2 [64, 256]) Largeur de la bordure (0, 1 ou 2) Format des pixels (ex: GL_RGB, GL_RGBA..) Type de chaque valeur des pixel (ex: GL_UNSIGNED_BYTE) Séquence de pixels

Textures Définir les textures images 2D –Modes de rendu de texture (couleur VS illumination) GL_MODULATE : permet de faire le rendu des surfaces texturées en considérant les propriétés des surfaces (couleurs, propriétés de réflexion) et l’illumination. Ce mode est celui par défaut et le plus utilisé GL_DECAL : seule l’information texturale sert à faire le rendu la couleur, les propriétés des surfaces et l’illumination ne changent en rien l’apparence de la texture GL_BLEND : permet la superposition de textures

Textures Définir les textures images 2D –Modes de rendu de texture Le mode de rendu de texture est initialisé par la fonction glTexEnvi() Paramètres: –Type d’environnement texture: GL_TEXTURE_ENV –Paramètre à définir: GL_TEXTURE_ENV_MODE (mode) GL_TEXTURE_ENV_COLOR (mode GL_BLEND) –Mode ou couleur: »modes: GL_MODULATE, GL_DECAL, GL_BLEND »couleur: pointeur sur une valeur RGBA

Textures Définir les textures images 2D –Type d’interpolation utilisée pour déterminer la couleur correspondant à chaque point d’une surface projetée sur la texture GL_NEAREST: le voisin le plus proche GL_LINEAR: interpolation linéaire –La fonction glTexParameteri() permet d’établir le mode d’interpolation Paramètres: –Type de texture: GL_TEXTURE_2D –Paramètre à définir: »GL_TEXTURE_MIN_FILTER: réduction de la texture »GL_TEXTURE_MAG_FILTER: agrandissement de la texture

Textures Définir les textures images 2D –La fonction glTexParameteri() permet d’établir le mode d’interpolation Paramètres: –Type d’interpolation: »GL_NEAREST »GL_LINEAR

Textures Définir les textures images 2D –Spécification des coordonnées de texture par la commande glTexCoord2d() avec comme paramètres les coordonnées de texture s et t –Ces coordonnées sont contenues dans l’intervalle [0.0,1.0]

Textures Définir les textures images 2D –Répétition de texture Quand les coordonnées de textures sortent de l’intervalle [0,1], nous pouvons imposer soit une répétition de la texture complète (GL_REPEAT) ou une répétition de la couleur correspondant à la bordure de la texture (GL_CLAMP)

Textures Définir les textures images 2D –Répétition de texture Les procédures: glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S, GL_REPEAT) glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T, GL_REPEAT) permettent d ’établir le mode de répétition de texture

Textures Définir les textures images 2D –Répétition de texture (GL_CLAMP, voir leçon 6)

Textures Définir les textures images 2D –Répétition de texture (GL_CLAMP, Voir leçon 6)

Textures Définir les textures images 2D –Manipulation de plusieurs textures image La fonction glGenTextures() permet à OpenGL de réserver un ou plusieurs numéros (nom, référence) d’objet texture Gluint texture_objects[5]; glGenTextures(5,texture_objects); Gluint texture_object; glGenTextures(1,&texture_object);

Textures Définir les textures images 2D –Manipulation de plusieurs textures image La fonction glBindTexture() permet de sélectionner un objet texture nommé par glGenTextures() Gluint texture_object; glGenTextures(1,&texture_object); glBindTexture(GL_TEXTURE_2D,texture_object);

Textures Superposition d’une texture sur une surface plane –Exemple de superposition de texture (Voir projet Terrain1, terrain et ciel bleu) En premier lieu, nous avons besoin d’une fonction qui permet de charger la texture image (.bmp) La fonction TextureLoad() permet de faire ce chargement: –Paramètres: »Nom de fichier.bmp contenant la texture 2D »Indicateur d’utilisation d ’image RGBA »Min filter »Mag filter »Répétition

Textures

Textures (fonction TextureLoad())

Textures (Land.bmp, sky.bmp)

Textures (fonction Redraw(), ciel)

Textures (fonction Redraw(), terrain)

Textures (fonction Redraw(), terrain + ciel)

Textures (fonction Redraw(), ciel)

Textures (fonction Redraw(), terrain)

Textures Superposition d’une texture sur des surfaces planes –Génération d ’un terrain par fractal (Voir projet Terrain2) Algorithme fractal subdivise une surface plane et ajuste la hauteur des points milieux de façon aléatoire tp[].v

Textures (fonction Redraw(), fractal) //Fractal

Textures (fonction BuildTerrain(), fractal)

Textures (fonction DivideTerrain(), fractal) // Élévation

Textures (fonction DivideTerrain(), fractal)

Textures Superposition d’une texture sur des surfaces planes –Génération automatique de coordonnées de texture La fonction glTexGen permet d ’établir les paramètres de génération automatique de coordonnées de texture Cette fonction permet de générer les coordonnées (s,t) d ’une texture à partir des positions dans une forme de la scène glTexGeni(GL_S,GL_TEXTURE_GEN_MODE, GL_OBJECT_LINEAR) SI GL_TEXTURE_GEN_MODE == GL_OBJECT_LINEAR ALORS »Chaque sommet des objets est multiplié par le vecteur définit par GL_OBJECT_PLANE »glTexGenfv(GL_S,GL_OBJECT_PLANE, s_vector) »s_vector représente une fonction de projection

Textures Superposition d’une texture sur des surfaces planes –Génération automatique de coordonnées de texture »s_vector représente une fonction de projection glEnable(GL_TEXTURE_GEN_S) permet à OpenGL d ’utiliser une séquence de coordonnées de texture générée

Textures Superposition d’une texture sur des surfaces planes –Génération automatique de coordonnées de texture glTexGeni(GL_S,GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP) SI GL_TEXTURE_GEN_MODE == GL_SPHERE_MAP ALORS »Les coordonnées de texture sont générées dans une sphère par rapport à la position de visualisation ou l ’origine

Textures (Fonction Redraw(), projet Terrain3)

// Calcul par rapport à l ’observateur

Textures (Fonction Redraw(), projet Terrain3)

Textures (Avec Illumination, projet Terrain5) Ajout de l ’illumination et des normales à chaque surface N

Textures (Avec Illumination, projet Terrain5)

Textures (Avec transparence, projet Terrain6)

Textures Superposition d’une texture sur une surface courbe