8TRD147: Animation et images par ordinateur



Documents pareils
LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

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

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

Représentation des Nombres

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

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

Les algorithmes de base du graphisme

Rendu temps réel de mer et de nuages

Introduction à l étude des Corps Finis

Formats d images. 1 Introduction

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Sillage Météo. Notion de sillage

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Correction du Baccalauréat S Amérique du Nord mai 2007

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Programmation linéaire

La fonction exponentielle

Fonctions de plusieurs variables

Cercle trigonométrique et mesures d angles

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Fonctions de deux variables. Mai 2011

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Fibonacci et les paquerettes

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

La création de vêtements, éléments de génétiques, et de maquillage.

Systèmes de transmission

Cours d Analyse. Fonctions de plusieurs variables

Introduction à la présentation graphique avec xmgrace

Chapitre 4 : Guide de Mouvement et Masque

Probabilités Loi binomiale Exercices corrigés

3 Approximation de solutions d équations

Deux disques dans un carré

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Université Paris-Dauphine DUMI2E 1ère année, Applications

TD : Codage des images

Chapitre VI - Méthodes de factorisation

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

Continuité et dérivabilité d une fonction

Le Data Mining au service du Scoring ou notation statistique des emprunteurs!

Création de maquette web

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Optimiser les s marketing Les points essentiels

Traitement bas-niveau

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

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Chapitre 2 Le problème de l unicité des solutions

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

Ce dont nous avons besoin pour suivre ce tutorial :

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

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

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Exercice : la frontière des portefeuilles optimaux sans actif certain

LIDAR LAUSANNE Nouvelles données altimétriques sur l agglomération lausannoise par technologie laser aéroporté et ses produits dérivés

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

TP SIN Traitement d image

LA NOTATION STATISTIQUE DES EMPRUNTEURS OU «SCORING»

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

«Nouveautés Sage BOB »

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

VIII- Circuits séquentiels. Mémoires

avec des nombres entiers

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

LES NOUVEAUTÉS DE ARCON 15 PRO

Date : Tangram en carré page

Cryptographie et fonctions à sens unique

Leçon 18 Coupes et sections

4.14 Influence de la température sur les résistances

315 et 495 sont dans la table de 5. 5 est un diviseur commun. Leur PGCD n est pas 1. Il ne sont pas premiers entre eux

Tp_chemins..doc. Dans la barre "arche 2" couleur claire 1/5 21/01/13

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

Plan du cours : électricité 1

Résolution d équations non linéaires

Chapitre 0 Introduction à la cinématique

MATHÉMATIQUES FINANCIÈRES

2013 Pearson France Adobe Illustrator CC Adobe Press

V- Manipulations de nombres en binaire

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

Problèmes sur le chapitre 5

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

modélisation solide et dessin technique

Optimisation, traitement d image et éclipse de Soleil

Quantification Scalaire et Prédictive

G.P. DNS02 Septembre Réfraction...1 I.Préliminaires...1 II.Première partie...1 III.Deuxième partie...3. Réfraction

F411 - Courbes Paramétrées, Polaires

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Echantillonnage Non uniforme

Lecture graphique. Table des matières

SINE QUA NON. Découverte et Prise en main du logiciel Utilisation de bases

Complément d information concernant la fiche de concordance

Chapitre 02. La lumière des étoiles. Exercices :

Comprendre l Univers grâce aux messages de la lumière

Transcription:

8TRD147: Animation et images par ordinateur Textures Y. Chiricota Département d informatique et de mathématique Université du Québec à Chicoutimi / Certaines des illustrations de ce document proviennent du livre rouge d OpenGL, des sites developer.apple.com ; opengl.org ; khronos.org ; nvidia.org 8TRD147 UQAC Y. Chiricota(2014) 1

Introduction Le placage de texture (texture mapping (Catmull 74)) est une des premières techniques de mapping. On utilise une image (bitmap) et on l applique à une surface. Cette technique augmente de beaucoup la qualité des images à peu de coût. En 1978, J. Blinn a introduit le bump mapping, une autre technique de mapping très intéressante qui permet de simuler une texture sur les surface à l aide d images. Depuis cette époque, l approche par «mapping» s est énormément développé. Elle est utilisée pour les réflexions, le calcul de lumières, d ombres, etc. 8TRD147 UQAC Y. Chiricota(2014) 2

Un mot sur la couleur... Il existe plusieurs méthodes pour encoder la couleur en informatique. Parmi celles-ci, l encodage par un vecteur RGBA est intégrée à la plupart des systèmes. Un vecteur RGBA est formé de quatre composantes (r, g, b, a) où r (respectivement g, b) représente la quantité de rouge (respectivement vert, bleu) dans la couleur. La composante a sert entre autres à simuler la transparence. Dans OpenGL, chaque composante est un nombre en point flottant appartenant à l intervalle [0, 1]. L encodage des couleurs RGBA en mémoire est effectuée à l aide de mots mémoire (pixels) de 16 ou 32 bits. Il existe une panoplie de format possibles. Un des formats pratique est le 8888 (8 bits par composantes). Ainsi une couleur est représentée par un mot mémoire de la forme 0xRRGGBBAA, où chaque lettre correspond à quatre bits. 8TRD147 UQAC Y. Chiricota(2014) 3

Images numériques. Une image bitmap" est un tableau rectangulaire de taille M N contenant des pixels. Les coordonnées (u,v) sur un bitmap sert à désigner les pixels (qu on pourrait associer à des régions carrées ou rectangulaire, mais qui sont en fait des points). 8TRD147 UQAC Y. Chiricota(2014) 4

Images numériques. Il est pratique de considérer qu une image bitmap correspond en réalité à une fonction [0, 1] [0, 1] : R 4 qu on peut écrire sous la forme C(u, v) = (r(u, v), g(u, v), b(u, v), a(u, v). Dans ce contexte, l image bitmap correspond à un échantillonnage de la fonction C(u, v) ; la couleur du pixel en position (i, j) dans le tableau est donnée par i C( M 1, j N 1 ), où i = 0, 1, 2,... M 1 et i = 0, 1, 2,... N 1. 8TRD147 UQAC Y. Chiricota(2014) 5

Approches directe et inverse de placage de textures. L approche directe (relativement à la direction du pipeline) consiste à trouver l image 1 (en terme de fonction) d un pixel texture (texel) dans le plan caméra. Dans OpenGL, on utilise l approche inverse. Plutôt que projeter un texel dans le viewport (dans l écran), on calcule la configuration d un pixel écran dans la texture. Important : dans cette analyse, on considère le pipeline comme étant une fonction au sens mathématique (à quelques nuances près). Cette fonction transforme l espace défini par le viewport dans l espace définit par l image qui sert de texture. C est une fonction de R 2 R 2. 1. Attention : le terme image a deux sens dans cette présentation. 8TRD147 UQAC Y. Chiricota(2014) 6

Approches directe et inverse de placage de textures. Il est plus naturel de travailler à partir des pixels de l image écran car ce calcul s intègre alors dans la rastérisation des triangles. D ailleurs, les cartes graphiques calculent les images finales pixel par pixel. Il est donc naturel de précéder de la sorte si on veux profiter du parallélisme intégré aux GPU. Un autre avantage de l approche inverse est la possibilité d intégrer l anticrénelage au processus (antialiasing). 8TRD147 UQAC Y. Chiricota(2014) 7

Le processus 8TRD147 UQAC Y. Chiricota(2014) 8

Placage par l approche inverse. 8TRD147 UQAC Y. Chiricota(2014) 9

Problème... 8TRD147 UQAC Y. Chiricota(2014) 10

Bref si on résume... Il faut attribuer une couleur au pixel écran en fonction de sa rétro-projection dans la texture utilisée pour colorer l objet dans la scène. La couleur C p du pixel peut se calculer avec C p = 1 C(u, v)dudv, R R où C(u, v) la couleur au point (u, v) et R est l aire de la région R. 8TRD147 UQAC Y. Chiricota(2014) 11

Version discrète de l échantillonnage. C p = 1 R t T t R A(t R)C t, où A est l aire d une région, T est la texture (un ensemble de texels) et t un texel. La formule précédente n est jamais utilisée en pratique à cause du coût de calcul et d implémentation. 8TRD147 UQAC Y. Chiricota(2014) 12

Il est préférable d utiliser des simplifications des approches précédentes, à partir de l image inverse du pixel à colorier. Note : Dans les figures qui suivent, la texture est à gauche et l image écran à droite. 8TRD147 UQAC Y. Chiricota(2014) 13

Sur-échantillonnage et sous-échantillonnage Si la taille des pixels et des texels est du même ordre, le résultat du placage de texture a de bonne chances d être optimal. Il peut toutefois y avoir des problèmes, comme nous le verrons. Si la taille de l image inverse des pixels est très grande p.r aux texels on parle de sur-échantillonnage. Si c est i inverse, on parlera de sous-échantillonnage. 8TRD147 UQAC Y. Chiricota(2014) 14

La méthode d échantillonnage demande une certaine circonspection. Voici deux cas problème. Il existe plusieurs façon de régler le problème. Les résultats obtenus varient d une méthode à l autre. 8TRD147 UQAC Y. Chiricota(2014) 15

Pixel le plus près. On calcule l image inverse et on colore avec le texel correspondant à l image inverse du pixel. Cette méthode ne permet pas de régler le problème précécent. 8TRD147 UQAC Y. Chiricota(2014) 16

Interpolation bi-linéaire. Dans cette figure, C i,j = C(u i, v j ), où C(u, v) est la couleur en (u, v). 8TRD147 UQAC Y. Chiricota(2014) 17

La couleur d un pixel écran correspondant aux coordonnées (u, v) est donné par C 0 = u u 1 u 0 u 1 C 00 + u u 0 u 1 u 0 C 10 C 1 = u u 1 u 0 u 1 C 01 + u u 0 u 1 u 0 C 11 C p = v v 1 v 0 v 1 C 0 + v v 0 v 1 v 0 C 1 Note : C j est l interpolant linéaire entre C 0j et C 1j. 8TRD147 UQAC Y. Chiricota(2014) 18

Interpolation quadratique et cubique. L interpolation bilinéaire est tout simplement la version bi-dimensionnelle de l interpolation linéaire usuelle entre deux valeurs d une fonction. À une dimension, pour une meilleure précision, il est possible d effectuer une interpolation à partir de trois valeurs. On parle alors d interpolation quadratique car le polynôme d interpolation obtenu est de degré deux. On peut aussi utiliser quatre points (on a alors affaire à l interpolation cubique). En deux dimensions, on a l équivalent, sauf que les points à utiliser forment une grille de 3 3 (interpolation quadratique) ou 4 4 (interpolation cubique). Évidemment, plus on utilisera de point, meilleur sera le résultat et plus il faudra de puissance de calcul... 8TRD147 UQAC Y. Chiricota(2014) 19

Échantillonnage par distance aux centres. Voici une méthode alternative pour déterminer la couleur d un pixel texturé". On fait la somme pondérée en utilisant la distance entre l image inverse du pixel et le centre des texels voisins. pose : L = longueur du coté d un texel carré ; On d = (2)L (longueur de la diagonale) ; a(w) = max(0, 1 w/d) ; Enfin C p = 1 2 (a(d 1)C1 + a(d 2 )C 2 + a(d 3 )C 3 + a(d 4 )C 4 ), où C i est la couleur du texel i et C p la couleur du pixel à colorer. 8TRD147 UQAC Y. Chiricota(2014) 20

Échantillonnage pondéré par l aire d intersection. Voici une autre méthode. La couleur du pixel sera la somme pondérée de la couleur des texels. Posons : A = aire du carré d échantillonnage ; A i = aire de l intersection du carré avec le texel i ; Enfin C p = 1 A (A 1C 1 + A 2 C 2 + A 3 C 3 + A 4 C 4 ). 8TRD147 UQAC Y. Chiricota(2014) 21

Exemple 8TRD147 UQAC Y. Chiricota(2014) 22

Mélange de couleur (blending) La couleur d un pixel déjà calculé dans le framebuffer peut être remplacée (écrasée) par la couleur calculée lors de l échantillonnage d une texture. Cette possibilité permet d implémenter des effets dont une simulation de la transparence. Notons que le mélange sert une opération générale qui s applique même lorsqu on travaille avec des couleurs pleines (sans texture). En effet, lors du calcul d une scène, les primitives (triangles) sont rendus les unes après les autres. Si deux triangles sont placés l un devant l autre (disons T 2 devant T 1) et qu on effectue le rendu de T 1 avant celui de T 2, mélanger les couleurs laissera paraître T 1 au travers de T 2. On peut aussi utiliser le blending" pour d autres effets (masques, etc.). Le mélange de couleur repose en grande partie sur la composante alpha des couleurs rgba (le a de rgba). 8TRD147 UQAC Y. Chiricota(2014) 23

Description mathématique Voici la formule générale pour mélanger deux couleurs rgba. Nous utiliserons la notation vectorielle. Soit C d = (r d, g d, b d, a d ) la couleur actuelle d un pixel calculé (dans le framebuffer) et C s = (r s, g s, b s, a s ) celle de la nouvelle couleur (d pour destination et s pour source). Posons U = (u r, u g, u b, u a ) et V = (v r, v g, v b, v a ), les facteurs de mélange. Le mélange des deux couleurs est donné par C p = U C s + V C d, où correspond au produit composante à composante des vecteurs. Étant donné ces vecteurs, OpenGL remplacera la couleur C d d un pixel de destination par C p. Par exemple, si U = V = ( 1 2, 1 2, 1 2, 1 2 ), C p sera le mélange des ces deux couleurs (celle d origine et la nouvelle) à parts égales. Notons que OpenGL comporte d autres formules de mélange. 8TRD147 UQAC Y. Chiricota(2014) 24

API OpenGL. OpenGL fournit une API pour déterminer comment se fera le mélange de couleurs d un pixel destination avec un fragment (pixel en cours de construction). Cette API permet de déterminer les valeurs de U et V de la formule précédente, ainsi que la formule utilisée pour le mélange. Il faut activer le blending avec la commande : glenable(gl_blend); Par la suite, on spécifie la fonction de mélange et la valeur de U et V. Par défaut, la formule de mélange est celle qu on vient de voir. Nous n utiliserons que celle-ci, pour plus de détails, reportez-vous au livre rouge de OpenGL. 8TRD147 UQAC Y. Chiricota(2014) 25

Fonction de mélange. Détermine la fonction de mélange : void glblendfunc(glenum srcfactor, GLenum destfactor); srcfactor : détermine le calcul du facteur de mélange de la couleur source. destfactor : idem pour la couleur destination. La page suivante donne les valeurs possible pour ces paramètres. On y voit que valeur de la composante a (A s et A d dans le livre rouge de OpenGL) est utilisée pour le mélange de plusieurs façons. Ce tableau est tiré du Livre rouge d OpenGL. 8TRD147 UQAC Y. Chiricota(2014) 26

8TRD147 UQAC Y. Chiricota(2014) 27

Application : billboarding Cette technique permet de représenter des objets aux formes complexes à l aide de textures. La technique consiste à créer une texture (par exemple l image d un arbre) telle que la valeur a de chaque chaque texel visible est 1.0, et vaut 0.0 pour les texels invisibles". On traitera ces objets à partir d un quad dans lequel on dessine la texture avec la fonction de mélange suivante : glblendfunc(gl_src_alpha, GL_ONE_MINUS_SRC_ALPHA); Les objets traités avec cette technique seront les derniers dessinés dans la scène. La composante a de la texture représente en quelque sorte un masque. 8TRD147 UQAC Y. Chiricota(2014) 28

Application : billboarding Voici ce qu on peut obtenir en utilisant deux quads pour représenter un arbre avec cette technique. 8TRD147 UQAC Y. Chiricota(2014) 29

Modèle d illumination de Phong. Le modèle d illumination de Phong permet de simuler la réflexion de la lumière sur les surfaces. Il repose sur l utilisation du vecteur normal à la surface en chaque point P de celle-ci. Dans la figure, L est le vecteur lumière (il pointe du point P vers la position de la source lumineuse), R le vecteur réfléchit et V le vecteur de visée (position de la caméra). L angle θ est l angle entre le vecteur normal N à la surface au point P et ρ est l angle entre le vecteur V et le vecteur réfléchit R. Tous les vecteurs sont normalisés. 8TRD147 UQAC Y. Chiricota(2014) 30

Modèle d illumination de Phong. Pour chaque composante de la couleur utilisée pour l éclairage, l intensité à utiliser est donnée par la formule suivante : I = k a I a + k d I d (L N) + k s (R V ) n, où I a est l intensité de la lumière ambiante (lumière dans laquelle baigne toute la scène), I d est l intensité de la source (lumière diffuse), k a est un coefficient qui détermine comment la lumière ambiante affecte la surface, k d fait la même chose pour la lumière diffuse. Remarquons que L N = cos(θ) et que R V = cos(ρ). L exposant n simule la réflectivité de la surface. Dans la formule suivant, le calcul du vecteur R est coûteux. On peut simplifier avec H = 1 2 (L + V ). 8TRD147 UQAC Y. Chiricota(2014) 31

Le bump mapping Cette méthode a été introduite par Blinn en 78. Pour créer une surface rugueuse (non lisse), on peut utiliser un maillage formé de petits triangles. Cependant, l ajout de plusieurs triangles occasionnera une perte de performance en ce qui concerne le temps de calcul. Le «bump mapping» permet de simuler la rugosité de surfaces, des plis, etc. avec un coût de calcul minime. Plutôt qu ajouter des triangles, nous allons voir comment tricher ( ;-) ) sur l orientation du vecteur normal associé à chaque pixel de la surface à dessiner. 8TRD147 UQAC Y. Chiricota(2014) 32

L idée est d interpréter le bump map" comme une fonction d élévation de la surface B(u, v). Pour illustrer, fixons une la coordonnée v. Ceci facilite l analyse car on travaille dans une dimension. Dans un premier temps, on analyse le problème dans le domaine du continu : Le rendu de la surface sera fait à partir du vecteur N (u, v) plutôt que du vrai" vecteur normal N(u, v). On calculera l éclairage de la surface S trichant. La surface S est appelée surface déplacée. 8TRD147 UQAC Y. Chiricota(2014) 33

Calcul des vecteurs N (u, v) S : [a, b]x[c, d] R 3, surface à laquelle on veut appliquer le bump map. B(u, v) : [a, b]x[c, d] R hauteur de déplacement au point (u, v). Remarquons que B correspond aussi à une une surface. La surface que l on désire (la surface déplacée) est définie par : S (u, v) = S(u, v) + N(u, v)b(u, v). 8TRD147 UQAC Y. Chiricota(2014) 34

Si F est une fonction qui dépend de deux variables u et v, F u et F v représentent les dérivées partielles p.r. à u et v respectivement. Le vecteur normal N (u, v) est définit par N = S u S v. Il faut calculer les dérivées partielles de la surface déplacée, on a : S u = (S(u, v) + B(u, v)n(u, v)) u = S u + B u N + N u B et S v = (S(u, v) + B(u, v)n(u, v)) v = S v + B v N + N v B 8TRD147 UQAC Y. Chiricota(2014) 35

Le calcul du produit vectoriel S uxs v = (S u + B u N + N u B)x(S v + B v N + N v B) s avère couteûx. On obtient une approximation acceptable en tenant compte du fait que la valeur de B(u, v) est généralement faible p.r. aux autres valeurs en cause, on pose : S u = S u + B u N et S v = S v + B v N On a alors (en utilisant les propriétés des produits scalaire et vectoriel) N = (Su + B u N) (S v + B v N) = S u S v + B u (N S v ) + B v (S u N) = N + B u (N S v ) B v (N S u ) Le calcul du vecteur normal de remplacement au point (u, v) demande donc la connaissance des vecteurs tangent et binormal de S ainsi que le calcul des dérivées partielles B u et B v. 8TRD147 UQAC Y. Chiricota(2014) 36

Implémentation La surface de déplacement B peut être définie analytiquement ou encore à l aide d une image bitmap. L avantage de l approche analytique est qu on peut calculer les dérivées directement. Le calcul de B u et B v pour un déplacement défini à partir d une image bitmap se fait à partir de formule d approximation obtenues des différences finies : et B u (u 0, v 0 ) = B(u 0 + h, v 0 ) B(u 0, v 0 ) h B v (u 0, v 0 ) = B(u 0, v 0 + h) B(u 0, v 0 ) h = B(u 0, v 0 ) B(u 0 h, v 0 ) h = B(u 0, v 0 ) B(u 0, v 0 h). h Il faut imaginer le bitmap comme étant une discrétisation d une fonction B(u, v). La valeur de h doit être proportionnelle à la taille du bitmap. Si h est plus petit de la taille d un pixel de B, la valeur de la dérivée sera toujours 0... 8TRD147 UQAC Y. Chiricota(2014) 37

Avantages : Réaliste ; Coût de calcul minime ; Textures procédurales : ex. bruit, etc. Limites : La rugosité est artificielle (impossible de créer des "replis" d une surface) ; L effet n est pas visible sur les silhouettes ; La hauteur du bump map ne peut être trop forte. 8TRD147 UQAC Y. Chiricota(2014) 38

Aproche procédurale. Le bump mapping peut lui aussi être implémenté par une fonction. 8TRD147 UQAC Y. Chiricota(2014) 39

Bump map précédent utilisé avec un cylindre. L approche par procédurale présente des avantages : Peu coûteux en mémoire ; Facile à implémenter avec un shader ; La texture est en "pleine" résolution ; Pas besoin d image ; On peut faire de l animation en faisant varier des paramètres ; etc. 8TRD147 UQAC Y. Chiricota(2014) 40

Il est possible d utiliser des fonctions pour appliquer une textures sur une surface. On parle alors de texture procédurales. Pour définir une texture de couleur, il s agit d avoir une fonction qui associe une couleur C à chaque coordonnées de texture (u, v). Il est possible de simuler la texture de bois de cette façon. www.povray.org 8TRD147 UQAC Y. Chiricota(2014) 41