Home ISIM: Rendu photorealiste 2
Post
Cancel

ISIM: Rendu photorealiste 2

Lien de la note Hackmd

La Radiosite

On essaye d’estimer la “radiosite” de chaque element de la scene, c’est a dire la quantite d’energie de chaque element emet…

  • $B_i$ la radiosite de la surface $i$
  • $E_i$ la quantite de lumiere emise par la surface $i$
  • $P_i$ la fraction de lumiere incidente qui est reflechie par la surface $i$
  • $F_{ij}$ la fraction de lumiere quittant la surface $i$ et atteignant la surface $j$
\[B_i = E_i + P_i\sum_i(F_{ij}B_j)\]

Calcul des $F_{ij}$ par hemi-cubes On projet un triangle, la partie bleue est la projection de ce triangle.

  • Avantages:
    • Prend mieux en compte les sources secondaires
    • Calculee une fois pour toutes
  • Inconvenients
    • Tient compte de la diffusion
    • Assez lourd
    • Obligation d’avoir un maillage (il faut discretiser les surfaces)
    • Objets transparents ?

Photon map

  • Avantages:
    • Permet de modeliser plus proprement les sources secondaires, les ombres portees (…) et surtout les objets transparents (caustiques)
      • Faire des ombres correctes sous les objets transparents
  • Inconvenients
    • Calculs
    • Complexite
    • Penible a coder

Resultats: video manquante :(

Ameliorations:

  • Projection Maps
  • Visual importance map (3-pass Technique)
  • Shadow photons

Path Tracing/Bidirectional Path Tracing

  • Modelisation des proprietes de reflexion des surfaces: (Bidirectional reflectance distribution function BRDF) (idem pour la transmission)
    • Si on a une surface et qu’on lance un laser, qu’elle est l’energie ressortante en fonction de l’angle d’incidence?
  • Solution pour resoudre l’illumination

Conservative: \(\int f_r(x,\theta,\theta_o)L_{input}(x, \theta_i)\vert\theta_i.N_x\vert\delta w_0\le 1\) Reciprocite de Helmholtz: \(f_r(x, \theta_i, \theta_o) = f_r(x,\theta_o^{-1}, \theta_i^{-1})\)

  • Mesuree
    • Goniophotometer
  • Modele
    • Blinn-Phong
    • Cook-Torrance
    • GGX

Principe du rendu:

Path Tracing

  • Avantages:
    • Rendu realiste
    • Convient bien aux scenes d’exterieurs
    • Prend bien en compte l’apport des autres objets
    • Rend les caustiques
    • Possibilite de modeliser les effets (profondeur de champ…)
  • Inconvenients:
    • len
    • bruite (Il faut bcp d’iterations pour converger)
    • difficile pour scenes avec des petites sources lumineuse (ou sources cachees)

Bidirection Path Tracing

Avantages:

  • Facilite la recherche du chemin vers la source lumineuse
  • Permet de modeliser les petites sources lumineuses

PBGI: Point-Based Global Illumination

  • Tres peu enseigne
  • Beaucoup utilise dans l’industrie du cinema
    • Monster Academy: 1er long-metrage en raytracing
    • La-haut: utiliser PBGI
    • SFX de Pirates des Caraibes avec PBGI
  • Avantages:
    • Rapide
    • Image non bruitee (pas d’artefacts temporel)
  • Inconvenients
    • Pas aussi precis que le raytracing
    • Difficile de gerer les effets miroir
  • Approximation de la scene par nuage de points
    • Un point = un disque de couleur
    • Calcul de l’illumination directe de la scene

Calcul de l’illumiantion globale

  • Calcul de la contribution des points sur un disque
    • Pour les points eloignes
      • Utilisation du cluster
    • Pour les points proches
      • Raytracing
    • Pour les autres points
      • Utilisation directe du disque

Bilan et remarques

Rendus

Rendu simple

Rendu simple avec anti-aliasing

Rendu avec la radiosite

Rendu avec les photons

Rendu avec la radiosite et les photons

Rendu avec anti-aliasing

Bilan

  • Raytracing
    • Calcul de l’illumination en fonction d’un point de vue
    • Calcul l’illumination approximatif : gère mal les objets transparents, les lumières secondaires, les ombres portées…
    • On peut combiner cet algorithme avec des techniques de calcul d’illumination globale pour palier à ces problèmes
  • Radiosity
    • Calcul l’illumination globale
    • Gère que la diffusion mais améliore l’apport des lumières secondaires
  • PhotonMap
    • Calcul l’illumination globale
    • Plus diffcile à mettre en ÷uvre (implémentation, artéfacts…)
    • Gère bien les objets transparents (caustiques) et éventuellement les ombres portées et les sources secondaires
  • PathTracing
    • Gère bien les objets transparents, les lumières secondaires, les ombres portées
    • Calcul très long
    • Risque d’apparition de bruit
  • PBGI

Remarques sur l’implementation

  • Doit être bien réfléchie
  • Parallélisation possible
  • Utilisation du GPU possible

Modelisation

Pour chaque “forme” il faut être capable de:

  • calculer la normale en chaque point
  • calculer l’intersection avec une droite,
  • éventuellement calculer les coordonnées de la texture

Calcul des intersections : dans le repère monde ou le repère objet ?

Pour aller plus loin

  • Textures
  • Autres effets (Brouillard, Bleu atmosphérique, …)
  • génération d’anaglyphes (cyan et rouge (espacement $\frac{1}{30} ∗ f$ ))

Post scriptum

Raycasting

(Raytracing est une extension du raycasting ?)

Wolfstein:

  • On lance des rayons dans le plan!

La longueur du rayon permet de conclure sur la hauteur du mur

  • 1 rayon donne 1 colonne de l’image + gestion des objets

Avanatages:

  • Algorithme rapide
This post is licensed under CC BY 4.0 by the author.