Aller au menu - Aller au contenu

Icône Global_settings

Mise à jour : 01/07/2010
Difficulté : Facile Facile Creative Commons BY-NC-SA
525 visites depuis 7 jours, dont 8 sur ce chapitre classé 218/786
On commence tout doux avec ce petit chapitre, qui va vous expliquer ce que sont les "Global settings", ou paramètres globaux en français.
Ce sont des paramètres qui vont vous permettre de contrôler un petit peu mieux la manière dont POV-Ray va effectuer le rendu de la scène.
Rien de bien méchant jusque là, ne vous inquiétez pas ! :lol:
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Présentation

Mais ?? Tu nous avais dit que pour contrôler ça, il fallait utiliser des options dans les fichiers .ini !?!

Oui, c'est vrai :lol:
Les fichiers .ini permettent de contrôler la manière dont POV-Ray crée l'image, c'est à dire le format de l'image, sa taille, ...
Les global settings permettent, quant à eux, de contrôler la manière dont POV-Ray lit la scène...
o_O
Je sais, ça peut paraître déroutant au début... mais vous allez voir, c'est tout simple !!

D'ailleurs, si vous avez bien suivi le cours depuis le début, vous avez déjà utilisé un de ces paramètres : dans le TP sur le vase, vous avez utilisé le paramètre max_trace_level, car il y avait beaucoup de réflexions à cause du rubis.

Bon, assez parlé !
TOUS les paramètres globaux se mettent dans un seul bloc dans votre fichier, hors de tout objet :
Code : Autre
1
2
3
global_settings {

}


Nous allons maintenant voir quelles options y mettre...

Ambient_Light

Imaginez une scène très simple : un sol, un cube et une lumière.
En théorie, l'ombre du cube sur le sol devrait être parfaitement noire, puisqu'aucune source de lumière ne l'éclaire.
Pourtant, dans la "vie réelle" (la quoi ??), la lumière "rebondit" légèrement sur tout ce qu'il y a autour, pour éclairer un petit peu ce bout d'ombre, ce qui fait qu'il n'y a presque jamais d'ombres totalement noires...
Mais comment faire ça dans POV-Ray ??

Il existe une méthode un peu compliquée qui permet de faire exactement ça (la lumière qui rebondit sur les objets alentours), mais nous ne la verrons que plus tard (chaque chose en son temps :D vous souffrirez bien assez comme cela...). Une autre méthode, bien plus simple, existe donc : ambient_light.

Ambient_light, ou lumière ambiante en français, correspond à une lumière qui éclaire TOUS LES OBJETS de la scène, et DANS TOUTES LES DIRECTIONS.
En général, cette lumière est assez faible et ne se voit que dans les ombres : l'effet immédiat est un "adoucissement" des ombres : elles ne sont plus complètement noires, mais juste plus sombres.

Par défaut, ambient_light vaut <1,1,1> (ce qui correspond à une lumière blanche), mais est ensuite multipliée pour chaque objet par sa propre valeur de ambient (dans le finish, rappelez-vous ;) ) qui, quant à elle, vaut 0.1 par défaut : l'éclairage ambiant est donc par défaut une lumière de couleur <0.1,0.1,0.1>.

Vous n'êtes pas obligés de garder une lumière ambiante blanche ! Changer la valeur par défaut peut être intéressant pour colorer toute la scène, ou simplement pour supprimer cet effet (en particulier si l'on utilise la méthode plus complexe dont je vous ai parlé).

Voici comment mettre une lumière ambiante rouge dans votre scène :

Code : C
1
2
3
global_settings {
  ambient_light rgb <1, 0, 0>
}

Max_trace_level

Celui-ci, vous le connaissez déjà ! ^^
Enfin, vous l'avez déjà utilisé, au moins...

Pour comprendre son rôle, il faut savoir comment POV-Ray calcule la couleur de chaque pixel de votre image.
  • Il commence par "jeter" un rayon depuis la caméra dans une certaine direction, et regarde si ce rayon touche un objet. Si le rayon ne touche jamais rien, bah y'a rien... c'est noir !
  • Si le rayon touche un objet, chouette ! POV-Ray envoit d'autres rayons depuis ce point vers les lumières pour voir si l'objet est éclairé, etc...
  • SI L'OBJET EST TRANSPARENT OU REFLECHISSANT, même un tout petit peu, alors on ne peut pas connaître sa couleur exacte comme ça. Il va falloir jeter d'autres rayons depuis ce point, à travers l'objet s'il est transparent, et en arrière s'il est réfléchissant, pour savoir quel objet on voit dessus.
  • Si l'un de ces rayons touche un objet, alors rebelote, on vérifie les lumières, etc.

Vous voyez donc que si on a plein d'objets transparents, alors il va falloir envoyer beaucoup de rayons, qui vont eux-même envoyer beaucoup de rayons, qui vont eux-même envoyer beaucoup de rayons, ... et on n'en finit plus parfois !
Imaginez deux miroirs face à face : les rayons vont "rebondir" à l'infini, et on ne va jamais savoir à quoi ressemble notre image ! C'est pas malheureux ? :(

Heureusement pour nous, POV-Ray a pensé à tout : à chaque fois que vous touchez un nouvel objet transparent ou réfléchissant, vous "montez d'un niveau" dans votre envoi de rayons. Et bien, POV-Ray va alors tout simplement décider de ne jamais aller au delà du niveau que vous choisirez, comme 5 ou 10 par exemple. De cette manière, vous êtes certain de ne jamais resté bloqué !
Mais... ?? :( Si on s'arrête comme ça, comment on connait la couleur du pixel ??

Ahem... :-° on n'en sait rien ! Bah oui, y'a pas de magie, si on arrête brutalement de chercher la couleur du rayon, on ne va pas la trouver comme ça...
Lorsque POV-Ray arrête comme ça un rayon, il considère que la couleur obtenue est NOIRE.

Je sais, ça fait moche... En fait, ça fait des points noirs (ou même de grosses tâches noires parfois) et c'est pas beau du tout. Mais c'était ça ou votre ordinateur fondait dans un dernier cris d'agonie... :o Avouez quand même que quelques points noirs, c'est pas si grave ! :lol:

Si jamais vous obtenez ainsi des points ou des zones noires sur vos objets transparents ou réfléchissants, c'est probablement que POV-Ray a décidé d'arrêter de chercher la couleur des rayons.
Pour corriger ça, il suffit donc de lui dire de chercher un petit peu plus longtemps.
La valeur par défaut de max_trace_level est de 5, vous pouvez essayer de mettre 10 ou 20, cela dépend de votre scène.
Sachez que plus vous aurez d'objets transparents ou réfléchissants, plus vous aurez besoin de donner à ce paramètre une valeur élevée.

Et, bien entendu, plus ce paramètre sera élevé, et plus la scène sera longue à rendre ! :p


Pour modifier ce paramètre, rien de plus simple : il suffit de mettre max_trace_level dans le bloc global_settings, suivi de la nouvelle valeur :
Code : Autre
1
2
3
global_settings {
  max_trace_level 15
}

ADC_Bailout

Là encore, ce mot-clé aura un effet sur les objets transparents ou réfléchissants (Il faut dire que ce sont des objets souvent très utilisés, et qui ont un temps de rendu assez long !).
Comme je l'ai dit un peu plus haut, POV-Ray va continuer à envoyer des rayons tant qu'il trouve des objets transparents ou réfléchissants et tant qu'il n'aura pas dépassé la valeur de max_trace_level. Mais il y une autre raison pour laquelle POV-Ray pourrait ainsi arrêter un rayon...
Imaginez deux miroirs l'un en face de l'autre. Imaginez maintenant que ces miroirs sont sales, et qu'ils ne vont pas être parfaitement réfléchissant, mais seulement en partie.
Quand vous regarderez l'un des deux, vous verrez l'autre par réflexion ; vous verrez peut-être même le premier dans la réflexion du second, mais ça n'ira pas forcément beaucoup plus loin : comme les miroirs sont sales, au bout d'un moment, on ne verra plus vraiment le miroir en face : les réflexions suivantes ne compte plus du tout dans la couleur que vous voyez.
C'est exactement ça que POV-Ray fait : quand il détecte que, quelle que soit la couleur du rayon réfléchit, ça n'aura aucun (ou presque) impact sur la couleur finale, il décide tout simplement de ne pas la calculer.
Cette propriété est vraiment très efficace lorsque vous avez beaucoup d'objets réfléchissants qui se reflètent mutuellement, car vous économiserez ainsi des années de temps de calcul ;)
Pour utiliser cette option, très facile :
Code : Autre
1
2
3
global_settings {
  adc_bailout 1/255
}

La valeur à mettre est la proportion de la couleur totale, qui servira de limite à POV-Ray : en mettant 1/255 (qui est la valeur par défaut), vous êtes sûrs que, dès qu'un rayon ne peut pas changer la couleur finale du pixel de plus de 1/255 de sa valeur maximale, il sera tout simplement oublié. Or, 1/255 correspond à la précision de la plupart des formats d'images : de tout manière, ce genre de modification n'aurait donc pas été enregistré ! ^^

Charset

Enfin, Charset permet de préciser l'encodage des textes utilisés.
Là, c'est simple, il vaut mieux dans tous les cas utiliser utf8, cela permet d'utiliser à peu près tous les caractères que vous connaissez...
Si vous souhaitez utiliser du texte avec des accents, en particulier, cela vous sera probablement utile ;)

Code : C
1
2
3
global_settings {
  charset utf8
}


Pas trop dur j'espère ! :D

Q.C.M.

Que règle ambient_light ?
Si j'ai une scène avec beaucoup d'objets en verre (transparents et réfléchissants) il me faudra une valeur de max_trace_level :
Où faut-il mettre toutes ces options ?

Statistiques de réponses au QCM

Vous connaissez à présent les principaux paramètres globaux... Mais bien d'autres existent !
Nous allons très bientôt en voir certains, qui permettront de faire mille fois plus de choses que ceux-ci !!
Un peu de patience, mes petits, vous approchez de la toute puissance de POV-Ray...
Chapitre précédent Sommaire Chapitre suivant

Partager

2 commentaires pour "Global_settings"
Note moyenne : 3.96 / 4 (24 votes)
Pseudo Commentaire
Hors ligne guiguiiom # Posté le 11/05/2009 à 18:34:12
Sapere aude ("Ose penser")
Avatar

Merci beaucoup d'avoir continué ce tuto, parce que je commençais à désespérer. La communauté POV-Ray sur Internet est un peu morte (depuis 2000), et c'est donc dur de trouver des bons tutos.
Bon courage pour la suite, je l'attends avec impatience!

A quoi sert Internet Explorer?
Secret (cliquez pour afficher)
A télécharger Mozilla Firefox!! :p
.

Le manuel disait “Nécessite Windows XP ou mieux”. J’ai donc installé Linux.
.
 
Hors ligne Layus # Posté le 11/05/2009 à 22:15:01
!? encore un Layus...
Avatar

Études : Université catholique de Louvain

Cool, la suite du tuto.
Merci de l'avoir repris.

Je tournais un peu en rond et je me suis mis à blender, mais ca a pas autant de charme...

Celui qui reçoit une idée de moi reçoit un savoir sans diminuer le mien, tout comme celui qui allume sa bougie à la mienne reçoit la lumière sans me plonger dans la pénombre.
Thomas Jefferson
 

Voir tous les commentaires