La radiosité en pratique
Bonjour à tous !
Dans ce tutoriel, nous allons apprendre à utiliser la 'radiosité'... Mais au fait, c'est quoi la radiosité ?
La radiosité est une fonction un peu cachée dans la jungle des boutons de Blender. Elle sert à faire des rendus qui prennent les objets comme des sources secondaires de lumière en fonction de leur couleurs, de faire des ombres douces facilement et de 'baker' le tout.
Par exemple :
J'ai cette scène faite avec radiosité :

On remarque que le plan a coloré suzanne, en effet, la lumière a 'rebondi' sur le plan et elle a au passage, elle a prit sa couleur et elle a atterrit sur suzanne, qui a été ainsi colorée.
J'ai aussi dit que l'on pouvait 'baker' le tout, c'est à dire que l'on peut stocker toute ces couleurs pour ne pas avoir à tout recalculer, ce qui permet de faire des rendu très rapides même en bougeant la caméra, et accessoirement d'avoir un aperçu dans la vue 3D :

Ici par exemple on voit bien les couleurs et l'ombre dans la vue 3D, on peu voir aussi la source de lumière qui n'est non pas une lampe mais un objet a part entière ! Ici c'est un plan, comme il est grand il génère de belles ombres diffuses.
On va commencer par faire simple, histoire de rapidement vous mettre dans la situation :
/!\ pour suivre confortablement la suite du tutoriel, il est nécessaire que vous maitrisiez les bases de Blender
Créez une nouvelle scène, faites un plan sur lequel vous placerez suzanne subsurfée.

Comme je l'ai dit précédemment, avec la radiosité, on éclaire pas avec des lampes mais avec des objets, ajoutez une icosphere (add > mesh > icosphere) qui servira de lampe, mettez la au dessus de votre scène et réduisez la.

Pour qu'elle envoie de la lumière, on va devoir lui assigner un matériel avec emit > 0... Créez lui un matériel blanc avec un emit de 1.1.

Colorez aussi suzanne et le plan de la couleur de votre choix. /!\ ne leur appliquez pas de transparence et de miroir, juste une couleur, on verra pourquoi après.

Maintenant, supprimez toute les lampes, elle ne nous serviront à rien pour l'instant.
On va appliquer le 'Subsurf', car si on ne le fait pas, il sera ignoré pendant le calcul de la radiosité, pour cela, retrouvez votre panneau 'Subsurf' et en cliquant sur 'apply' :

Ceci fait, on va aborder la radiositée a proprement parler, avant ça sauvegardez votre scène, ainsi on pourra revenir en arrière, allez dans le menu 'Shading'
et dans le panneau 'Radiosity'
.
Et là vous tombez sur des réglages, un peu effrayants au premier abord, pour que vous compreniez bien, on va d'abord lancer le calcul de la radiosité :
Réglez 'Hemires' à 750 et cliquez sur 'Gour', sélectionnez le plan, l'icosphere et suzanne (tout les objets qui seront pris en compte par la radiositée), faites 'Collect Meshes' positionnez vous bien de façon a bien voir votre scène dans la vue 3D, enfin cliquez sur 'GO' pour lancer le calcul...
Vous pouvez voir votre scène s'illuminer en direct, patientez, vous devriez voir ça...

Marrant non ? Cliquez sur 'Replace Meshes' puis sur 'free radio data'.
Non ! Ne criez pas, rien ne s'est supprimé ! Allez chercher et activer le bouton 'set smooth' et mettez vous en mode 'shaded' !

Et voila, tout et redevenu normal, allez maintenant en 'edit mode' :

Oui, c'est la radiosité qui a fait ça, ne lui en voulez pas, elle est obligée. Bah oui ! La radiositée utilise les 'vertex color' pour colorer votre scène.
Les 'vertex color' permettent de colorer vos objets en assignant des couleurs aux points, ce qui permet de corriger la luminosité et de teinter le tout. Seulement... pour que tout ça soit bien fin et détaillé, il faut qu'il y aie suffisamment de points, c'est donc pour ça que la radiositée a subdivisé votre mesh...
Chargez le fichier que vous avez précédemment enregistré pour revenir en arrière, et retournez aux paramètres de radiosité :

Hemires : agit directement sur la qualité de la lumière, plus c'est haut, plus c'est beau mais plus c'est long.
Imax, ElMin, Amax et aMin : ils déterminent la taille des éléments, plus ces valeurs sont petites plus il y a de points donc plus c'est beau
Wire, Solid et Gour : déterminent le type d'affichage : Wire = fil de fer; Solid = carré; Gour = lissé
Wire :

Solid :

Gour :

Collect meshes : mets les objets sélectionnés en mode radiositée
Quand vous cliquez sur 'collect meshes' de nouveaux paramètres apparaissent :

GO : lance le calcul
Subdiv Shoot Element et Max Shoot Patch : si vous cliquez sur ces boutons, Blender va pré-subdiviser certains points de la scène qui auront besoin de détails
MaxEl : le maximum d'éléments qu'il pourra avoir, sert a controler le nombre de points
Lors ce que le calcul est terminé, vous avez le choix entre :
Free radio data : pour revenir en arrière
Replace meshes + Free radio data : pour remplacer les mesh par les mesh subdivisés et colorés /!\ impossible de revenir en arrière ! Faites une sauvegarde avant !
Add new meshes + Free radio data : vous gardez l'ancienne scène, et vous avez aussi la nouvelle par dessus
Dur à assimiler tout ça, non ? On va faire une nouvelle scène.
Creez une nouvelle scène, agrandissez le cube, mettez à l'intérieur suzanne subsurfée et une sphère, posez le tout sur la face du bas du cube, comme ceci :

/!\ n'oubliez pas d'appliquer le 'subsurf' comme on l'a fait avant, sans quoi il sera ignoré.
Maintenant, créez 4 matériaux pour le cube, un rouge, un bleu, un gris foncé et un blanc avec emit = 0.04, c'est ce blanc qui éclairera notre scène
Appliquez le bleu et le rouge sur les 'murs', le gris sur le sol et le blanc sur le plafond, comme ceci :

Vue de dessous :

Assignez un matériel à suzanne, choisissez la couleur que vous voulez mais mettez 'spec'=1 car on verra plus tard comment inclure la spécularitée si on utilise la radiositée.
Colorez aussi la sphère, positionnez ensuite la caméra dans le cube, de façon a bien voir nos objets, dans mon cas j'ai ceci :

Nous avons bien notre source de lumière (le plafond avec emit > 0), nous allons donc pouvoir lancer le calcul de la radiositée... Avant cela, faites une sauvegarde, on reviendra en arrière après.
Allez dans le menu radiosité, sélectionnez vos objets, réglez 'Hemires' sur 800, cliquez sur 'collect meshes', réglez MaxEl sur 20000 et lancez le tout avec 'GO'.
Et là... c'est tout noir.
Problème #1 : les normales pas normales
Si on retire mon jeu de mot douteux, c'est assez simple à résoudre... Voyons pourquoi rien ne s'est éclairé.
Faites 'free radio data' pour revenir en arrière. Séléctionnez votre cube-pièce et allez en mode 'edit'.
Allez dans dans 'editing'
et cliquez sur 'Draw Normals' et réglez Nsize sur 0.2.

Et dans la vue 3D vous pourrez observer le sens des faces, représenté par les traits, ici, elles sont dirigées vars l'extérieur, la lumière part dans le sens des normales, elle est donc partie... dans le vide ! Si on veut que la lumière vienne dans la boite, il nous faut orienter les normales vers l'intérieur... sélectionnez toutes les faces et faites w > flip normals pour les retourner...
/!\ quand on veut faire de la radiositée, il est trèèèès important que toutes les normales de tout les objets soient bien orientées... pour automatiquement les rediriger vers l'extérieur, sélectionnez les faces concernées et faites CTRL + N et pour toute les tourner vers l'extérieur, faite SHITF + CTRL + N.
Relancez le calcul de la radiositée... avant de cliquez sur 'GO' réglez MaxEl à 20000, pour permettre à la radiosité de subdiviser plus notre scène.
Laissez tourner le calcul jusqu'à sa fin, en effet, la radiosité va d'abord éclaircir peu a peu notre scène, avant de teinter nos objets avec la couleurs des matériaux avoisinants... N'hésitez pas à baisser où augmenter 'emit' du matériel du plafond pour ajuster l'intensité de l'éclairage.
Moi j'ai ceci :

Vous pouvez également ajuster la luminosité avec les boutons Mult et Gamma tant que vous n'avez pas fait 'Replace meshes' ou 'Add new meshes où 'Free radio data':

Faites 'Replace meshes' + 'Free radio data' pour appliquer la radiosité définitivement, 'set smooth' et mettez vous en mode 'shaded'.
Faites un rendu,
Là, que ce soit en vue 3d où au rendu, les spéculaires on disparu ! Vous aviez mis 'spec' à 1 pour suzanne et elle est désormais toute mat. Pourquoi?
Hé bien parceque le spéculaire dépend du point de vue, c'est pour ça qu'il n'est pas 'baké' car si on bougeait la caméra, le spéculaire resterais statique, ce qui sera très moyen niveau réalisme.
La technique ? Un va créer une lampe qui va créer des spéculaires, sans éclaircir davantage la scène. Créez une aera, mettez la un peu en dessous du plafond, et mettez lui la même taille, comme ceci :

Dans les réglages de cette lampe, cochez 'no diffuse' pour que la lampe n'éclaire pas et ne fasse que des spéculaires.

Faites un rendu, et vous verrez vos spéculaires.
Vous remarquerez que l'intensité influe sur la puissance des spéculaires, réglez donc votre lampe au mieux.
Astuce : entre deux modification de la lampe, bougez la légèrement pour que la scène soit réactualisée.
PS : le spéculaire est immobile en mode 'shaded', mais au rendu, pas de problème.
Allons plus loin ! Vous pouvez faire en sorte que vos lampe éclairent la scène, par dessus les informations précalculées, ajoutons donc une lampe pour voir, déplacez là dans le cube pour voir, bougez les paramêtres :

Le résultat plutôt joli, c'est parce que nos objets comportent beaucoup de points, ce qui permet d'afficher la lumière précisément sur nos objets.
Jusqu'ici on a utilisé des couleurs. Si on mettait des textures images ?
Chargez donc votre sauvegarde précédente...
Mettez au mur un texture, dans mon cas j'ai pris celle ci :

Appliquez là, n'oubliez pas de cocher 'cube' dans 'map input', tant qu'on y est, mettez sizeX, sizeY et sizeZ à 5 pour que la texture ne soit pas trop grande. Sauvegardez.

Lancez le calcul de la radiositée avec les même paramètres qu'avant et...
Problème #2 : ma texture n'apparait pas ! Et sa couleur n'a pas eu d'influence sur la scène
Le résultat du calcul de la radiosité sera comme avant, les murs n'ont pas été texturé de la texture de brique.
Pourquoi ? La radiositée ne gère pas vraiment les textures, elles ne peuvent pas être affichée dans la vue 3D. Faites un rendu pour voir !

Haha ! La texture apparait... mais... le problème c'est que les murs on émit leurs couleurs de base (rouge et bleu) qui sont allé teinter les autres objets, et les murs sont teintés de leurs couleurs de base qui plus est, ce qui est peu crédible.
Heureusement il y a une solution, commencez par recharger la scène, on va appliquer au murs la couleur de la texture de brique, un rouge brique donc :

Appliquez le aux deux textures de murs, relancez le calcul de la radiositée, appliquez là, faites un rendu et...

C'est parfait ! Essayons de mettre de la transparence et de la réfléxion... Rechargez votre sauvegarde et mettez à suzanne un matériel transparent avec 'IOR' = 1.5 et un matériel réfléchissant pour la sphère avec 'ray miror' = 0.5, lancez le calcul, faites un rendu :

Ouf ! Tout est bien pris en compte !
Vous avez remarqué qu'on ne voit pas les reflets/réfractions dans la vue 3D, c'est normal vu qu'elle dépendent du point de vue, elle sont donc calculées au rendu.
/!\ Quel que soit la transparence, la puissance de la réflexion, votre objet est considéré comme opaque lors du calcul de la radiosité !
J'en profite également pour signaler que vous ne pouvez pas avoir plus de 16 matériaux dans votre scène, si vous dépassez cette limite, vous ne pourrez pas calculer la radiositée. C'est parce que la radiositée réunit tout vos objets pour n'en former qu'un, et un objet ne peut pas avoir plus de 16 matériaux.
Le technique du dôme de lumière
Cette technique permet d'obtenir un éclairage assez doux et uniforme, avec des ombres très diffuses, que l'on peut observer à l'extérieur par temps couvert. Je trouve que c'est une méthode sympa pour peésenter ses models. Le tout est assez agrébale à regarder, on y va ?
Cette fois ci nous n'allons pas prendre suzanne, mais un objet plus détaillé qui fournira un résultat plus parlant... Un vador tie que j'avais fait précédemment :

Cliquez sur l'image pour le télécharger. Ouvrez le fichier. Ajoutez un plan en dessous du vaisseau, et, en vue de dessus, ajoutez une icosphere avec 2 subdivision. Agrandissez-la pour qu'elle englobe la scène, comme ceci :

Et maintenant supprimez les faces du bas de l'icospere :

Baissez un peu le dôme ainsi créé pour que la scène soit bien à l'intérieur :

Là vous devez avoir compris où je veux en venir, le dôme va émettre de la lumière, un peu comme une sorte de 'faux ciel'.
Mettez lui un material blanc avec un emit de 0.008 pour qu'il émette de la lumière.
Souvenez vous du problème des normales dont on a parlé précédemment, là pour l'insant elle sont orientées vers l'extérieur, faites les converger vers l'intérieur avec w > flip normals.
Sélectionnez le Tie, le plan et le dôme, mettez vous bien en position pour voir votre scène s'illuminer et lancez la radiositée en mettant Hemires à 1000 et MaxEl à 150000 et en activant 'gour'.
Attendez que votre curseur ai atteint dans les 600 pour arrêter le calcul (echap), moi j'ai ceci :

Sympa non ? Après, à vous d'ajuster les réglages et de faire des tests, ce résultat peut être amélioré, essayez donc de texturer le sol et de changer la couleur de votre dôme en bleu clair pour simuler un ciel.
Si le résultat vous plait, appliquez les changements et faites des rendus dans tout les angles, profitez-en c'est très rapide !
La radiositée, pourquoi faire ?
Déjà, pour un décor stable. Si vous essayez de bouger un objet de votre scène, son ombre ne bougera pas d'un poil. C'est du précalculé, ne l'oubliez pas. Par contre vous pouvez bouger la caméra sans crainte.
Il est également impossible d'utiliser la radiositée telle qu'elle pour vos jeux avec gameblender, n'oubliez pas que blender subdivise vos objets !
Par contre imaginez que vous avez un projet, vous devez faire une visite virtuelle d'une maison. Si vous choisissez la radiositée, les calculs de frame pour l'animation seront très rapides, tout est déjà pré-calculé ! Les ombres douces apporteront du réalisme, ces ombres douces sans radiositée n'auraient pu être obtenues qu'avec des temps de rendu énormes. Dans ce cas là radiositée sera un avantage énorme.
A vous de décider à quoi elle vous servira ;)
Bon amusement !
Rédigé par Visiteur, Avril 2008