Rendu réaliste en synthèse
d’images.
Le lancer de rayons
Organisation
Introduction au lancer de rayons
– Principe
– Modèle d’illumination associé
– Algorithme récursif
– Limitations
Le lancer de faisceaux
– Principe
– Algorithme
– Résultats et limitations
2 N. DJEDI (2015)
Organisation
Accélération du lancer de rayons
– Objectifs
– Hiérarchie de volumes englobants
– Subdivision spatiale régulière et irrégulière
– Accélération matérielle
Lancer de rayons distribués
– Modèle d’illumination
– Intégration de Monte Carlo
– Résultats et limitations
3 N. DJEDI (2015)
Introduction au lancer de rayons
Objectif
Principe
Algorithme
Objectifs
Elimination des parties cachées [Appel 68]
– Travail dans l’espace objet.
– Indépendant de la géométrie.
Détermination de l’éclairage [Witted 80]
– Fondé sur les lois de l’optique géométrique.
– Ombres propres et ombres portées.
– Inter-réflexions lumineuses.
5 N. DJEDI (2015)
Principe géométrique
Ligne œil-pixel
– Objet visible
Rayons lumineux
– Couleur du pixel
Impossible de suivre
tous les rayons lumineux
Pixel Plan image
Trajet inverse des
rayons lumineux
6 N. DJEDI (2015)
Modèle d’éclairage
Equation du rendu
L( x, x) g( x, x) ( x, x) ( x, x, x)L( x, x)dx
X"
X
Permet de déterminer X"
la luminance incidente
en X
X'
7 N. DJEDI (2015)
Pixel Plan image
8 N. DJEDI (2015)
Modèle d’éclairage
Simplification directionnelle
I(x) (x) (x, x, x)g( x, x)I( x)dx
Pour simuler l’ombrage sur les objets
Prise en compte des sources lumineuses
S di / L(di ) 0
Prise en compte des réflexions et transmissions
S S d i / d i R d i T
9 N. DJEDI (2015)
Modèle d’éclairage
– Prise en compte des autres direction
Nouveau terme ambiant : A( x) ( x, x, x)g( x, x)I( x)dx
Par définition de ’ : A( x) 0
On pose alors : A( x) ( x)I a
10 N. DJEDI (2015)
Modèle d’éclairage
Expression du modèle :
Ix x x, x, d i gx, p i Ip i Ax
S
p i x ' td i
x, p i
gx ' , p i
dx, p i
2
11 N. DJEDI (2015)
Modèle d’éclairage
Intensité lumineuse sur un rayon
– Modèle local
– Reflets spéculaires
IR= ILocal+ ksIRefl+ ktITrans
12 N. DJEDI (2015)
Modèle d’éclairage
Modèle Local :
Calcul des ombres portées
Point éclairé Point dans l'ombre
13 N. DJEDI (2015)
Modèle d’éclairage
Modèle Local :
vis (i)
Ii 2 d N L s R V
nbLum
n
I local
i 0 di
N
L
R
V
14 N. DJEDI (2015)
Modèle d’éclairage
Reflets spéculaires :
Calcul du rayon réfléchi
2 NV .N V
V N
R 2 N V . N V
R
15 N. DJEDI (2015)
Modèle d’éclairage
Reflets spéculaires :
Calcul du rayon réfracté
n2
N Indice de réfraction relatif : nr
V n1
1
Vérification angle limite : c1nrsin
2
n1
n2 T
N 2
16 N. DJEDI (2015)
Modèle d’éclairage
Arbre de rayons
Pixel
Rose
Lumière Vert Rose
Pixel Plan image
Lumière Lumière Bleu
Lumière
17 N. DJEDI (2015)
Algorithme
Couleur LR(origine,direction,profondeur)
// origine et direction sont des vecteurs de R3
Si profondeur>Max_Prof Alors
couleur=Noir; // choix discutable mais que mettre ?
Sinon
--Calcul et tri des intersections
Si intersection Alors
Calcul du Ilocal (C_locale);
Calcul du rayon réfléchi (D_réfléchi);
Calcul du rayon réfracté (D_réfracté);
C_réfléchi = LR(Pt-inter, D-réfléchi,profondeur+1);
C_ réfracté = LR(Pt-inter, D-réfracté,profondeur+1);
couleur = Somme des 3 composantes couleurs;
Sinon
couleur = couleur de fond;
18 N. DJEDI (2015)
Résultat
19 N. DJEDI (2015)
Critiques du Lancer de Rayons
Pas d’éclairage indirect
– Les sources sont visées explicitement
Miroir
20 N. DJEDI (2015)
Critiques du Lancer de Rayons
Eclairage diffus mal représenté
– Seules deux directions sont prises en compte
Plâtre
21 N. DJEDI (2015)
Critiques du Lancer de Rayons
Aliassage et disparition de petits objets
22 N. DJEDI (2015)
Critiques du Lancer de Rayons
Temps de calcul important
– Intersections
– Nombre de rayons
Illumination calculée dans l’espace image
– Stockage au niveau du pixel
– Recalculée pour chaque image
23 N. DJEDI (2015)
Lancer de Faisceaux
Réduction des
problèmes
d’aliassage pour le
lancer de rayons
Le lancer de faisceau
Objectifs :
– réduire l’aliassage de l’image
Echantillonner correctement l’écran
Peu de rayons dans le vide
De nombreux rayons dans les régions image complexes
– Utiliser la cohérence de la scène et des rayons
De nombreux rayons suivent des chemins voisins
Un objet recouvrant un pixel peut recouvrir les voisins
25 N. DJEDI (2015)
Le lancer de faisceau
Familles de solutions :
– Ensemble de rayons d’épaisseur infinitésimale
[Sinya 87]
– Algorithmes fondés sur des rayons volumiques
Cônes [Amanatides 84]
Pyramides [Heckbert 84]
– Algorithmes hybrides (1) + (2)
[Marks 88], [Ghanzanfarpour 92]
26 N. DJEDI (2015)
Le lancer de faisceau
Objet intersecté
Le faisceau primaire
rencontre un seul polygone
Faisceau
La couleur des pixels est
celle de l ’objet
27 N. DJEDI (2015)
Le lancer de faisceau
Le faisceau primaire
rencontre un ou plusieurs
polygones partiellement Couleur des pixels de l'écran ?
28 N. DJEDI (2015)
Le lancer de faisceau
Quatre sous faisceaux
Deux solutions : - Subdivision de l'écran
- Utilisation d'un L.R
29 N. DJEDI (2015)
Intersection scène-faisceau
Positionnement d'un objet par rapport au faisceau
Fenêtrage par la pyramide
Intersection arêtes faisceau-plan polygones
+
intersections 2D entre polygones
30 N. DJEDI (2015)
Traitement de la réflexion
La réflexion est une transformation linéaire
Objet
réfléchissant
Faisceau
Calcul et traitement du réfléchi
faisceau réfléchi
Faisceau
primaire
31 N. DJEDI (2015)
Traitement de la réfraction
La réfraction n’est pas une transformation linéaire
Calcul du faisceau réfracté Rayons réfractés
et de sa courbure
Ecran
Polygone
réfractant
32 P
N. DJEDI (2015)
Traitement des ombres portées
Traitées par un LR conventionnel ou par LF
Faisceau d’ombre Faisceau d’ombre Faisceau d’ombre
vide totalement bloqué partiellement bloqué
33 N. DJEDI (2015)
Résultats
Image calculée par
lancer de faisceau
34 N. DJEDI (2015)
Résultats
Subdivisions des
faisceaux primaires
35 N. DJEDI (2015)
Résultat
Subdivisions des
faisceaux d’ombre
36 N. DJEDI (2015)
Résultat
Subdivisions des
faisceaux réfléchis
37 N. DJEDI (2015)
Analyse
Lancer de rayons
distribués :
pénombre bruitée.
Lancer de faisceaux :
pénombre correcte.
38 N. DJEDI (2015)
Analyse
39 N. DJEDI (2015)
Analyse
Lancer de rayons :
Disparition de petits objets.
Lancer de faisceaux :
pas de perte de précision.
40 N. DJEDI (2015)
Bilan
41 N. DJEDI (2015)
Accélération du Lancer de Rayons
Structures de
données, algorithmes
et matériels
spécifiques.
Organisation
Accélération du lancer de rayons
– Objectifs
– Hiérarchie de volumes englobants
– Subdivision spatiale régulière et irrégulière
– Accélération matérielle
43 N. DJEDI (2015)
Techniques d’accélération
Réduction du nombre de rayons lancés
– Utilisation de la cohérence spatiale
– Entités plus générales que le rayon
Réduction du coût des intersections
– Primitives plus simple et arbre CSG
– Réduction du nombre d’intersections calculées
– Traitement matériel des intersections
44 N. DJEDI (2015)
Techniques d’accélération
Moins de rayons Généralisation de
Intersections plus rapides
la notion de rayons
Intersections Intersections
Objet/rayon Objet/rayon
plus rapides moins nombreux
Volumes englobants Profondeur de Beam tracing
Scène structurée
l’arbre adaptatif
(CSG)
Division spatiale Méthodes stat. Pencil tracing
Cohérence
Codage des objets
Techniques Cônes d’ombre LR discret
Architecture dédiée directionnelles
45 N. DJEDI (2015)
Volumes englobant
Objectif :
– Diminuer le nombre d’intersections rayon-objet
– Accélérer la détection de non-intersection
Principe :
– Construction d’une hiérarchie de boites englobantes
– Parcours de l’arbre pour le calcul d’intersection
46 N. DJEDI (2015)
Volumes englobant
Construction de la hiérarchie :
– En général, construction montante
96 Scène
12
BoiteCyl Lumière
24
28
RobotG RobotD
12
Cylindres D2R2
47 N. DJEDI (2015)
Volumes englobant
Utilisation de la hiérarchie :
– En général, en profondeur d’abord
96
96
Scène
12
12 12
BoiteCyl Lumière
28 24 28
24 RobotG RobotD
12
Cylindres D2R2
48 N. DJEDI (2015)
Volumes englobant
Avantages :
– Simplicité de mise en œuvre
– Bonne efficacité
Inconvénients :
– Précision des volumes englobants
Slabs, boite min-max, sphère
– Difficulté de construction (surtout si scène fermée)
49 N. DJEDI (2015)
Volumes englobant
– Précision des volumes englobants
Slabs, boite min-max, sphère
Vc = a3
Vs = p a3
6
(Vc- Vs) (1 - p )
Rapport = = = 0.477
Vc 6
50 N. DJEDI (2015)
Subdivision spatiale
Objectif :
– Diminuer le nombre d’intersections rayon-objet
– Accélérer la détection de non-intersection
– Accélérer la détection d’une intersection
Principe :
– Construction d’une grille fixe ou adaptative
– Parcours incrémental de la grille
51 N. DJEDI (2015)
Subdivision régulière
Principe :
– L’espace est subdivisé en une grille de N3
– Les rayons sont considérés comme des droites
discrètes de N3
– Utilisation d’algorithmes de tracé de droites
discrètes pour le suivi du rayon
52 N. DJEDI (2015)
Subdivision régulière
Découpage de la scène en voxels
Liste d’objets contenus associée à
chaque voxel
53 N. DJEDI (2015)
Subdivision régulière
Propagation du rayon
Passage au voxel suivant
54 N. DJEDI (2015)
Subdivision régulière
Propagation du rayon
Dès qu’une intersection est
trouvée, arrêt de la propagation
55 N. DJEDI (2015)
Subdivision régulière
Algorithme et structure de donnée
– Grille :
Régulière de NxxNyxNz voxels
Dimension des voxels stockée dans tableau size[3]
Position de la grille stockée dans tableau pos[3]
Voxel courant mémorisé dans tableau voxel[3]
– Coordonnées i,j,k du voxel dans la grille
Incréments voxels (dt) et distance parcourue par le rayon (t)
Méthode intersection
– En entrée, un rayon
– En sortie une éventuelle intersection
56 N. DJEDI (2015)
Subdivision régulière
Algorithme et structure de donnée
– Rayon :
origineR et directionR (normée)
Algorithme général :
– IntersectionGrille(rayon)
si premierVoxel(rayon) alors
– initialiserIncréments(rayon)
– retourne propager(rayon)
sinon
– Retourne pas d’intersection
finsi
57 N. DJEDI (2015)
Subdivision régulière
premierVoxel(rayon)
– Si origineR est dans la grille Alors
Pour chaque axe (X,Y,Z)
– voxel[axe]=E((origineR[axe]-pos[axe])/size[axe])
FinPour
– Sinon
soit ptI le point d'intersection entre le rayon et la boite englobante de
la scène.
si ptI existe alors
– pour chaque axe (X,Y,Z)
voxel[axe]=E((ptI [axe]-pos[axe])/size[axe] )
– Finpour
Sinon
– Pas d'intersection entre le rayon et la scène
finsi
58 – finsi N. DJEDI (2015)
Subdivision régulière
initialiserIncréments(rayon)
– Pour chaque axe (X,Y, Z) faire
step[axe]=signe(directionR[axe])
Si directionR[axe]==0 Alors
– dt[axe]=infini;
– t[axe]=0;
Sinon
– Si step[axe]>0 Alors
t[axe]=(voxel[axe]+1)*size[axe]+pos[axe]-
origineR [axe];
– Sinon
t[axe]=origineRayon[axe]-voxel[axe]*size[axe]+pos[axe]
– Finsi
– dt[axe]=t[axe]/ abs(directionRayon[axe])
Finsi
– FinPour
59 N. DJEDI (2015)
Subdivision régulière
propager(rayon)
– Tant que non fini Faire
calculer intersection avec les objets du voxel courant et
conserver la plus proche de l'origine du rayon
si l'intersection est dans le voxel alors
– INTERSECTION TROUVEE, fini = vrai
sinon
– fini = avancerRayon()
finsi
– fin tant que
60 N. DJEDI (2015)
Subdivision régulière
avancer(rayon)
– soit coord la coordonnée telle que
dt[coord]=min(dt[X],dt[Y],dt[Z])
– voxel[coord] += step[coord];
– Si voxel[coord]<0 ou voxel[coord]>= N[coord] Alors
Retourne faux
– Sinon
t[coord] += size[coord]
dt[coord] = t[coord]/fabs(directionR [coord])
Retourne vrai
– FinSi
61 N. DJEDI (2015)
Subdivision régulière
62 N. DJEDI (2015)
Subdivision régulière
Avantages :
– Construction facile de la grille
– Utilisation de calculs entiers pour la propagation des
rayons => ASIC? (Application-specific integrated circuit )
Inconvénients :
– Répartition hétérogène des objets dans les voxels
– Coût de stockage important
63 N. DJEDI (2015)
Octree
Objectif :
– Diminuer le coût de propagation d ’un rayon dans
un espace discret.
Principe :
– Subdivision irrégulière de la scène.
– Construction descendante des voxels.
– Organisation en arbre octal indexé
64 N. DJEDI (2015)
Octree
Construction descendante
Initialisation : Boite englobante
65 N. DJEDI (2015)
Octree
Construction descendante
Estimation du contenu du voxel
66 N. DJEDI (2015)
Octree
Construction descendante
Subdivision
Liste d’objets contenus associée à
chaque voxel
67 N. DJEDI (2015)
Octree
Représentation du rayon
– Demi-droite paramétrique orientée
x(t)=rox + t*rdx
y(t)=roy + t*rdy
z(t)=roz + t*rdz (rdx, rdy, rdz)
(rox, roy, roz)
68 N. DJEDI (2015)
Octree
Représentation et stockage de l’arbre
69 N. DJEDI (2015)
Traversée de l’octree
Hypothèse simplificatrice
– La direction du rayon est positive
Z x(t)=rox + t*rdx
Y y(t)=roy + t*rdy
z(t)=roz + t*rdz
y=y1
On calcule 6 paramètres pour le nœud q
tx (q) = (x (q) - rox)/rdx
i i
ty (q) = (y (q) - roy)/rdy
i i
y=y0
x=x0 x=x1
X tz (q) = (z (q) - roz)/rdz
i i
i={0,1}
70 N. DJEDI (2015)
Traversée de l’octree
Déterminer le premier nœud : Z
Y
Détermination du plan d’entrée
Maximum Plan
d’entrée
Txo YZ Tzo
Tyo XZ
X
Tzo XY
Tyo
71 N. DJEDI (2015)
Traversée de l’octree
2 6
Plan d’entrée XY:
0 4
0 4
Plan d’entrée XZ:
1 5
3 2
Plan d’entrée YZ:
1 0
72 N. DJEDI (2015)
Octree
Avantages :
– Meilleure adaptation de la subdivision à la scène.
– Détermination efficace de la suite de voxels.
Inconvénient :
– Efficacité inversement proportionnelle à la
profondeur.
– Temps d’initialisation.
73 N. DJEDI (2015)
Matériel spécialisé
De nombreuses machines parallèles
– Pixel Plane
– Clusters
– Paragon
– Hyper-cube et Hyper-tore
Très peu de circuits spécifiques (1?)
– Circuit AR350 de Art Technologies
74 N. DJEDI (2015)
Circuits spécifiques
AR350 Ray Tracing Chip
– Développé à partir de 1997
– Spécifications obscures (et inaccessibles)
– Utilise l’API RenderMan de Pixar (Application
programming interface)
RenderDrive
– Machine dédiée au lancé de rayons
– de 4 à 2048 AR350
– Pouvant être pilotée à partir de 3DSMax R2
75 N. DJEDI (2015)
Processeur spécifique
AR350
– Processeur superscalaire dédié au lancer de rayons
– 109 intersections par secondes
– Gestion matérielle des intersections et de l’ombrage
– A suivre …
76 N. DJEDI (2015)
La machine RenderDrive
Possibilités
– Programmable par RenderMan
– Gestion automatiques des ombres portées, des
réflexions et réfractions
– Sources de lumière : ponctuelles, directionnelles,
spots, surfaciques.
– Mapping : texture, bump, environnement
– Géométrie : polygones, quadriques, NURBS
77 N. DJEDI (2015)
Parallélisation
Espace écran:
Parallélisme écran
– Subdivision régulière:
Architecture parallèle composée de N processeurs;
Subdivision régulière de l’écran et affectation de chaque
partie à un processeur;
Gain théorique: facteur N: Temps parallèle= temps
séquentiel/N;
Inconvénients: Problème de répartition de charge.
Solution: Affectation Processeur/Régions Modulo N.
78 N. DJEDI (2015)
Parallélisation
Espace écran:
–Parallélisme écran
Subdivision par lignes de balayage:
Architecture parallèle composée de N processeurs;
Affectation des Processeurs / lignes de balayage modulo N;
Gain théorique: facteur N: Temps parallèle= temps
séquentiel/N;
Avantages: Très bonne répartition de charge.
79 N. DJEDI (2015)
Parallélisation
Espace scène:
–Parallélisme scène
Subdivision de la scène en plusieurs parties (Cube):
Architecture parallèle composée de N
processeurs(puissance de 3, [8, 64, 512, 4096, …);
Affectation des Processeurs / Parties(cubes);
Chaque processeur prend en charge le suivi des rayons
entrant dans son volume ainsi que les calcul d‘intersection
dans son volume;
Gain théorique: facteur N: Temps parallèle= temps
séquentiel/N;
Avantages: Très bonne répartition de charge.
80 N. DJEDI (2015)
Récapitulatif
Lancer de Rayons
– Synthèse d’images réalistes
Méthode de simulation des interactions lumineuses.
Prise en charge des effets de réflexion spéculaires et de transparence;
Réflexion diffuse non ou mal représentée;
– Problèmes Qualitatifs
Alliassage;
Disparition de petits objets;
– Sur-échantillonage des rayons ou Utilisation du Lancer de Faisceaux.
– Problèmes Quantitatifs
Nombre d’intersections à calculer très élevé;
– Parallélisation, Architectures spécialisés (GPU: Graphical Provessor Unit)..
Nombre d’intersections inutilement calculées très important;
– Volumes Englobants.
– Particularité
Images dépendants du point de vue
– Reprise de tous les calculs si changement de point de vue.
– Inadapté à l’animation.
81 N. DJEDI (2015)