From BlenderWiki
Traduction effectuée d’après cette révision de la version anglaise.
[edit] Ombres Spot “buffered”
Les lampes Spot peuvent utiliser soit les ombres ray-tracées, soit les ombres buffered (~“[mises en] tampon”). Toutes deux fournissent des options particulières. Les ombres ray-tracées sont généralement plus précises, avec des possibilités supplémentaires comme les ombres transparentes, mais elles sont également relativement plus lentes à rendre. Les ombres buffered sont plus complexes à régler et impliquent plus de simulation, d’approximation, mais la vitesse de rendu en est un avantage clef. Quoi qu’il en soit, elles partagent avec d’autres types de lampes des options d’ombrage commune, décrites ici.
[edit] Ombres “buffered”
- Buf. Shadow
- Quand le bouton Buf Shadow est activé, la lampe Spot actuellement sélectionnée projette des ombres en utilisant un “tampon d’ombrage” (“shadow buffer”) plutôt que le ray-tracing.
Quand le bouton Buf Shadow est activé, diverses options supplémentaires apparaissent dans le panneau Shadow and Spot. Voici une description de la plupart de ces options :
- Type de génération des ombres buffered
- Blender peut générer des ombres buffered de plus d’une manière. Cette liste déroulante vous permet de choisir quelle méthode utiliser à cette fin.
- Il y a trois types de génération d’ombres buffered, qui sont les suivants :
- Classical
- Classic-Halfway
- Irregular
- La méthode Classical était précédemment l’unique manière de générer des ombres buffered disponible dans Blender. Elle utilise un ancien algorithme, qui pouvait présenter des problèmes de précision dans les ombres générées, et était extrêmement sensible aux réglages ShadowBufferSize et Bias, ainsi qu’au problème de l’auto-ombrage associé. Il semble que la méthode Classical de génération des ombres buffered soit en voie d’être déclarée obsolète, et ne reste proposée que pour la compatibilité avec d’anciennes versions de Blender – vous devriez probablement plutôt utiliser la méthode Classic-Halfway.
- Classic-Halfway est une méthode améliorée d’ombres buffered – elle est actuellement proposée par défaut dans Blender. Elle fonctionne en prenant la moyenne des deux plus proches valeurs de Z-profondeur, ce qui permet de réduire la valeur de Bias sans (trop) souffrir des problèmes d’auto-ombrage (NdT : phrase originale : “It works by taking an averaged reading of the first and second nearest Z depth values allowing the Bias value to be lowered and yet not suffer as much from Self-Shadowing issues”). Ne pas avoir à augmenter Bias améliore la précision des ombres, car de grandes valeurs de Bias peuvent entraîner la non-projection d’ombres par les petites surfaces, en plus d’éloigner les ombres de leur objet émetteur.
- Classic-Halfway ne fonctionne pas très bien quand des faces se superposent, et des problèmes de décalages (“biasing problems”) peuvent survenir.
- Actuellement, l’option Halo Step ne fonctionne pas bien dans certains cas. En particulier, quand vous utilisez des plans (pas des volumes), des erreurs peuvent se produire.
- La méthode de génération des ombres buffered Irregular est utilisée pour obtenir des ombres “dures”, aussi précises que des ombres raytracées. Cette méthode est très performante, car elle peut être appliquée en “multi-threadé” (c-à-d en tirant parti des processeurs multi-cœurs).
- Cette méthode supporte les ombres transparentes, en modifiant la valeur de Shad A :
- Pour utiliser les ombres portées transparentes Irregular, sélectionnez d’abord l’objet qui doit recevoir ces ombres transparentes. Puis modifiez sa valeur de Shad A, dans son panneau Material. Cela ne fonctionnera que lorsque les ombres buffered Irregular sont utilisées.
- Pour plus d’informations sur les différentes méthodes de génération des ombres buffered, suivez ces liens :
- www.blender.org/development/release-logs/blender-243/irregular-shadow-buffer/ (en)
- www.blendernation.com/2006/10/15/blender-gets-irregular-shadow-buffers/ (en)
- www.blender.org/development/release-logs/blender-243/shadow-buffer-halfway-average/ (en)
En fonction du type de génération choisi, certaines des options décrites ci-dessous ne seront pas disponibles.
- ShadowBufferSize
- Le champ numérique ShadowBufferSize peut prendre une valeur entre 512 et 10240. Il représente la résolution utilisée pour créer la carte d’ombrage (“shadow map”), celle-ci étant ensuite utilisée pour déterminer où se trouvent les ombres dans une scène.
- Par exemple, si vous réglez ShadowBufferSize à 1024, vous indiquez que les données d’ombrage de la lampe Spot courante seront écrites dans un tampon (une “image”) de 1024×1024 pixels/échantillons.
- Plus la valeur de ShadowBufferSize est élevée, plus les ombres produites sont précises, bien définies, tous réglages égaux par ailleurs, mais les calculs sont d’autant plus longs et gourmands en mémoire. L’inverse est également vrai, plus la valeur de ShadowBufferSize est faible, moins les ombres seront bonnes et précises, et plus les calculs sont rapides et économes en mémoire…
- Les images ci-dessus montrent les effets de différentes valeurs de ShadowBufferSize sur la qualité des ombres portées. Le filtrage (anti-aliasing) à la génération des ombres y a été désactivé (Samples à 1), afin de rendre plus visible la dégradation de la qualité des ombres.
- De même que ShadowBufferSize affecte directement la qualité des ombres générées, il y a un autre réglage des lampes Spot qui influence indirectement la qualité des ombres buffered : sa “largeur” (son angle d’ouverture, SpotSi).
- Voici ci-dessous quelques exemples d’ombres buffered avec une même valeur de ShadowBufferSize, mais différents SpotSi :
- À mesure que SpotSi augmente, vous pouvez constatez que la qualité des ombres portées se dégrade.
- Cela s’explique facilement : quand vous élargissez la zone éclairée par une lampe Spot (en augmentant SpotSi), la zone couverte par le tampon d’ombrage doit “s’étirer” pour suivre cet élargissement. Or la résolution ShadowBufferSize n’évolue pas pour compenser cela, donc la qualité (la “définition”) des ombres se dégrade. Si vous voulez conserver une qualité constante de vos ombres buffered quand vous augmentez la valeur SpotSi, vous devez également augmenter la valeur de ShadowBufferSize.
- Ce qui précède peut se résumer ainsi :
- Si vous avez une large lampe Spot, vous aurez besoin d’une grande valeur de ShadowBufferSize pour obtenir des ombres de qualité. L’inverse est également vrai, plus votre spot sera étroit, plus la qualité des ombres s’améliorera (jusqu’à un certain point).
- Box
- le bouton Box indique que les ombres générées par les méthodes buffered seront lissées (anti-aliasing) par la méthode de filtrage “boîte”.
- Il s’agit du filtrage historique de Blender, d’assez mauvaise qualité et surtout utilisé pour les rendus basse résolution. Il produit un lissage très “dur”, ne prenant en compte que les données de sur-échantillonnage contenues dans le “pixel” concerné, sans s’occuper des voisins. Il est souvent utile pour les images contenant beaucoup d’éléments anguleux et de lignes horizontales/verticales (d’après arkavision.com/?page_id=125).
- Tent
- le bouton Tent indique que les ombres générées par les méthodes buffered seront lissées (anti-aliasing) par la méthode de filtrage “tente”. Il s’agit d’un filtrage simple donnant des résultats assez “durs”, d’usage très général. Il tient compte des valeurs d’échantillonnage des “pixels” voisins quand il calcule la valeur “filtrée” de l’un d’entre eux.
- Gauss
- le bouton Gauss indique que les ombres générées par les méthodes buffered seront lissées (anti-aliasing) par la méthode de filtrage “Gauss”. Elle donne un résultat très doux/flouté. Cela fait de ce filtrage un excellent choix pour les rendus en haute résolution.
- Plus d’informations sur les méthodes de filtrage ?
- Les liens suivants vous donneront plus d’informations sur les diverses méthodes de filtrage/distribution, et leurs usages :
- Samples
- Le champ numérique Samples peut prendre une valeur comprise entre 1 et 16. Il contrôle le nombre d’échantillons (samples) pris par pixel lors du calcul des cartes d’ombrage.
- Plus cette valeur sera élevée, plus les ombres projetées par la lampe courante seront filtrées, adoucies, “anti-aliasées”… mais plus elles seront longues à calculer (et consommeront de mémoire). La méthode de filtrage utilisée est déterminée par l’activation de l’un des trois boutons au-dessus (Box, Tent ou Gauss).
- Comme montré ci-dessus, plus le nombre de Samples augmente, plus les bords des ombres deviennent lisses, doux (moins d’effet d’escalier). Avoir un Samples à 1 revient à désactiver l’anti-aliasing des ombres buffered.
- Soft
- Le champ numérique Soft peut prendre une valeur comprise entre 1 et 100. Il indique la “largeur” de la zone échantillonnée pour l’anti-aliasing des ombres buffered. Plus Soft est élevée, plus la zone de transition entre ombre et lumière, sur les bords des ombres projetées, sera large et douce.
- Vous pouvez constater ci-dessus que, plus la valeur de Soft augmente, plus les bords des ombres sont adoucis, flous, dégradés. Dans cet exemple, l’effet d’aliasing (d’escalier) est exagéré en jouant sur les valeurs de SpotSi et ShadowBufferSize, afin de rendre plus évidents les effets du champ Soft.
- Bias
- Le champ numérique Bias peut prendre une valeur comprise entre 0.001 et 5.0. Ce réglage est utilisé pour ajouter un léger décalage entre un objet et l’ombre qu’il projette. Cela est parfois nécessaire, à cause de l’imprécision des calculs déterminant si une zone d’un objet est dans l’ombre ou pas. Réduire Bias diminue la distance entre un objet et son ombre. Mais si la valeur de Bias est trop faible, cela peut entraîner des artefacts (lignes, motifs d’interférence…) sur certains objets. Ce problème est souvent appelé “auto-ombrage” (“self-shadowing”), et peut généralement être résolu en augmentant la valeur de Bias, qui est justement là pour ça ! Vous pouvez également essayer de corriger ce problème en augmentant ShadowBufferSize, ou en utilisant une autre méthode de génération des ombres buffered (comme Classic-Halfway ou Irregular).
- Les images ci-dessus montrent les effets de différentes valeurs de Bias. Avec un Bias à 0.001 la scène est pleine d’interférences d’auto-ombrage, mais l’ombre projetée par la sphère est très proche de celle-ci. Avec un Bias à 0.100, la plupart des artefacts d’auto-ombrage ont disparus (mis à part quelques petites zones sur la sphère), mais l’ombre de la sphère s’est déjà légèrement décalée sur la gauche. Avec des Bias à 0.500 et 1.000, l’ombre projetée par la sphère est franchement à gauche de celle-ci, et il n’y a plus de problème d’auto-ombrage.
- Les artefacts d’auto-ombrage ont tendance à toucher plutôt les surfaces courbes que les planes, ce qui signifie que si votre scène contient beaucoup de surfaces courbes, il pourrait être nécessaire d’augmenter les valeurs de Bias et/ou de ShadowBufferSize.
- Utiliser de hautes valeurs de Bias n’entraîne pas seulement un éloignement des ombres projetées de leurs objets émetteurs, mais peut aussi avoir pour conséquence que les objets très petits ne projettent plus aucune ombre ! Pour résoudre ce problème, il vous faudra peut-être modifier les valeurs de Bias, ShadowBufferSize, et/ou SpotSi, entre autre…
- Halo Step
- Le champ numérique Halo Step peut prendre une valeur comprise entre 0 et 12. Il est utilisé pour déterminer si ce Spot projettera des “ombres volumétriques”, et le cas échéant, la qualité de celles-ci.
- Ci-dessus, un exemple de rendu montrant une ombre volumétrique.
- Pour obtenir des ombres volumétriques, vous devez avoir le bouton Halo activé, ainsi qu’une valeur de HaloInt suffisamment forte pour que cet effet soit visible. Une fois que ces conditions ont été réunies, vous pouvez modifier Halo Step pour contrôler la qualité des ombres volumétriques.
- Si Halo Step est réglé à 0, les ombres volumétriques sont désactivées.
- Au contraire de la majorité des réglages, la qualité des ombres volumétriques diminue (mais elles sont calculées plus rapidement) à mesure que la valeur de Halo Step augmente, et réciproquement.
| Valeur de HaloStep: | |
| Une valeur de 8 pour Halo Step est généralement un bon compromis entre vitesse et précision. |
- ClipSta & ClipEnd
- Quand une lampe Spot avec ombres buffered est ajoutée à une scène, une ligne supplémentaire apparaît dans sa représentation, comme montré ci-dessous :
- Le point de départ du segment représente la valeur de ClipSta, et son extrémité opposée, celle de ClipEnd. ClipSta peut prendre une valeur comprise entre 0.10 et 1000, et ClipEnd, entre 1.0 et 5000 – ces deux valeurs étant exprimées en unités Blender.
- ClipStart (~“limite initiale”) indique le point au-delà duquel les ombres buffered peuvent être projetées par la lampe Spot. Toute ombre projetée qui aurait pu être présente, mais plus proche de la lampe, sera ignorée (aucune ne sera générée).
- ClipEnd (~“limite finale”) indique le point au-delà duquel plus aucune ombre buffered ne sera projetée par la lampe Spot. Toute ombre projetée qui aurait pu être présente après ce point sera ignorée (aucune ne sera générée).
- Seule la zone comprise entre ClipSta et ClipEnd pourra générer des ombres buffered.
- Modifier ClipSta et ClipEnd aide à contrôler où les ombres sont générées. Altérer cette “zone de génération” peut permettre d’accélérer le rendu, économiser de la mémoire, et/ou améliorer la précision des ombres.
- Quand vous utilisez une lampe Spot avec ombres buffered, pour conserver ou améliorer la qualité des ombres projetées, il est utile d’ajuster ClipSta et ClipEnd afin qu’ils “encadrent” au plus juste la zone où vous souhaiter que les ombres soient générées – réduire cette zone aide à améliorer la qualité des ombres.
- ClipStart & ClipEnd automatiques
- Au lieu de régler manuellement ClipSta et ClipEnd pour contrôler où les ombres buffered sont générées, vous pouvez laisser Blender choisir les meilleurs valeurs, indépendamment pour chacun de ces deux réglages.
- Blender fait cela en déterminant les distances maximales/minimales des vertices visibles du point de vue de la lampe Spot.
- SampleBuffers: 1, 4, 9
- Le réglage SampleBuffers peut valoir 1, 4 ou 9, et représente le nombre de tampons d’ombrage qui seront utilisés lors du filtrage des ombres buffered.
- Plus ce nombre est élevé, plus l’anti-aliasing sera doux, mais l’utilisation mémoire sera directement proportionnelle : pour un ShadowBufferes à 4, quatre fois plus, etc. En plus de cet aspect “mémorivore”, les temps de calcul augmenteront également… mais vous obtiendrez un bien meilleur filtrage, surtout pour les ombres des petits objets en mouvement.
- Il semble que cette option soit utilisée dans des cas particuliers, avec de très petits objets en mouvement devant générer des très petites ombres (comme des strands, “mèches” de cheveux). Il semble qu’en temps normal, les ombres ayant une taille (ou largeur) de l’ordre du pixel ne sont pas correctement “anti-aliasées”, sans que l’augmentation de ShadowBufferSize y puisse quoi que ce soit.
- Voici un message de Ton Roosendaal à propos des raisons de l’existence de cette options (tiré des logs de discussion, et traduit) :
- Problème:
- > Aliasing temporel des ombres “buffered” quand de petits détails bougent
- > (comme des “strands”).
- >
- > Dans ce cas, augmenter simplement la taille du tampon d’ombrage ne marche pas,
- > car les “strands” ont une largeur d’un pixel. D’énormes tampons d’ombrage
- > font quasiment disparaître les ombres des “strands”. Donc… la résolution
- > du tampon d’ombrage ne doit pas être trop élevée.
- >
- > Au lieu d’augmenter la taille du tampon, nous pouvons en créer plusieurs,
- > chacun sur une “position de sous-pixel” différente (un peu comme pour “FSA” :).
- >
- > Donc ! L’échantillonnage du tampon d’ombrage fonctionne comme suit :
- >
- > 1) Vous prenez plusieurs échantillons dans le tampon d’ombrage, à différents
- > emplacements à l’intérieur (ou au voisinage) du pixel concerné.
- > Cette option était déjà disponible grâce au bouton “Samples” des lampes.
- >
- > 2) Vous réglez le nombre de tampons d’ombrage. Il est par défaut à 1,
- > mais peut être de 4 ou de 9.
- >
- > Vous pouvez voir les résultats avec “4” ou “9” tampons ici :
- > http://www.blender.org/bf/filters/index3.html
- >
- > En fait, les tampons d’ombrage profonds (“deep shadowbuffers”) pourraient
- > probablement aussi résoudre ce problème! “Anyhoo…”
Pas clair
Je ne comprends pas très bien comment les ombres SampleBuffers et Irregular fonctionnent, donc si quelqu’un a plus d’infos et peut rendre les choses plus claires, contactez-moi et je mettrai à jour cette page, ou faites-le vous même (dans la version originale !) – ceci est aussi valable pour tout autre problème que vous pourriez détecter… Terrywallwork - 3 Oct 2008, Mont29 14:31, 20 June 2009 (UTC)
|
[edit] Exemples
Ci-dessous, divers exemples utilisant une sphère solide émettant une ombre portée sur un objet plan. Notez comme les différents réglages affectent l’ombre portée. Vous avez de tout, de l’ombre très dure à celle très douce.
[edit] Astuces
Tout objet peut, dans Blender, agir comme une caméra dans la vue 3D. Vous pouvez donc sélectionner la lampe Spot et passer à une vue de son point de vue en pressant Ctrl NumPad 0. Ce que vous verrez, en mode ombré, est montré par (Amélioration du clipping de la lampe Spot).
L’image de gauche montre un ClipSta: trop élevé, celle du centre est bien réglée, et celle de droite montre un ClipEnd: trop faible. Tout objet plus près de la lampe Spot que ClipSta: ou plus éloigné d’elle que ClipEnd: n’est pas du tout affiché. Vous pouvez donc régler finement ces valeurs en vérifiant que tous les objets émettant des ombres sont visibles.
[edit] Voyez aussi















![[]](/skins/blender/open.png)
