# Illumination globale

Les algorithmes d'illumination globale (dit souvent GI pour Global Illumination) – utilisés en synthèse d'image 3D – sont ceux qui, en déterminant la lumière tombant sur une surface, tiennent compte non seulement de la lumière qui a pris un chemin partant directement d'une source lumineuse (illumination directe), mais également la lumière ayant subi la réflexion d'autres surfaces dans la scène à 3 dimensions (illumination indirecte).
Dans la pratique, des rayons lumineux émanent d'une source lumineuse dans toutes les directions et bombardent la scène. Quand ces rayons frappent un objet, certains sont bloqués (absorbés) et d'autres sont réfléchis et réfractés. Ces derniers (les rayons non bloqués) vont alors frapper d'autres surfaces. Le processus continue ainsi pendant un certain nombre d'itérations. Ce procédé permet notamment de voir les objets d'une scène qui ne sont pas illuminés directement par une lumière ou les réflexions d'une surface brillante.
Les images rendues en utilisant des algorithmes d'illumination globale sont plus photoréalistes que des images rendues en utilisant des algorithmes d'illumination locale. Cependant, ils sont également beaucoup plus lents et plus coûteux en termes de temps de calcul. Une approche commune est de calculer l'illumination globale d'une scène et de stocker cette information avec la géométrie (principe de radiance). Ces données stockées peuvent alors être employées pour produire des images de différents points de vue, produisant ainsi différentes images d'une même scène sans devoir refaire un calcul d'éclairage à chacun des changements d'angle.
Pour des exemples d'algorithmes utilisés dans l'illumination globale, on peut citer notamment : la radiosité, le lancer de rayon, le beam tracing (en), le cone tracing (en), le path tracing, le metropolis light transport et le photon mapping, une combinaison de ces différents algorithmes pouvant être utilisée.
Ces algorithmes modélisent l'inter-réflexion diffuse qui est une partie très importante de l'illumination globale, toutefois la plupart de ces derniers (à l'exclusion de la radiosité) modélisent aussi la réflexion spéculaire, ce qui en fait des algorithmes plus précis pour résoudre l'équation d'éclairage et pour fournir une scène ayant une luminosité plus réaliste.
Les algorithmes employés pour calculer la distribution de l'énergie lumineuse entre les surfaces d'une scène sont étroitement liés aux simulations de transfert radiatif, ces dernières utilisant la méthode des éléments finis.
En 3D temps réel, l'illumination globale étant difficile à approximer rapidement (le budget d'une trame est de 5 ou 6 millisecondes pour ce calcul), son résultat est souvent stocké sous forme de textures, dites lightmap.
Les applications qui ne peuvent pas utiliser de lightmaps, pour des raisons de géométrie dynamique, utilisent alors des simplifications, telles que "Ambient BRDF". Ou Image Based Lighting. Ou encore, ambient shadow volumes ; ou finalement un éclairage direct simplifié basé sur une lampe directionnelle avec une ambiante constante, pour le cas le plus simple.
Les cas les plus évolués au contraire, utilisent des techniques telles que "instant radiosity", ou bien "Light propagation volumes" (de Crytek), ou encore, "Voxel Cone Tracing in a Sparse Voxel Octree" (par Cyril Crassin). Frostbite engine utilise une variante d'approximation de la radiosité encore différente basée sur l'évaluation de light probes.