P1C5 - Modèle d'illumination globale Flashcards Preview

SY32 > P1C5 - Modèle d'illumination globale > Flashcards

Flashcards in P1C5 - Modèle d'illumination globale Deck (11)
Loading flashcards...
1

utilisation du modèle

- parties cachées
- ombres portées
- réflexions, réfraction, interaction spéculaire
- pas d'élimination de faces arrières, pas de tri de faces

2

Suivi de rayon

part de l'observateur, tracer le rayon qui passe par le centre d'un pixel (vecteur vision) et suivre les interactions avec la scène pour déduire la couleur du pixel

3

Modèle de Whitted

I = Ia.ka + ∑j Sj fattj.Ipj(kd(N.Lj) + ks(Rj.V)^n) + ks.Is + kt.It (réflexion spéculaire et transparence)
/!\ Additif et borné donc coefficients faibles !
Pour un rayon V, calcul récursif de Is en suivant r et de It en suivant p puis appliquer la formule de Whitted.
Arrêt : sortie du rayon de la scène, surface opaque non réfléchissante, profondeur de récursivité atteinte, pile pleine.

4

traceRayon

traceRayon(depart, direction, nb) → intensité {
. si (nb=0) alors intensité = 0
. sinon si (!intersection(depart, direction): pointI, facette
.. alors intensité = Ifond
.. sinon {
... si (facette.ks = 0) alors Is = 0
... sinon { calculReflechi(direction, facette.N) → r
... traceRayon(pointI, r, nb-1) → Is }
... si (facette.kt = 0) alors It = 0
... sinon { calculTransmis(direction, facette.N, facette.kη) → p;
... traceRayon(pointI, p, nb-1) → It }
... I = Ia*facette.ka
... Pour j=1 à nbsource {
.... si (!ombre(pointI, facette.N, direction, j)) alors
..... I=I+Idj[facette.kd(facette.N.Lj)+facette.ks(R.(-direction))^(facette.N)]
... }
... I = I+facette.ks * Is + facette.kt * It
... si (depart ≠ observateur) alors {
.... calculDistance(depart, pointI) → d
.... I=I/d
... }
... intensite = I
.. }
}

5

Calculs d'intersections

équation paramétrique du rayon :
x = x0+t(x1-x0)
y = y0+t(y1-y0)
z = z0+t(z1-z0)

Sphère : (x-xc)²+(y-yc)²+(z-zc)²=r²
A = (x1-x0)²+(y1-y0)²+(z1-z0)²
B = 2[(x1-x0)(x0-x1)+ ... )]
C = (x0-xc)²+(y0-yc)²+(z0-zc)²-r²
At²+Bt+C=0, pas de racine=pas d'intersection, 1 racine tangent, 2 racines prendre t inférieure

Plan : Ax+By+Cz+D=0 on obtient t=-U/V
Si V=0 rayon parallèle, pas d'intersection

Polygone : intersection plan puis vérification que l'intersection et à l'intérieur du polygone.

6

Coût raytracing

x.y.2^a.(m+1)(2^n-1)^p
x.y nb de pixels
a anti-aliasing (facteur de sur-échantillonnage)
m nb de sources
n profondeur de réclusion
p nb de primitives testées pour le calcul d'intersection

7

Autre technique

échantillonnage stochastique (R. Cook) : moyenne pondérée (rayons aléatoires sur un pixel, distribution gaussienne)

8

Principe du modèle de la radiosité

Très couteux, indépendant de la position de l'obs. Corneill University. Processus d'émission et réflexion basés sur des réflecteurs parfaits, on ne considère plus de modèles ponctuels mais basés sur une surface. Calcul de la lumière arrivant sur une surface (chemin direct + réflection sur d'autres surfaces). Pas de terme ambiant mais meilleure simulation de l'ambiant.

9

Radiosité

taux avec lequel l'énergie quitte une surface par unité de temps et de surface (patch).
- énergie émise (émetteur) / énergie réfléchie (réflecteur)

10

Equation radiosité

Bi = Ei + pi ∑j Bj Fij
Bi, Bj radiosités des surfaces i et j
Ei émissivité de la surface i
pi réflectivité de la surface i
Fij facteur de forme de la surface j // à la surface i
((∑j Bj Fij) arrive sur i et i émet (pi . ∑j Bj Fij) et Ei)

facteur de forme
Fij = ∫i∫j (cosΦi.cosΦj)/(π||r||²) dAidAj (avec r rayon entre les deux surfaces, Φi et Φj les angles entre N et R.
Intégrale quadruple puisque surface-surface
Solution approximative : projection sur un hémicube

Matrice de radiosité:
1-p1F11 -p1F12 ... -p1F1n | B1 | = | E1 |
-p2F21 1-p2F22 .. -p2F2n | B2 | = | E2 |
.....
-pnFn1 -pnFn2 .. 1-pnFnn | Bn | = | En |

11

Rendu photoréaliste ?

combination de plusieurs techniques
- raytracing pour réflexions directs
- radiosité pour réflexions diffuses
- photon mapping pour les caustiques