GIF Qualité et performance du rendu en infographie

Slides:



Advertisements
Présentations similaires
Chaîne de Synthèse Réel Modélisation Rendu Image Fichier Scène
Advertisements

Modélisation par Surfaces Implicites à Squelettes Complexes
RENDU DE TERRAIN Problématique : Rendre une très large zone de terrains en la simplifiant au maximum pour réduire le nombre de polygones à afficher. A.Bailly.
Unstructured Lumigraph Rendering
The Reyes Image Rendering Architecture
Qian Cui, Stephane Wolf & Arnaud Choquart - DESS IMM /2003
Technique des Surfels Surfels: Surface Elements as Rendering Primitives SIGGRAPH 2000 H.Pfiste, J.van Baar, M.Zwicker, M.Gross.
Matthias Zwicker Hanspeter Pfister Jeroen van Baar Markus Gross
1/30 Rendu par tracé de chemins ESSI2 George Drettakis http: //www-sop.imag.fr/reves/George.Drettakis/cours/ESSI2/index.html.
Comment décimer les sons numériques
Borhen LOUHICHI Merci, Monsieur le président,
à partir notamment du cours Siggraph 97 et d’autres ….
IMAGIS-GRAVIR / IMAG Rendu de forêts en temps-réel iMAGIS / GRAVIR Franck Sénégas DEA IVR Tuteur: Fabrice Neyret.
Xavier Décoret* Frédo Durand° François Sillion*
2. Echantillonnage et interpolation des signaux vidéo

A Pyramid Approach to Subpixel Registration Based on Intensity
Modélisation et commande hybrides d’un onduleur multiniveaux monophasé
12 novembre 2012 Grégory Petit
GIF Qualité et performance du rendu en infographie
Sélection automatique d’index et de vues matérialisées
Le diaphragme (photographie)
Maillage et création de surface sous Geomagic
Module SIG-Santé 6. Géoréférencement Marc SOURIS Florent DEMORAES
Application des algorithmes génétiques
Chapitre 2 : Filtrage Professeur. Mohammed Talibi Alaoui
Méthode des k plus proches voisins
Le morphage d’images GIF-4105/7105 Photographie Algorithmique
Les instruments d’optique
Modélisation géométrique à l’aide d’un maillage
Examen partiel #3 Mercredi le 15 décembre de 15h30 à 17h20
Rappel... Caractérisation des matrices inversibles: Matrices bloc.
IFT3355: Infographie Plan © Pierre Poulin, Derek Nowrouzezahrai
Analyse de la variabilit é en vision par ordinateur Richard Lepage Département de génie de la production automatisée École de technologie supérieure Montréal.
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
IFT3730: Infographie 3D Textures
IFT3730 : Infographie 3D Systèmes et modèles graphiques Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.
IFT2740 : Outils de l'infographie 3D Systèmes et modèles graphiques
IFT3730 : Infographie 3D Plan de cours
IFT3355: Infographie Visualisation
SUJETS SPÉCIAUX EN INFORMATIQUE I
Rééchantillonnage des données image
Application de texture en OpenGL
STT-3220 Méthodes de prévision
Thierry Molinier > David Fofi >
Triangles de Bézier Tiré de Tomas Akenine-Möller & Eric Haines, Real-Time Rendering. A K Peters, 2002, 835p.
Techniques de points de contrôle en OpenGL : formes de Bézier
TRAITEMENT D’IMAGE SIF-1033.
Méthodes de prévision (STT-3220)
Modélisation géométrique de base
IFT3355: Infographie Textures et aliassage
ASI 3 Méthodes numériques pour l’ingénieur
Examen partiel #1 Mercredi le 4 octobre de 13h30 à 15h20
Traitement d’images sur carte 3D
Géométrie épipolaire (deux vues)
Segmentation (1ère partie)
1 Modèles de particules Reeves, W. T., "Particle Systems - A technique for Modeling a Class of Fuzzy Objects," SIGGRAPH 83, Reeves, W. T., and.
Création et présentation d’un tableau avec Word 2007
Projet Télédétection Vidéo Surveillance Deovan Thipphavanh – Mokrani Abdeslam – Naoui Saïd Master 2 Pro SIS / 2006.
KF-RAY Raytracer parallèle Projet long d’informatique
Introduction à SolidWorks
Projet Lancer de Rayons
Synthèse d’images 3. Texture
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition.
Romain Dupont encadré par J.Aubourg et P. Fuchs
OBJETS ÉLÉMENTAIRES DANS L’ESPACE À TROIS DIMENSIONS
IFT3355: Infographie Plan © Victor Ostromoukhov Dép. I.R.O. Université de Montréal.
Introduction aux technologies du jeux-vidéo Steve Gury
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 10 Textures –Définir la texture –Superposition d’une texture sur une surface plane –Superposition.
De la Terre à la carte: Projections et Géoréférencement
Transcription de la présentation:

GIF-23205 Qualité et performance du rendu en infographie H13-Les textures (partie 1) Patrick Hébert hebert@gel.ulaval.ca Session H09 11 février 2009

Liste des notions importantes La paramétrisation des textures L’échantillonnage Le filtrage La partie 2 traitera notamment du « bump mapping » et du « environment mapping ».

Pourquoi la texture? Elle enrichit le réalisme du modèle d’apparence tout en évitant de décomposer la géométrie trop finement pour représenter les sections de couleurs différentes + =

Deux exemples Elle peut même compenser pour une géométrie fine non modélisée Tirée du RTR

Du pixel au texel La texture peut être une image ou une procédure. L’exemple suivant montre le cas d’une image. (0,0) (1,0) (1,1) (0,1) (u0,v0) (u1,v1) (u2,v2) Image (pixel) (u,v) dans [0,1] Carte de texture (texels) Le triangle n’est pas forcément de la taille (ou forme) de celui de la carte de texture

Autre exemple

La transformation (mapping) n’est pas toujours simple! Projections sphériques, cylindriques, planes Nous verrons aussi le cube et le « environment » mappings Le défi: paramétriser un maillage (u,v) L’espace des paramètres peut aussi être représenté avec 1, 3 ou même 4 paramètres Oui, on peut définir la texture sur un droite!

Principe de la projection sur une surface intermédiaire Principe important: 1- on applique la texture sur une surface simple 2- on passe de la surface simple à la surface réelle

Extension de l’intervalle [0,1] Modes Repeat, mirror, clamp, border Le comportement peut être configuré différemment en u vs en v Notons qu’une texture peut être R, V, B, alpha et qu’elle peut aussi encoder d’autres propriétés comme la normale (2,2) (-1,-1)

L’échantillonnage de la texture Traditionnellement, les cartes de textures devaient être de dimensions égales à une puissance de 2. Des valeurs arbitraires sont maintenant possibles. On doit considérer le sur et le sous échantillonnages du tampon de couleur vs la carte de textures Carte de 256 x 256 texels Forme 80 x 80 Forme 750 x 750

Le suréchantillonnage Rappel: Reconstruire et rééchantillonner sinc(x) n’est pas pratique Le Box filter (voisin le plus proche ”nearest-neighbor”) fournit une qualité discutable

Le suréchantillonnage (suite) L’interpolation linéaire améliore significa- tivement le résultat

L’interpolation bilinéaire Les coordonnées de texture (pu , pv) sont l’intervalle [0,1] La taille de l’image de texture: n*m texels La méthode du plus proche voisin donnerait: ( floor(n*u), floor(m*v) ) L’interpolation bilinéaire peut être vue comme une combinaison de 3 interpolations linéaires

La formule équivalente On pourrait aussi pousser davantage avec une interpolation bicubique (sur une zone 4 x 4) qui serait implantée dans un shader

Le sous-échantillonnage À l’opposé, pour le sous-échantillonnage, il faudrait filtrer avant de reconstruire et d’échantillonner car un pixel couvre plusieurs texels. Il faut considérer la performance et trouver une méthode efficace.

Le mipmapping d v u Une pyramide précalculée Un rapport de 2 par étage selon chaque axe Une moyenne sur les 4 texels du niveau inférieur ou mieux, vous pouvez construire votre propre pyramide N’occupe que 33% plus d’espace 1 + ¼ + 1/16 + 1/64 + 1/256 + ... (une série géométrique: 1/(1-r) avec r= ¼) Il faut calculer le niveau d qui donne un rapport près de 1:1 Le calcul de d (valeur réelle) indique deux images On peut ensuite appliquer une interpolation bilinéaire dans les deux images, suivie d’une interpolation linéaire entre les niveaux. OpenGL peut produire la pyramide et gérer tout d v u

Le mipmapping (suite) (u0,v0,d0) d v u L’interpolation trilinéaire Requiert l’accès à 8 texels niveau n+1 (u0,v0,d0) d niveau n v u

Calcul du niveau d pour le mipmapping texel pixel projeté dans l’espace des textures Le carré englobant peut être surdimensionné si on prend la plus grande dimension Produit du flou

Exemple Voisin le plus proche Mipmapping

Une solution: le filtrage anisotropique d est choisi avec le plus petit côté 16 échantillons

Application des textures Modulation (multiplier la valeur de la texture par la valeur du rendu de base avec éclairage) Remplacement de la couleur par la valeur de la texture Combinaison avec la transparence (alpha) Autres combinaisons possibles Tomas Akenine-Mőller © 2002

Considérations pratiques en OpenGL Étape 1 Glubyte image_texture[512][512][3]; glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 512, 512, 0, GL_RGB, GL_UNSIGNED_BYTE, image_texture); /* le premier 0 est le niveau du mipmapping car on peut charger manuellement et le second est la bordure */ glEnable(GL_TEXTURE_2D); // activer le texture mapping Étape 2 glBegin(GL_QUAD); glTexCoord2f(0.0, 0.0); glvertex3f(x1, y1, z1); glTexCoord2f(1.0, 0.0); … // on pourrait aussi ajouter une normale et même une couleur glEnd();

Considérations pratiques en OpenGL (suite) Répétition de la texture glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); Échantillonnage glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); MipMap gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGB, 64, 64, GL_RGB, GL_UNSIGNED_BYTE, image_texture2); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR);

Considérations pratiques en OpenGL (suite) Fusion de la texture avec la couleur de base glTexEnvi(GL_TEX_ENV, GL_TEX_ENV_MODE, GL_MODULATE); // il y a aussi GL_DECAL Interpolation plus précise qui tient compte de la perspective glHint(GL_PERSPECTIVE_CORRECTION, GL_NICEST); Autres fonctions à explorer glTexGen(); // génère les coordonnées de texture automatiquement Le multitexturing glMultiTexCoord2f(GL_TEXTURE0, s, t);

Notion avancée: les champs lumineux En supposant un milieu transparent, un CL paramétrisé sur n’importe quelle surface fermée permet de produire le rendu de toutes les vues hors de la surface.

Produire le rendu d’un champ lumineux Champ de lumière surfacique: un ensemble multitexture: chaque triangle est couvert par les images des caméras qui le voit Pour un nouveau point de vue, l’image produite est une combi- naison des images (textures) de base

Produire le rendu d’un champ lumineux démo Une question d’interpolation 27

Références utiles Real−Time Rendering, par Tomas Akenine−Möller, Eric Haines et Naty Hoffman, A.K. Peters Ltd., 3e édition, 2008 (chap. 6) OpenGL(R) Programming Guide: The Official Guide to Learning OpenGL(R), Version 2.1, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis, Addison Wesley, 6ième édition, 2007 (chap. 9) OpenGL Shading Language, Randi J. Rost et al, Addison Wesley, 2e édition, 2006. Interactive Computer Graphics – A Top-Down Approach Using OpenGL, E. Angel, Addison-Wesley, 5e édition, 2009 (chap. 8)