Maîtriser les Ombres
par

Introduction


Les débutant sont souvent déroutés lors de leurs premiers rendus. Ils pensent habituellement qu'il leur suffit de créer un modèle et de lui donner un matériau pour que l'image soit rendue, oubliant qu'une source de lumière, à l'instar de la lampe, est nécessaire à l'obtention d'autre chose qu'un simple écran noir. Une fois ce premier détail assimilé, ils se demandent certainement pourquoi il n'y a pas un brin d'ombre dans leur scène.

Ce didacitiel est entièrement dédié à la création d'ombres (ce qui est assez facile) et à leur donner l'aspect qu'elles devraient avoir (ce qui peut vite devenir plus complexe).
 
Une chouette image de débutant...
...transfigurée par l'utilisation d'un EnvMap sur le sol et, bien sûr, la mise en oeuvre d'ombres portées!

Note au sujet de cette scène : le thème de cette scène est d'une façon ou d'une autre inspiré des travaux photoréalistes exceptionnels menés par Manu Batôt sur sa propre page web. Le modèle des bottes provient de Michael's Blender Website.
 

Générer des ombres


Il existe quelques pré-requis à satisfaire avant que Blender ne soit capable de générer des ombres. Ils ne seront plus rappelés au cours de ce didacticiel.

Dans les Boutons Matériau (Touche F5):


Dans les Boutons de Lampe (Touche F4) :

Dans les Boutons de Rendu (Touche F10) :

Connaissances de base


Afin de calculer ses ombres portées, Blender utilise l'algorithme du Tampon d'Ombre. Cela implique que la scène est rendue du point de vue du Spot, et que Blender calcule quel objet est placé devant quel autre dans son champ de vision, définissant ainsi quels pixels, 'cachés' à la vue du spot/caméra par un autre objet, recevra une ombre portée lors du rendu final.

La façon dont cela fonctionne pourrait être expliquée ainsi, même si mes explications ne sont pas très précises et mettent en oeuvre des mécanismes de calcul spécifiques (comme l'enregistrement de la distance d'un pixel donné par rapport au Spot, par exemple) : dans notre illustration en exemple, voici un rendu depuis le Spot de ce que pourrait être l'ombre générée pour la botte du premier plan. En supposant que les valeurs de lumière (en blanc) sont rejetées, cette image pourrait être utilisée pour 'habiller' les objets situés derrière la botte, avec l'origine du Spot comme coordonées de l'origine de la texture, et avec la couleur de l'ombre s'ajoutant à la couleur de base de l'objet.

Bien sûr, s'il y a plusieurs Spots dans la même scène, Blender effectue autant de rendus de la scène que nécessaire, depuis le point de vue de chaque Spot, et stoque le résultat dans son tampon d'ombre afin d'allouer un paramètre d'ombre ou de lumière à chaque pixel du rendu final. C'est la raison pour laquelle de multiple Spots ajoutent systématiquement au temps de rendu d'une image.

Avec tout ceci en tête, il devient facile de comprendre comment les boutons et curseurs essentiels des Boutons de Lampe (Touche F4) fonctionnent. En fait, les paramètres dont nous allons discuter ci-après sont à régler individuellement pour tous les Spots d'une scène donnée.
 

Taille du Tampn d'Ombre (Size of the shadow buffer) (BufSi)


Ainsi que nous l'avons vu précédemment, les informations selon lesquelles les pixels reçoivent de l'ombre ou de la lumière sont stoquées dans un tampon, presque exactement de la même façon qu'une image est rendue. Cela veut dire que le tampon d'ombre possède sa propre résolution, qui peut être spécifiée selon les résultats que vous recherchez. Par défaut, la taille du tampon de Blender est de 512x512 pixels.
 
BufSI réglé à 512
Zoom: L'ombre présente une frontière irrégulière

Ce type d'effet est satisfaisant lorsque la caméra de l'image finale n'est pas trop proche des ombres, car à partir d'une certaine distance, il est difficile de dire si les ombres présentent des frontières irrégulières.
 
BufSi réglé à 2048
Zoom: La frontière de l'ombre est parfaitement régulière

Bien sûr, lorsque vous augmentez la taille du tampon, les frontières de l'ombre deviennent plus précises, plus propices pour saisir les objets et leurs ombres d'assez près. BufSi fonctionne selon la même philosophie que la résolution d'une image rendue.
 

Taille du Spot (Size of the Spot) (SpotSi)


L'angle du faisceau de votre Spot a également une influence sur l'apparence irrégulière de votre ombre. J'ai rendu les images précédentes avec un SpotSi réglé à 120.00 degrees.
 
BufSi réglé à 512, mais SpotSi réglé à 120.00 degrés
Zoom: Ainsi que nous l'avons déjà vu, l'ombre est irrégulière

Maintenant voyons comment se passe le rendu avec un faisceau plus étroit, réglé à 60.00 degrés.
 
BufSi réglé à 512, mais SpotSi réglé à 60.00 degrés
Zoom: L'ombre portée est plus progresive, mais moins qu'avec un BufSi supérieur

Il est désormais clair que plus l'angle du faisceau est étroit, plus les frontières de l'ombre seront régulières. Il y a une première conclusion à cela: avant de donner à BufSi une valeur élevée, améliorez tout d'abord la qualité de vos ombres en fixant SpotSi à une valeur aussi faible que possible ! Vous économiserez ainsi à la fois de la mémoire et du temps de rendu ! On pourait dire que SpotSi est analogue à la lentille (la valeur Lens) d'une caméra ou d'un appareil photo.
 

Echantillonnage (Samples)


Dans les rendus précédents (BufSi réglé à 512, SpotSi réglé à 60.00 degrés) nous pouvons voir que les ombres sont douces, mais peut-être pas assez. Avant d'essayer d'augmenter BufSi, nous allons essayer de donner au nombre d'échantillons d'ombre une valeur plus élevée.
 
BufSi réglé à 512, SpotSi réglé à 60.00 degrés et Samples fixé à 3
Zoom: L'ombre est presque acceptable
BufSi réglé à 512, mais SpotSi réglé à 60.00 degrés et Samples fixé à 5
Zoom: Les bords de l'ombre sont anti-aliasés

Il est très difficile de dire à première vue la différence entre Samples 3 et Samples 5, mais en regardant les zooms de plus près, il devient évident que les bords de l'ombre ont été adoucis. En fait, on pourrait dire que Samples fonctionne de la même façon que l'oversampling (OSA).

Conclusion intermédiaire


Vous avez maintenant une meilleure compréhension de la façon dont les ombres portées sont générées avec la meilleure qualité possible. Vous avez compris que si BufSi est la clé de voûte de cette qualité, il s'agit également de la façon la plus brutale et la plus malpropre de l'atteindre, car c'est celle qui consomme le plus de mémoire. De façon empirique, arrêtons la stratégie suivante :

Avec ceci à l'esprit, à peu près 70% de vos rendus bénéficeront du meilleur rapport qualité/temps-de-rendu. Si vous avez suffisamment de mémoire RAM et si le temps n'est pas un facteur déterminant pour vous (c'est à dire si vous traitez des images statiques, plutôt que des animations), alors vous pouvez fixer BufSi à la valeur élevée de votre choix. Un BufSi élevé combiné à un étroit SpotSi et à un Samples élevé donnent bien sûr les meilleurs résultats.
 
BufSi réglé à 2560, SpotSi réglé à 60.00 degrés et Samples fixé à 5
Zoom: C'est à vous de décider si vous avez réellement besoin d'une ombre portée de cette qualité !

Affiner le réglage de vos ombres

Le bouton "Only Shadow" et la valeur "Energy"


Jusqu'à présent, nous avons utilisé notre Spot pour générer à la fois de l'ombre et de la lumière. C'est pour cela que, dans nos derniers rendus, nous pouvons voir la forme du spot lumineux se découper sur le sol et les murs. La plupart du temps, ce n'est pas l'effet recherché. A la place, vous souhaiteriez dissocier les ombres de la source lumineuse. C'est très facilement réalisable : mettez en place quelques Lampes (ou Hemis, ou Suns, ou tout ce que vous voulez) pour éclairer l'intégralité de votre scène. Ajoutez ensuite quelques lampes Spot (idéalement, un Spot pour chaque objet pour lequel vous voudriez voir une ombre portée, ou au moins un par groupes d'objets rapprochés devant projeter des ombres) pour lesquelles vous activez le bouton "Only shadow" en plus du bouton "Shadows". Et voilà ! Vos Spots ne projètent plus que des ombres, et n'ajoutent pas à la luminosité de la scène !
Malheureusement, la profondeur de l'ombre augmente de façon dramatique. Afin de compenser ce phénomène, vous pouvez jouer sur la valeur Energy du Spot. De façon empirique, une valeur moitié moindre donne à peu près le même résultat qu'un Spot générant à la fois de la lumière et des ombres. Mais parfois, vous préférerez avoir des ombres aussi profondes !
Lampe, Spot avec "Only shadow" activé et Energy du Spot fixé à 1.000
Pareil, mais avec Energy du Spot fixé à 0.500

"ClipSta" et "ClipEnd"


Ces deux paramètres décident de la façon dont l'ombre et la lumière sont traités dans le faisceau du Spot. Ils sont matérialisés par un segment rose indiquant la direction du Spot, comme dans l'exemple ci-dessous :

En fait, toute face d'un maillage donné plus proche du Spot que ne le tolère la valeur ClipSta reçoit toujours de la lumière, et toute face d'un maillage donné au-delà de la valeur ClipEnd reçoit toujours de l'ombre. Toute face d'un maillage donné, n'importe où entre ces deux valeurs, voit ses pixels se faire attribuer une valeur d'ombre ou de lumière conformément aux informations stoquées dans le tampon d'ombre.

Il y a deux règles que vous devriez toujours suivre afin de d'obtenir les meilleures ombres possibles :

Douceur (Soft)


Ce paramètre définit la taille de la surface à être échantillonnée (voir Echantillonnage, précédemment). Plus cette valeur est élevée, plus les ombres sont adoucies. Dans tous les rendus précédents, Soft avait été fixé 3.00, mais vous pouvez voir ci-après ce que deviennent les mêmes images avec des valeurs supérieures ou inférieures.
 
Zoom: BufSi 512, Soft 1.00
Zoom: BufSi 512, Soft 5.00
Zoom: BufSi 512, Soft 10.00
Zoom: BufSi 512, Soft 20.00

Utiliser une valeur de Soft comme 3.00 se révèle parfait la plupart du temps, aussi devrait-elle être utilisée comme valeur par défaut à chaque fois que cela est approprié. Des valeurs plus élevées adoucissent les ombres à l'extrême, rappellant les ombres extrêmement diffuses que l'on découvre lorsque la lumière est émise par de grandes surfaces (comme les grands néons blancs des supermarchés, par exemple).
 

Distorsion (Bias)


Des motifs étranges apparaissent parfois lorsque Bias est fixé à une valeur faible et que l'écart entre ClipSta et ClipEnd est également bas (ce qui est généralement recommandé). Afin de prévenir ceci, vous devriez toujours fixer Bias à la plus grande valeur possible.
 
Bias réglé à 0.01
Bias réglé à 1.00
Bias réglé à 3.00
Bias réglé à 5.00
Les motifs sont clairement visibles lorsque Bias est fixé à 0.01 et sont progressivement atténués lorsque ce paramètre est augmenté. Il m'est difficile de dire si le motif est toujours présent dans le rendu avec le Bias réglé à 3.00, mais l'image me semble un tout petit peu plus sombre que celle avec un Bias de 5.00. Vous êtes perdus ? Ce n'est pas grave! Fixez à Bias à 5.00 et n'y pensez même plus!
 

Conclusion finale


Vous êtes maintenant intimement familier avec la façon de générer les ombres portées dans Blender. Avec un peu de temps, vous jouerez avec les concepts d'ombre et de lumière sans même y penser, et vous améliorerez la qualité et le réalisme de vos images de 100%. Mais avant d'en arriver là, restez simples et prévisibles:

Bon rendu d'images !