Vous êtes sur la page 1sur 81

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 :
Ix  x   x, x, d i gx, p i Ip i   Ax
S

p i  x ' td i
x, p i 
gx ' , p i  
dx, 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 NV .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 : c1nrsin 
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)