Lien de la note Hackmd
Les textures
- Objectifs
- Ajouter du realisme
- Simplifier la modelisation des secenes
- Simuler l’eclairage
- Applications
- Algorithmes temps reels
- Algorithmes photorealistes
- Types:
- Textures procedurales
- Textures plaquees
- Effet de volume
- Eclairage
Les couleurs
- Associer une couleur par face
- Effet de volume donee par l’illumination
- Gouraud
- Phong
- Effet de volume donee par l’illumination
- Associer une couleur par sommet
- interpolation
- Indiquer les proprietes des materiaux
- diffusion
- specularite
Les textures plaquees
- “Mapper” un bitmap sur un polygone
- Realise
- Consommation memoire elevee
- Comment plaquer une texture?
- Sur un plan $\to$ facile
- Sur une surface quelconque >
- Trouver une fonction
- Plaquer la texture suivant un projection simple
- Plan
- Sphere
- Cylindre
- Cube
- …
- Conformal map
- Projection:
- planar
- cylindrical
- spherical
- triplanar
- On cree un plan qu’on projette sur le theiere
- On cree un cyclindre qu’on projette sur le theiere
- On cree une sphere qu’on projette sur le theiere
Projections:
- triplanar
- On le projette en fonction de la normale du point qu’on considere
- Permet de dissocier les textures en fonction de l’orientation
Pour un personnage (ou objet complexe), on ne trouvera pas de fonction intermediaire.
Association texture $\leftrightarrow$ model
- On decoupe soi-meme sont modele
- Voir quel est le mapping entre le modele decoupe et aplatit et le bitmap qu’on veut mapper
Possible d’avoir un decoupage plus “intelligent”.
- Conformal map
Origine du Bitmap
- Image (photo)
Est-ce qu’on peut faire des photos ou des dessins ? On peut peindre “comme un artiste” les surfaces 3D
- Resultat d’un rendu (render to texture)
- Surfaces reflechissantes
Ca va ? Pas trop le mal de mer maintenant ?
Dans ce cas on map 6 textures sur la sphere
- Change quand on bouge la camera
- Pour le rendu final on a 6 rendus intermediaires
“Mapper” un bitmap sur un polygone
- Interpolation dependante du $z$
- Repetition de la texture si non compris entre 0 et 1
Textures repetitives
Qu’est-ce qui se passe quand on veut faire un mur de brique ?
- Motif repetitif
- On prend un motif qu’on duplique
Avantages | Inconvenients |
---|---|
Economise de l’espace | Le motif peut devenir visible |
Pour reduire les inconvenients:
- Prendre des patches plus petits
- Prendre des motifs differents
Ce n’est qu’une facon de repousser le probleme
Mipmap
Si on a notre mur qu’on voit de loin, plein d’artefacts apparaissent
- Le but du MIP est d’eviter la pixelisation lorsqu’on s’eloigne d’une texture
- Le niveau de detail des textures est adapte a la distance de l’objet
- Souvant supporte nativement par les moteurs graphiques
- Lissage
- Mip mapping: niveau de detail (LOD)
- Point sampling: texel le plus proche
- Bilineaire: interpolation sur 4 texels
- Trilineaire: interpolation inter-LOD
- Anisotropique: prise en compte des effets d’angle (32 texels)
Textures procedurales
- Texture generee
- Avantages:
- Economie de memoire
- Pas de repetition dans le motif
- Possibilite d’avoir une texture 3D
- …
- Avantages:
- Effets classique:
- Damier,
- Rayures,
- …
Je vous ai fait une espece de bronze ou je ne-sais-quoi
- Generation de bruit pour simuler l’aspect de certains elements
- Bruit structure
Bruit de Perlin
Afin de donner une impression d’organisation, seul un sous enesemble de points est genere aleatoirement. Le reste des points es calcule par interpolation.
Ajout d’autres frequences:
- $bruit(i,x)=p^{(i-1)}.bruit(2^{(i-1)},x)$
- Parametres: pas, persistance et nombre d’octaves
- Resultat:
- Somme de l’ensemble des $bruit(i,x)$
- 1 octave $p=0.5$
- On interpole (interpolation lineaire)
- On prend un autre echantillonage et on interpole avec cette autre matrice $\Leftrightarrow$ 2 tirages aleatoires donc 2$^{eme}$ octave
- 2 octaves $p=0.5$
- 5 octaves $p=0.5$
- 5 octaves $p=0.8$
- 5 octaves $p=0.2$
Applications:
- fumee
- Interpolation du balanc $\to$ noir
- cieluages
- En dessous d’un certain seuil: Interpolation du gris bleu $\to$ bleu
- Au dessus d’un certain seuil: bleu
- bois
- En dessous d’un certain seuil, marron fonce
- En dessous d’un certain seuil, marron clair
- Entre les deux, interpolation
- psycho…
A force de jouer avec les couleurs j’ai un peu craque
- marbre
- $n = 1-\sqrt{\vert\sin(2\pi v)\vert}$
- Interpolation linaire du gris vers le noir en fonction de $n$
- Generation possible en 3D
Usage des textures
Billboard
- Element toujours face a l’observateur sur lequel est plaque une texture
- Permet de simuler un objet/phenomene complique simplement a l’aide d’une texture:
- Arbre
- Feu
- …
Environnement
On peut s’enfermer dans un objet pour avoir notre environnement
- Equirectangular
- Une seule texture pour l’ensemble de l’environnement
- Cubemap
- Skybox
- On enferme notre personnage dans un cube
- Meme resolution pour tous les points
- Mettre 6 cameras qui prennent $90^o$ dans une direction
In-theiere stellar
Texture particuliere
Objets transparents
- Rendu type raytracing
- Loi de Snell-Descartes
- Rendu par projection openGL
- Pas de deviation de rayon
- Rend tous les objets qui ne sont pas transparents
- On verrouille le z-buffer en ecriture avant de dessiner tous les objets transparents
- Objets transparents: melanger la couleur de ce qui a deja ete dessine avec l’objet transparent
Textures
Effet de volume
- Perturbation des normales
- Bump mapping (Blinn)
- Permet de faire apparaitre des variation sur la surface
Realise avec blender (C’est une mure en haut a droite)
Comment voir que c’est bien juste la perturbation de normale ?
Si on trace les contour, on voit bien qu’ils sont lissent et qu’ils ne vont pas dans les creux de la mure.
Pour aller plus loin:
- Parallax mapping
- Relief mapping
Ameliorations
La texture permet d’ajouter du realisme et evite de modeliser les details d’une surface. Toutefois le resultat est un peu plat.
Initialement, on plaque un bitmap
- Ne pas considerer seulement le bitmap
- Ajout d’informations:
1. Deformations locales
- Height map
- Carte d’elevation
- Normales deduites en faisant une derivee partielle
- Normal map
- Diminue le niveau de details (polygones)
- Stocke dans une image
Bitmap:
Bitmap + bump mapping:
- Tache d’illumination a disparue
2. Proprietes locales
Ex: specularite
Bitmap + bump mapping + modifications speculaires
Conclusions
- Participe au realimse
- Permet la simplification des modeles
- Permet de simuler certains objets/phenomenes difficiles