L'illumination globale : |
||||||||||||||||||||||||||||||||||||
PRINCIPES
FACTEUR
|
0. Introduction
Les algorithmes de rendu par Z-Buffer+Lambert+Gouraud ou Z-Buffer+Phong+Lambert ou encore par ray-tracing sont assez approximatifs en terme d'évaluation
des déplacements d'énergie à l'intérieur des scènes. Or, ce sont ces déplacements d'énergie qui ont pour conséquence l'éclairage
et donc la coloration des objets.
Tous les objets d'une scène sont de même nature, qu'il s'agisse de lumières ou bien d'objets graphiques classiques. Ils émettent
tous de l'énergie sous la forme de radiations électromagnétiques. Ce phénomène les rend visibles car une partie de ce qu'ils émettent est
captée directement par l'oeil de l'observateur (ou par la caméra de visualisation), mais également lumineux et donc à même d'éclairer
les autres objets. Ce spectre d'émission (la radiosité) est la somme de deux composantes (chacune pouvant éventuellement être nulle) : 2. Mise en application algorithmique
Le calcul de radiosité est effectué en plusieurs étapes : 2.1. Décomposition de la scènes en surfaces élémentaires
Cette décomposition est obligatoire car les radiosités obtenues à l'étape 4 sont constantes sur chaque surface. Ainsi, si les objets étaient
gardés en tant que tels, ils seraient de couleur uniforme. Cela est bien entendu impossible car non conforme à la réalité de notre monde. C'est
en particulier le cas pour les objets courbes sur lesquels l'illumination est généralement variable (une sphère éclairée par une lumière ne l'est
que d'un coté) ou bien encore pour les grands objets qui même s'ils sont plans ne sont pas éclairés de la même façon sur l'ensemble de
leur surface si la lumière qui les éclaire est proche d'eux. Un point fondamental est que la dichotomie entre les objets graphiques et les lumières n'est pas aussi claire en radiosité qu'elle l'est en Z-Buffer et en lancer de rayon. Tous les objets sont des sources lumineuses. Certain des objets émettent intrinséquement de la lumière et peuvent être assimilés à des lumières classiques, les autres objets ne sont que réémetteurs d'une partie de la lumière qu'ils reçoivent est sont assimilables aux objets graphiques classiques même s'ils concourent un peu à l'éclairage dans la scène. Quelles que soient leurs caractéristiques de radiosité (la lumière totale qu'ils émettent), les objets sont tous des volumes et sont tous facettisés. Les objets "lumières" peuvent être rapprochés des lumières ponctuelles (ou des spots si on gère un éclairage non isotrope) car ils sont placés en une position définie. En revanche ils ne se réduisent pas un point infiniment fin mais sont véritablement des objets muni d'une taille non nulle (éventuellement petite). Il n'existe pas d'équivalent aux lumières directionnelles car il faudrait pour cela être capable de placer virtuellement à l'infini un objet de taille probablement infinie, ce qui est difficilement faisable. 2.2. Calcul du facteur de forme entre deux surfaces Définition : Le facteur de forme Fij est la fraction dénergie qui quittant la surface Ai est reçue par la surface Aj.
Pour le calcul de Fij, les forme et orientation respectives des deux surfaces ainsi que de la présence éventuelle dobstacles entre
elles sont prises en compte.
Le facteur de forme dFdidj dune surface différentielle dAi vers une surface différentielle dAj est :
Cette définition différentielle doit être intégrée sur les deux surfaces Ai et Aj pour trouver la valeur recherchée. Cest à dire :
où SAi est l'aire de la surface Ai Problème : Comment réaliser cette intégration (qui est en fait une intégrale quadruple surface-surface) ?
Il n'existe pas de méthode analytique générale pour opérer cette intégration. Première approximation : On considère que Fij = Fdi j. Cette approximation n'est pas trop grossière si les facettes sont relativement petites les unes vues des autres. Calcul de Fdi j par projection sur lhémisphère Une estimation de Fdi j est effectuée en projetant toutes les portions de Aj visibles depuis dAi sur l'hémisphère de rayon unitaire centrée sur dAi et dont la base est parallèle à dAi. On projette ensuite la portion de l'hémisphère ainsi définie sur le cercle base de lhémisphère selon laxe donné par la normale à Ai. On divise laire de la surface obtenue par laire du cercle base. Cette valeur nous donne une estimation de Fdi j et donc une estimation de Fij. Pour les calculs effectifs, dAi est généralement placé au centre de la facette Ai.
Cette méthode a pour inconvénient de requérir lemploi d'un opérateur de projection sur une sphère. Cette opération est couteuse en temps de calcul et surtout elle se marie mal avec la résolution nécessaire du problème de la détermination des portions visibles. Il est en effet obligatoire de tenir compte du fait que, vue depuis dAi, une facette peut être partiellement ou totalement masquée par une autre facette. Calcul de Fdi j par projection sur lhémicube
L'hémisphère de rayon 1.0 centrée sur dAi est remplacée par un hémicube de coté 2.0 centré sur dAi.
A chaque cellule p est associé un facteur de forme élémentaire approximé
La somme des facteurs de forme élémentaires donne le facteur de forme recherché.
Plus la discrétisation de lhémicube est poussée, meilleure est lestimation des facteurs de forme, mais plus long est le calcul.
La technique de l'hémicube permet de calculer une bonne approximation des facteurs de forme entre facettes.
Plutôt que de calculer les facteurs de forme un par un, on effectue un traitement qui s'apparente très fortement à une élimination des parties cachées par Z-Buffer. Ainsi on va déterminer en une seule opération les facteurs de formes Fdi j pour toutes les facettes Aj vis à vis de dAi en réalisant une élimination des parties cachées depuis dAi pour l'ensemble des Aj de la scène projetés sur l'hémicube. Les faces de l'hémicube prennent donc le rôle d'écrans (5 écrans au total car 5 faces) et les cellules élémentaires le rôle des pixels de ces écrans.
Remarque : On peut penser que la technique de calcul des facteurs de forme par hémicube a été imaginée parce qu'elle permet de s'appuyer sur l'implantation hard du Z-Buffer communément réalisée sur les adaptateurs graphiques. Une exploitation astucieuse de dispositifs matériels disponibles, puissants et peu onéreux est ainsi obtenue. 2.3. Constitution du système déquations linéaires
Les facteurs de forme sont calculés. Il reste maintenant à les utiliser. (1) où Bj est la radiosité de la surface Aj (mesurées en énergie/unité de temps/unité de surface), Ei est lénergie intrinsèque émise par la surface Ai, ρi est la réflectivité de la surface Ai, Fji est le facteur de forme de la surface j vers la surface i et SAi et SAj sont les aires des surfaces Ai et Aj.
La notion de réflectivité est introduite dans la formule (1). Il s'agit du coefficient numérique qui multiplié par l'énergie reçue par une
facette donne la quantité d'énergie réémise par cette facette. Les ρi sont donc compris entre 0.0 et 1.0. On peut dire qu'ils
s'apparentent aux coefficients de diffusion. On établit que SAi Fij = SAj Fji, ce qui permet de reformuler (1) en : (2) On rappelle que, dans la formule (2), les Bi et les Bj sont les inconnues à déterminer et que les termes, Ei, ρi et Fij sont sont des quantités connues. De façon à mieux exprimer les inconnues, la formule (2) peut être remaniée pour être présentée sous forme matricielle : (3) qui est en fait un système de n équations linéaires à n inconnues où les inconnues sont les radiosités Bi. Remarque : La diagonale de la matrice nest pas forcément égale à 1.0 (le facteur de forme d'une surface vis à vis d'elle-même peut être différent de 0.0) car une surface s non plane peut séclairer elle-même. 2.5. Résolution du système déquations linéaires
Le système d'équations est généralement résolu en utilisant une méthode itérative : Jacobi ou Gauss-Seidel. Le but n'est pas de décrire précisément
ici ces méthodes de résolution qui revèlent du domaine des mathématiques et sortent donc du champ de l'informatique graphique. Seules quelques
idées maîtresses sont données. 2.6. Affichage final
La résolution du système d'équations est réalisée. Le vecteur des radiosités (Bi ci-dessus) est connu. Celles-ci nous donnent les
illuminations des surfaces élémentaires que l'on peut traduire directement en tant que niveaux de gris. Z-Buffer Les surfaces élémentaires définies pour le calcul de radiosité sont assez naturellement directement recyclées pour le Z-Buffer. Ne plus faire de calculs d'illumination se traduit par le fait que Lambert et Phong ne sont plus utilisés. En revanche, on pourra continuer à utiliser Gouraud pour masquer les surfaces élémentaires. Lancer de rayons Il est possible d'utiliser les surfaces élémentaires définies pour le calcul de radiosité en tant qu'objets de la scène affichée en lancer de rayons. Cela conduit toutefois probablement à une scène composée d'un très grand nombre d'objet. Ce qui aura pour conséquence l'utilisation quasi-obligatoire d'un algorithme optimisé pour continuer à fonctionner dans cette situation. Il est aussi possible de "reconstituer" chaque objet initial de la scène en le munissant de son ensemble de valeurs d'illumination, et d'adpater la fonction de l'algorithme de lancer de rayons qui a pour but de réaliser les calculs de diffusion sur les objets pour qu'elle extrait les illuminations qu'elle calcule non plus d'une formule de type Lambert, mais de l'ensemble des illuminations de ces objets. En tout état de cause, les diffusions étant calculées au cours de la phase de radiosité, tous les "vrais" calculs de diffusion disparaissent. Signalons que, dans le lancer de rayons, les calculs de diffusion avaient pour conséquence la génération des ombres portées (test entre les rayons d'ombre et les objets de la scène) et que supprimer ces calculs ne supprimera pas les ombres portées car le calcul de radiosité intègre leur obtention (gestion des occultations entre surfaces lors du calcul des facteurs de forme). Les transmissions et réflexions spéculaires sont gardées dans le lancer de rayons pour obtenir des images plus réalistes. Il est toutefois à noter que ces phénomènes ne sont pas modélisés en radiosité et que donc, si dans la réalité tous les phénomènes de réflexion et transmissions concourrent à l'illumination de la scène, ce ne sera pas ici le cas. 2.7. Et les couleurs ? La gestion des couleurs n'a pas été abordées dans les paragraphes précédents. Tel qu'il est décrit le calcul d'illumination global permet d'obtenir des images en niveau de gris mais pas en couleur. Pour passer en couleur, il ne suffit pas de considérer que chaque surface élémentaire est munie d'une teinte élémentaire car cela reviendrait à ignorer le fait que les surfaces éclairent les surfaces et que donc les déplacements d'énergie dans la scène sont "colorés". L'obtention d'images en couleur reste toutefois relativement simple : le calcul est réalisé trois fois, une fois pour le rouge, une fois pour le vert et une fois pour le bleu de façon à obtenir des radiosités selon ces trois composantes de base qui seront utilisées comme couleurs pour les surfaces de la scène lors de l'affichage final. Ce sont donc trois sytèmes d'équation linéaires qui sont résolus. Il est bien évident que ces systèmes sont différents et que l'on ne calcule pas trois fois la même chose. Dans la présentation matricielle (3) les inconnues restent les Bi, les facteurs de forme Fij sont les mêmes dans les 3 systèmes en revanche les ρi et les Ei changent. Les ρi sont les réflectivités des surfaces et caractérisent la réflexion diffuse. Ils s'apparentent donc aux classiques coefficients de diffusion rouge, vert et bleu. Les Ei sont les émissions intrinsèques des surfaces et caractérisent l'énergie émise qui peut donc être colorée. 3. Exemples
Les images ci-dessous présentent une scène composée de :
Radiosité avec affichage par Z-Buffer et ombrage plat
Radiosité avec affichage par Z-Buffer et ombrage de Gouraud
Changement des "couleurs" des faces du grand cube
Nouveau changement de couleur Qualité de laffichage
On obtient une très bonne estimation des flux d'énergie à l'intérieur de la scène. Le calcul de léquilibre énergétique intègre de manière très précise le calcul de la composante de lumière ambiante de chaque surface, ce qui conduit généralement à des lumières douces qui semblent tamisées (résolution des problèmes d'illumination locale inhérents aux autres algorithmes de rendu). Les scènes d'intérieur tirent un grand profit de ce type de rendu. La réalisation de l'algorithme d'affichage (par exemple un Z-Buffer associé à un lissage de Gouraud) renforce encore ce phénomène. On modélise les ombres portées car on gère les occultations entre objets. Rapidité de calcul Une fois léquilibre énergétique calculé, laffichage dune scène est très rapide (rapidité du Z-Buffer ou du lancer de rayons). Contrairement au lancer de rayons, on na pas à recalculer léquilibre si on effectue un déplacement de l'observateur à lintérieur de la scène. Tant que la scène nest pas modifiée, les calculs danimation sont extrêmement rapides. Qualité de laffichage Cet algorithme ne tient compte que de la lumière "diffusée". Il ne peut pas rendre compte des transmissions et des réflexions spéculaires.
La discrétisation de la scène et des calculs de facteurs de forme par méthode de l'hémisphère ou l'hémicube fait que certains problèmes d'aliasage
peuvent apparaître entraînant des problèmes comme par exemple sur les ombres : Rapidité de calcul Les deux phases (a) de calcul des facteurs de forme et (b) de résolution du système déquations linéaires demandent des quantités de calcul importantes. La phase de calcul des facteurs de forme est généralement la plus longue.
Plus on veut un résultat proche de la réalité, plus la discrétisation de la scène doit être poussée et donc plus le temps de calcul est important.
De plus, on est confronté à la résolution successive de deux problèmes, un en n2 du nombre de facettes et un en n3 du nombre
de facettes : 6. Améliorations Contrôle des temps de calcul : radiosité progressive Le problème de structure de données en n2 trouve une solution avec la technique de radiosité progressive. Cette technique apporte aussi une solution partielle au problème de temps de calcul cubique nécessaire à la résolution du système d'équations linéaires. Cette technique permet de résoudre progressivement le système d'équations linéaires sans stockage de l'ensemble de la matrice des facteurs de forme. On ne la calcule que ligne par ligne au moment où chaque ligne est utilisée lors de la résolution du système d'équations linéaires par une méthode itérative.
L'algorithme est donc itératif, basé sur une boucle pseudo-infinie. Il traite les surfaces de la scène les unes après les autres pour évaluer et
affecter l'énergie qu'elles émettent vers les autres surfaces. Algorithme La valeur n est le nombre de surfaces à traiter par radiosité.
Déclarer un tableau d'énergie B destiné à contenir la radiosité
de chacune des n surfaces La ligne importante dans l'algorithme ci-dessus est la ligne DR = roFA * DB[F] * FF[FA] * AF / AFA qui permet de calculer et de stocker dans DR la quantité d'énergie reçue par la facette FA depuis la facette F puis réémise. roFA est la réflectivité de la facette FA. DB[F] est la quantité d'énergie restant à éméttre par la facette F. FF[FA] est le facteur de forme définissant la proportion d'énergie qui, émise par la facette f, est reçue par la facette FA. AF et AFA sont les surfaces des facettes F et FA. On sait que cette technique de résolution permet la convergence vers la solution d'équilibre énergétique. Un problème est que le temps de convergence n'est pas prévisible. Un contrôle offert par cet algorithme concerne le choix de la surface F émettrice à chaque itération. On accélère la convergence en choisissant la surface possédant la radiosité maximale parmi celles restant à émettre. Remarque: Au cours de l'exécution on peut être appelé à calculer plusieurs fois la même ligne de facteurs de forme à peu d'itérations d'écart. Cette source d'inoptimisation peut-être contrée en gardant en cache un certain nombre des lignes dernièrement calculées.
Radiosité progressive Limitation des problèmes d'aliasage : Discrétisation adaptative
On peut limiter les problèmes d'aliasage en utilisant une technique de discrétisation de la scène permettant d'augmenter la précision (augmenter
le nombre de surfaces) dans les zones critiques. La technique généralement employée consiste à subdiviser récursivement les surfaces.
Une cathédrale
Une usine La technique de calcul de l'illumination globale permet de calculer au mieux la composante de lumière ambiante due aux réflexions diffuses multiples (infinies) générées sur chaque surface diffusante d'une scène. Elle permet l'obtention d'images de très bonne qualité aux lumières douces telles qu'elles apparaissent très souvent dans la réalité quand les éclairages sont indirects ou diffus. Cet effet est renforcé par la définition, contrairement au lancer de rayons et au Z-Buffer, de sources lumineuses non ponctuelles (surfaces lumineuses) et par la réalisation de lissages sur les couleur par l'algorithme d'affichage. L'obtention d'images photoréalistes se heurte à l'impossibilité de modéliser les réflexions spéculaires et les transmissions. Une technique fréquement employée pour obtenir des images de grande qualité consiste à faire précéder un rendu par lancer de rayons, d'une phase de calcul des radiosités permettant une évaluation correcte des éclairages ambiants. Un autre inconvénient des calculs de radiosité est la lenteur. |