1. Algorithmes de base

Infographie – chapitre 3
Rendu fondamentaux :
Algorithmes de base et techniques locales
Infographie v.2014
HE-Arc / HES-SO – BSc3
Stéphane Gobron
1
Avant-propos
Cadre de cette présentation :
1
Modélisation
E.g. NPR
E.g. Via
OpenGL
2
Rendu
fluides
3
Animation
E.g. Via
OpenGL
2
Plan
Introduction
1. Algorithmes de base
2. Diverses techniques locales
Référence / conclusion / discussion
3
Plan
Introduction
i. Buts du rendu
1. Algorithmes de base
2. Diverses techniques locales ii. Buts de ce cours
iii. Pré requis
Référence / conclusion / discussion
vi. Un "bon" rendu
4
Introduction
i. Buts du rendu
• Percevoir les objets visibles
– Quoi ?
– Où ?
• Dessiner ces objets
– Comment ?
5
Introduction
ii. Buts de ce cours
Présenter les principales méthodes et techniques de rendu
local et global en infographie
A noter : pour une meilleure compréhension des approches relatives à
l’éclairage global, une brève interprétation formelle sera présentée
Pour l’étudiant, les objectifs à atteindre sont
• Connaître les avantages et faiblesses de ces techniques et méthodes
de rendu fondamentales
• Savoir choisir une méthode de rendu adaptée pour rendre telle ou telle
scène basée sur un ou plusieurs modèles géométriques que ce soit dans
le cadre de développement ou d'option logicielle
6
Introduction
iii. Pré requis
Il est préférable de connaître
• Les algorithmes de base de infographie 2D
• Les différents modèles géométriques en infographie
• Les bases de la géométrie projective
7
Introduction
iv. Un "bon" rendu
Le rendu est influencé par
• Le/les types de modèles géométriques
• De nombreuses techniques et méthodes
• Affectation locale ou globale (scène ou écran)
Ces principes peuvent être combinés
=> On ne peut pas définir de propriétés relatives à
un « bon rendu »
8
Plan
Introduction
1. Algorithmes de base
1.1 techniques
Algorithme du
peintre
2. Diverses
locales
1.2/ Z-buffer
Référence
conclusion / discussion
1.3 Area subdivision
1.4 Illumination locale de Phong
1.5 Shadings de Gouraud et de Phong
9
1. Algorithmes de base
1.1 Algorithme du peintre
Tri par la profondeur
• On dessine d’abord les polygones les plus
lointains, puis les polygones proches de l’œil
• Les polygones plus proches cachent les polygones
lointains
Caméra
10
1. Algorithmes de base
1.1 Algorithme du peintre -suite
Exercice et discussion
• Identifions les problèmes de cette approche
11
1. Algorithmes de base
1.1 Algorithme du peintre
Avantages / inconvénients
+ Le plus simple des algorithmes
- Ambiguïté
12
1. Algorithmes de base
1.2 Z-buffer
• Principe
–
–
–
–
Pour chaque polygone dans la liste de pré-sélection
Pour chaque pixel qui touche ce polygone
Si Z courant est + petit que Z stocké
Alors stocker sa couleur et son Z
• Champs d’action
13
1. Algorithmes de base
1.2 Z-buffer
Propriétés
• Les ambiguïtés disparaissent
• Exemple
14
1. Algorithmes de base
1.2 Z-buffer
Résultats
• Avantages
–
–
–
–
Facile à implémenter
Inutile de trier les facettes
Le développement hardware est facile
Requière relativement peu de mémoire
• Env 9MB pour une résolution de 1280x1024
• Inconvénients
– Génère des problèmes d’aliasing
• Un unique échantillon par pixel
– Ne gère pas les transparences
15
1. Algorithmes de base
1.3 Area subdivision (1/5)
Principe
• Algorithme de « Warnock »
• Principe
–
–
–
–
–
Diviser l’écran en zones de travail (Quadtree)
Pour chaque zone => polygones inclus
Si la visibilité est connue, s’arrêter
Sinon subdiviser
Interrompt la subdivision si une taille limite atteinte
16
1. Algorithmes de base
1.3 Area subdivision (2/5)
Zone de travail
Englobe
Inclus
Intersecte
Disjoint
17
1. Algorithmes de base
1.3 Area subdivision (3/5)
Visibilité connue
• Zone vide ou complète
• Tous les polygones sont disjoints
• Un seul polygone intersecte ou inclus
• Un polygone englobant qui est devant les autres
18
1. Algorithmes de base
1.3 Area subdivision (4/5)
Pour ou contre
+/- Plus efficace avec des grands polygones
- Coût mémoire parfois élevé
+ Implémentation facile : appels récursifs
• Exemple :
19
1. Algorithmes de base
1.3 Area subdivision (5/5)
Solutions optimisées
• FOLEY et al. 1996: Divide-And-Conquer
– Division warnock
– Division utilisant les sommets des polygones
20
1. Algorithmes de base
1.4 Illumination locale :
modèle de Phong (1/6)
Trois grands effets pour générer un modèle simple
• Lumière ambiante
• Lumière diffuse
• Lumière spéculaire
21
1. Algorithmes de base
1.4 Illumination locale : modèle de Phong (2/6)
Effet ambiant
• Couleur dépend uniquement de l’objet : I = Ia ka
• Ia lumière ambiante
• ka coefficient de réflexion ambiante
• Modèle très primitif
– Pas de sens physique possible
– La forme des objets est invisible
– Mais néanmoins très utile pour masquer les défauts des autres modèles
(ka)
22
1. Algorithmes de base
1.4 Illumination locale : modèle de Phong (3/6)
Effet diffus
• Réflexion dans toutes les directions
• Matériaux mats
• I = Ip . kd . cos(q)
– Ip source ponctuelle
– kd coefficient de réflexion diffuse
– t angle entre la source et la normale
(kd)
23
1. Algorithmes de base
1.4 Illumination locale : modèle de Phong (4/6)
Effet ambiante et diffuse
• Lumière ambiante (ka) et diffuse (kd)
(ka)
24
(kd)
1. Algorithmes de base
1.4 Illumination locale : modèle de Phong (5/6)
Effet spéculaire
• Effet de « brillance »
q
25
1. Algorithmes de base
1.4 Illumination locale : modèle de Phong (6/6)
En pratique
• Tout ensemble  Ambiant, diffus, et spéculaire
I = Iaka+ Ipkd cos(q)Ip ks cos(a)n
avec un coefficient n représentant les propriétés spéculaires de la
surface au point P
• Si plusieurs sources lumineuses :
=> somme des intensités
26
1. Algorithmes de base
1.5 Shadings (1/5)
• Un Shading ? "ombrage" /!\ à cette traduction
 comment considérer les normales pour faire
un dégradé de couleur?
• En effet :
q q a
• Deux modèles : Gouraud et Phong
• Ne pas confondre modèle d'illumination de Phong
et modèle de Shading (i.e. normale) de Phong
27
1. Algorithmes de base
1.5 Shadings (1/5) suite
Exercice et discussion
• Réfléchir sur le rapport entre vecteurs normaux et
couleurs pour réaliser le dégradé de couleur
28
1. Algorithmes de base
1.5 Shading (2/5)
Pb Gouraud
… de Gouraud
• Gouraud (« Ombrage de… »)
– Calcul des normales en chaque sommet
– Calcul de la couleur en ces sommets
– Interpole linéaires des couleurs
n1
n2
n3
29
dégradé de couleur
1. Algorithmes de base
1.5 Shading (3/5)
…de Phong
• Phong
– Quelque soit le pixel, calcul de la normale interpolée – ou par
facette ou par sommet– en ce point
– Calculs des couleurs correspondants
n2
n1
n3
C1 C2
C3
…
Ci
• Plus lent que Gouraud, mais spéculaire plus net
30
1. Algorithmes de base
1.5 Shading (4/5)
…de Phong
Résultat
(ks)
31
(n)
1. Algorithmes de base
1.5 Shading (5/5)
Phong vs. Gouraud
• Un exemple de chez Pixar
• Phong / Gouraud
32
Plan
Introduction
1. Algorithmes de base
2. Diverses techniques locales
2.1 Backface
culling
Référence / conclusion
/ discussion
2.2 Bump mapping et normal map
2.3 Textures
2.4 Ombrages
33
2. Diverses techniques locales
2.1 Backface culling
• Éliminer tous les polygones qui ne sont pas tournés
vers la caméra
Caméra
34
2. Diverses techniques locales
2.1 Backface culling
Principe
• Si le point de vue n’est pas devant le polygone, on
n’affiche pas le polygone
• Utilisation du produit scalaire (vectCam . VectFacet)
Caméra
+
35
2. Diverses techniques locales
2.1 Backface culling
Résultat
• Comparaison avec / sans
• Résultat identique sauf…
2 x plus rapide !
36
2. Diverses techniques locales
2.2 Bump mapping et normal map
Principe
• Les deux : illusion de profondeur sur une surface plate
Direction
de la
lumière
Calcul de la
géométrie
réelle
Illusion
de géométrie
normal map
normal map
37
2. Diverses techniques locales
2.2 Bump mapping et normal map
Application
Bump mapping
• Grey image
• Léger
• mais un peu plus de calculs
Normal map
Bump map
• RGB image
• 3x plus lourd
• mais moins de calculs
Le cumul des deux techniques apporte
élévations et normales et donner lieu à moins
de calcul pour plus d’effets
Normal map
38
2. Diverses techniques locales
2.2 Bump mapping et normal map
Application
• Exemple classique : les planètes
39
2. Diverses techniques locales
2.3 Textures (1/7)
• Pourquoi texturer ?
– Ajout d'information visuelle à petit prix
– Support hardware
+
=
40
2. Diverses techniques locales
2.3 Textures (1/7) suite
Exercice et discussion
• Où se trouve la difficulté?
41
2. Diverses techniques locales
2.3 Textures (2/7)
Continuité
• Continuité dans la texture et la géométrie
42
2. Diverses techniques locales
2.3 Textures (3/7)
Réalisation 2D ou 3D
• 2D => projection directe
• 3D => construction d’une texture en volume
(e.g. « bruit de Perlin »)
43
2. Diverses techniques locales
2.3 Textures (4/7)
Billboards (1/3)
• Utilisation de transparence dans les textures
• (a) Utilisation classique
=> 1 texture avec projection relative à la caméra
•
Idée générale
exemple – Doom1TM
44
2. Diverses techniques locales
2.3 Textures (4/7)
Billboards cloud (2/3)
• (b) Pour simuler un objet en 3D
• Multi textures pour la géométrie & texture d’un objet
=> Il n’y a pas de projection relative à la camera
• Idée générale
exemples
45
2. Diverses techniques locales
2.3 Textures (5/7)
Billboards cloud (3/3)
• (c) Simplification maximum du modèle => relatif au LoD
Deux films exemples
/!\ Modification géométrique impossible
/!\ L’objet est dénaturé –géométrie et texture!
46
2. Diverses techniques locales
2.3 Textures (6/7)
Texture 3D avancée (1/2)
• Calcul de la continuité dans la texture sur un
nombre restreint d’échantillons
47
2. Diverses techniques locales
2.3 Textures (8/8)
Texture 3D avancée (2/2)
• Automates cellulaires réguliers sur
surface 3D (3DSCA)
– Auto-génération de texture 3D
– Association de comportement
entre cellules voisines
• Voir chapitre 6 « animation » et
simulation de phénomènes naturels
48
2. Diverses techniques locales
2.4 Ombrages
Ombres dures et douces
• Ombres dures (Hard shadows)
– Source ponctuelle
– Détermination binaire
– Renseignent sur la position
des obstacles par rapport à l'oeil
• Ombres douces (Soft shadows)
– Source étendue
– Variation continue
– Renseignent sur la position
relative source/obstacle/récepteur
49
2. Diverses techniques locales
2.4 Ombrages
Nature des ombres douces
50
2. Diverses techniques locales
2.4 Ombrages
Diverses techniques (1/2)
• Lancer de rayons
– Facile mais très lent
• Accélération
51
2. Diverses techniques locales
2.4 Ombrages
Diverses techniques (2/3)
• BSP
• /!\ La position des obstacles est fausse
52
2. Diverses techniques locales
2.4 Ombrages
Scène découpée
Image
Diverses techniques (3/3)
1 source
3 sources
53
Questions / discussion
54