Rendu pour la Synthèse d`Images Jean

Transcription

Rendu pour la Synthèse d`Images Jean
Rendu pour la Synthèse d'Images
Sources
• Frédo Durand, Jovan Popović, Computer
Graphics: Introduction, MIT 2007
Techniques de Rendu pour la
Synthèse d'Images
• Joëlle Thollot, Marie-Paule Cani,
ARTIS/EVASION
Master 2
• SIGGRAPH,
Simulation des mondes virtuels
• Etc.
http://www.OpenGL.org
2
Computer Graphics is Fun
Computer Graphics is Big Business
3
Computer Graphics Help Make Things
4
And houses, too
[Jovan Popović, Computer Graphics: Introduction, MIT 2007]
5
[email protected]
6
Rendu pour la Synthèse d'Images
CG saves lives
CG lead to new discoveries
7
Historiquement: Lignes 2D
8
Image 2D
L'ombre, une image naturelle, Wikipedia
9
Image ~ lignes 3D
Image ~ lignes cachées
11
[email protected]
10
backface culling
12
Rendu pour la Synthèse d'Images
Image 3D
+ Ombres
13
Photo-réalisme
Illumination
15
Illumination
+ ombres douces
[email protected]
14
2/4
17
Ray tracing
Illumination
+ caustiques
1/4
16
3/4
18
Rendu pour la Synthèse d'Images
Illumination
4/4
NPR ~ Rendu expressif
© 1998 Jörg Hamel
+ globale
19
© 1998 Cassidy Curtis
20
Production d’un film de synthése
Synthèse d’Images
1. Modélisation
des objets, d’une scène
Modélisation
2. Rendu d’une image
à partir des objets,
matières, éclairages,
caméras…
3. Animation
Visualisation
spécifier ou calculer
mouvements et
déformations
21
22
Ce que vous apprendrez
Ce que vous n’apprendrez pas
• Fondements du rendu
• Présentation rapide des méthodes
récentes
• Vocabulaire complet
• Pratique d’OpenGL
• Programmation C++
• Études de cas
• La modélisation et l’animation
• Les détails
• L’utilisation de logiciel de synthèse
d’images (Blender, 3DS, Maya, XSI)
• La conception artistique
– Connaissance globale de ce qui existe
– Capacité à faire des choix de méthode
23
[email protected]
24
Rendu pour la Synthèse d'Images
Fonctionnement du cours
Programme
http://artis.inrialpes.fr/Enseignement/
• Bases: OpenGL, pipeline, vertex shader
• Illumination locale, Fragment shader
• Textures
• Ombres
• Lancé de rayon
• Représentations alternatives
• Rendu expressif
• Illumination globale
• GPGPU
• 10 cours , ~25 papiers, 1 mini débat
• 4 TPs OpenGL, 1 TP CUDA
• 1 TP ray tracing + 1 mini projet
Binômes. Soutenance le vendredi 11 janvier
• examen écrit : cours + papiers
vendredi 25 janvier
25
26
Cours 1 et 2 : Les bases
Techniques de Rendu pour la
Synthèse d'Images
Cours 1 : Introduction, pipeline graphique
• Historique
• Pipeline graphique
• Transformations
• Image, couleur
• Rasterisation
• Visibilité
• Illumination
28
Plan
Historique
• Historique
• Pipeline graphique
• Transformations
• Image, couleur
• Rasterisation
• Visibilité
• Illumination
• 1950 : MIT, premier écran (vectoriel) contrôlé par ordinateur.
• 1950-60 : SAGE, contrôle d’un écran par un crayon lumineux,
premier système graphique interactif.
• 1963 : Sketchpad (thèse de Ivan Sutherland), propose un premier
modèle complet de système graphique interactif (sélectionner,
pointer, dessiner, éditer); identifie les structures de données et
algorithmes nécessaires. Avancée majeure dans le domaine du
graphisme.
• 1960-70 : premiers systèmes de DAO (General Motors, Bell,
NASA). Algorithmes de base du graphisme.
• 1969 : premiers capteurs CCD (cameras numériques), Bell.
29
[email protected]
1/2
30
Rendu pour la Synthèse d'Images
Historique
2/2
• 1970 : premier terminal graphique (Tektronix).
ADIS graphics package : possibilité de lire/écrire un pixel,
dessiner une ligne, déplacer des portions de l’image, la sortie
étant dirigée sur des zones rectangulaires appelées fenêtres.
• 1970-80 : barrière économique dépassée, mémoires et écrans peu
chers sont disponibles, écrans matriciels, apparition de la couleur,
cartes d’extensions graphiques (Apple II). Algorithmes de
traitements d’images, premiers algorithmes de vision artificielle.
• 1980-90 : premières interfaces graphiques (xerox).
Photo-réalisme (lancer de rayons, radiosité). Animations.
• 1984 : Le langage PostScript. Le macintosh.
• 1990-… : systèmes 3D interactifs, algorithmes câblés, librairie
graphique OpenGL, cameras CCD peu chères, développement de
la vision artificielle. Réalité virtuelle.
Plan
• Historique
• Pipeline graphique
• Transformations
• Image, couleur
• Rasterisation
• Visibilité
• Illumination
31
Le pipeline graphique
Modeling
Transformations
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
Projection
(to Screen Space)
Culling / Clipping
Scan Conversion
Per Fragment Texturing
and Lighting
Visibility / Display
1/6
Le pipeline graphique
Illumination
(Shading)
Modèle d’illumination : calcul
des interactions lumineuses
Viewing Transformation
(Perspective / Orthographic)
Projection
(to Screen Space)
Caméra : point de vue et
ouverture (frustum)
Culling / Clipping
Fenêtre (viewport) : grille de
pixel sur laquelle on plaque
l’image
Visibility / Display
33
3/6
34
Le pipeline graphique
Modeling
Transformations
Illumination
(Shading)
Illumination
(Shading)
Projection
(to Screen Space)
Culling / Clipping
Sans carte graphique 3D
Per Fragment Texturing
and Lighting
Couleurs, intensités convenant à
l’afficheur (ex : 24 bits, RVB)
Software
configurable
Software
configurable
Scan Conversion
Modeling
Transformations
Viewing Transformation
(Perspective / Orthographic)
2/6
Modeling
Transformations
Modèle géométrique : objets,
surfaces, sources de lumière…
Le pipeline graphique
32
Viewing Transformation
(Perspective / Orthographic)
Projection
(to Screen Space)
Cartes graphiques
génération zéro
Software
configurable
Culling / Clipping
Scan Conversion
4/6
Cartes graphiques
première génération
Scan Conversion
Per Fragment Texturing
and Lighting
Hardware
Visibility / Display
Visibility / Display
35
[email protected]
Hardware
36
Rendu pour la Synthèse d'Images
Le pipeline graphique
5/6
Modeling
Transformations
Le pipeline graphique
Modeling
Transformations
Illumination
(Shading)
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
Viewing Transformation
(Perspective / Orthographic)
Projection
(to Screen Space)
Culling / Clipping
6/6
Hardware
configurable
Cartes graphiques
deuxième génération
Projection
(to Screen Space)
Culling / Clipping
Scan Conversion
Scan Conversion
Per Fragment Texturing
and Lighting
Per Fragment Texturing
and Lighting
Visibility / Display
Hardware
programmable
Cartes graphiques
troisième génération
Visibility / Display
37
38
Modeling transformations
Reperes…
Modeling
Transformations
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
Passage du système de
coordonnées local de chaque objet
3D (object space) vers un repère
global (world space)
Projection
(to Screen Space)
Culling / Clipping
Scan Conversion
Per Fragment Texturing
and Lighting
Object space
World space
Visibility / Display
39
Illumination
Modeling
Transformations
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
Projection
(to Screen Space)
40
Transformation caméra
Les primitives sont éclairées selon
leur matériau, le type de surface
et les sources de lumière.
Modeling
Transformations
Illumination
(Shading)
Les modèles d’illumination sont
locaux (pas d’ombres) car le calcul
est effectué par primitive.
Viewing Transformation
(Perspective / Orthographic)
Projection
(to Screen Space)
Culling / Clipping
Culling / Clipping
Scan Conversion
Scan Conversion
Per Fragment Texturing
and Lighting
Per Fragment Texturing
and Lighting
Visibility / Display
Visibility / Display
41
[email protected]
Passe des coordonnées du monde à
celles du point de vue (repère
caméra ou eye space).
En général le repère est aligné selon
z.
Eye space
World space
42
Rendu pour la Synthèse d'Images
Projection
Modeling
Transformations
Illumination
(Shading)
Clipping
Les primitives 3D sont projetées sur
l’image 2D (screen space)
Modeling
Transformations
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
Projection
(to Screen Space)
Coordonnées normalisées (NDC :
normalized device coordinates)
Viewing Transformation
(Perspective / Orthographic)
NDC
Culling / Clipping
Projection
(to Screen Space)
Screen
Space
Culling / Clipping
Scan Conversion
Scan Conversion
Per Fragment Texturing
and Lighting
Per Fragment Texturing
and Lighting
Visibility / Display
Visibility / Display
Eye space
NDC
Les portions en
dehors du
volume de vue
(frustum) sont
coupées.
Backface culling
43
Rasterisation
Modeling
Transformations
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
44
Visibilité, affichage
Découpe la primitive 2D en pixels
Modeling
Transformations
Interpole les valeurs connues aux
sommets : couleur, profondeur,…
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
Projection
(to Screen Space)
Projection
(to Screen Space)
Culling / Clipping
Culling / Clipping
Scan Conversion
Scan Conversion
Per Fragment Texturing
and Lighting
Per Fragment Texturing
and Lighting
Visibility / Display
Calcul des primitives visibles :
z-buffer
Remplissage du frame buffer
avec le bon format de couleur
Visibility / Display
45
Système de coordonnées
Modeling
Transformations
Plan
Object space
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
Projection
(to Screen Space)
Culling / Clipping
Scan Conversion
World space
Eye Space /
Camera
Space
Clip Space (NDC)
Per Fragment Texturing
and Lighting
Visibility / Display
46
Screen
Space
[email protected]
47
• Historique
• Pipeline graphique
• Transformations
• Image, couleur
• Rasterisation
• Visibilité
• Illumination
48
Rendu pour la Synthèse d'Images
Transformations
Transformations
Modeling
Transformations
Projective
Affine
Illumination
(Shading)
Similitude
Linéaire
Rigide / Euclidienne
Identité
Rotation
Translation
Homothétie
isotrope
Passage du système de
coordonnées local de chaque
objet 3D (object space) vers un
repère global (world space)
Viewing Transformation
(Perspective / Orthographic)
Projection
(to Screen Space)
Positionnement des objets dans
la scène 3D
Culling / Clipping
Homothétie
Reflection
Scan Conversion
Per Fragment Texturing
and Lighting
Perspective
Visibility / Display
49
50
Coordonnées homogènes
Coordonnées homogènes
• Représentation matricielle uniforme de
tous les types de transformations
• La plupart du temps w = 1
• Si on multiplie un vecteur par une
transformation affine w n’est pas modifié
• On divise par w pour revenir en cartésien
x'
y'
=
z'
w'
a
e
i
m
p' =
b
f
j
n
c d
g h
k l
o p
x
y
z
w
x'
y'
z'
1
Mp
=
a b c d
e f g h
i j k l
0 0 0 1
x
y
z
1
51
Transformations affines
Translations :
52
Associatif ~ compositions
Rotations :
Représentation par les
angles d'Euler :
(0,0
)
(1,1
)
(2,2
)
Scale(2,2)
(0,0
)
Translate(3,1
)
(3,1
)
(5,3
)
Multiplication de matrices : p' = T ( S p ) = TS p
Changements d'échelles :
TS =
53
[email protected]
1 0 3
0 1 1
0 0 1
2 0 0
0 2 0
0 0 1
=
2 0 3
0 2 1
0 0 1
54
Rendu pour la Synthèse d'Images
Hiérarchie de transformations
Non-commutatif !!!
homothétie puis translation : p' = T ( S p ) = TS p
(2,2)
Scale(2,2)
(1,1)
(0,0)
(0,0)
Translate(3,1
)
Objet complexe
Coordonnées relatives (ex : la
roue par rapport au socle)
(5,3)
(3,1)
Concaténation de
transformations
translation puis homothétie : p' = S ( T p ) = ST p
Hiérarchie
(8,4)
(1,1)
(0,0)
Translate(3,1
)
(3,1)
(4,2)
Scale(2,2)
(6,2)
⇒ dessiner = parcourir un
arbre
⇒ conserve la cohérence
55
Projections
Projections
• Utilisées en synthèse et en vision
(modèles de caméras)
• Deux grandes familles :
Modeling
Transformations
Illumination
(Shading)
Viewing Transformation
(Perspective / Orthographic)
56
Passe des coordonnées du monde
3D aux coordonnées écran 2D.
Projection
(to Screen Space)
Culling / Clipping
Scan Conversion
Per Fragment Texturing
and Lighting
Visibility / Display
57
Matrice en coordonnées homogènes de la
projection orthographique canonique :
Les projections parallèles :
projection orthographique lorsque la direction de projection
est perpendiculaire au plan de projection,
• projection oblique sinon.
Propriétés géométriques des projections parallèles :
•conservent le parallélisme des droites.
•conservent les rapports des distances parallèles.
P(xM, yM, zM, wM) = (xM, yM, 0, 1)
59
[email protected]
58
60
Rendu pour la Synthèse d'Images
Les projections perspectives :
Point de fuite :
Si une droite D coupe le plan de projection, il existe un point F, appelé
point de fuite appartenant à la projection de toute droite parallèle à D.
L'image d'un point M par une projection en perspective sur le plan P de
centre O est l'intersection de la droite OM avec le plan P.
Une projection en perspective dont le centre de projection est à l'infini
est une projection parallèle.
On différencie les projections en perspective par le nombre de points de
fuite pour les directions des axes du repère.
61
Propriétés géométriques des projections
en perspective
• Les projections perspectives ne conservent pas le parallélisme des droites
non parallèles au plan de projection.
• La taille d'un objet est inversement proportionnelle à sa distance au point
de projection :
|p(M) p(M')| = d0 . 1/d . |MM'|
63
Plan
• Historique
• Pipeline graphique
• Transformations
• Image, couleur
• Rasterisation
• Visibilité
• Illumination
65
[email protected]
62
Calcul des coordonnées projetées en perspective
On se place dans le cas d'une projection canonique :
Centre de projection à l'origine et plan de projection parallèle à
xOy.
Coordonnées dans le plan de projection
P(xM, yM) = ((near . xM) / (-zM), (near . yM) / (-zM))
64

Documents pareils