Blender 2.80 : présentation des nouveautés Les festivités des versions 2.8x débutent avec plus de 280 nouveautés :) Temps de lecture : ~25 min

Cycles

De nouveaux Shaders

Principled Hair BSDF

Un nouveau shader vient grandement simplifier la création de matériau pour les cheveux: au lieu d’un ensemble de nœuds (relativement complexe).

La couleur des cheveux peut être spécifiée avec de le paramètre Melanin(e) pour correspondre aux couleurs naturelles des cheveux humains, ou tinted (teintée) pour simuler des cheveux teints. Un contrôle fin de la rugosité permet de simuler différents types de fourrure d’animaux, et les contrôles pour ajouter de l’aléatoire ajoutent du réalisme.

Melanin variations (par Chris Chuipka)

Principled Volume Shader

Moins attendu que le précédent, ce nouveau shader reste très bienvenu pour simplifier les matériaux de feu et fumée et gagner du temps.

Ces matériaux sont gérés simultanément avec un seul nœud, ce qui inclut la diffusion (scattering), l’absorption, et l’émission de type corps noir.

Cryptomatte

La 2.80 voit l’ajout d’un standard de création de passes pour le compositing, Cryptomatte.

Cycles fourni directement les passes de rendu, utilisée dans le module de compositing (ou n’importe quel autre logiciel supportant Cryptomatte) pour créer des masques par objet.

C’est une amélioration des systèmes précédents (passes Object et Material ID):

  • Les objets servant à créer un masque n’ont plus besoin d’être paramétrés en avance, mais sont choisis au compositing. Ce qui est effectivement beaucoup plus rapide, souple, et n’oblige pas à relancer un rendu.
  • Le flou de mouvement (motion blur), la profondeur de champ (depth of field ou DoF), la transparence, et l’antialiasing sont mieux supportés.

La façon de l’utiliser typique est:

  • Activer la passe de rendu Cryptomatte Object dans le panneau des Passes, et réaliser un rendu;
  • Créer un nœud de compositing Cryptomatte et y lier les sorties Image et Crypto du calque de rendu;
  • Attacher un nœud Viewer à la sortie Pick du nœud Cryptomatte;
  • Utiliser dans ce nœud le bouton Add/Remove pour sélectionner des objets dans le nœud Pick Viewer;
  • Utiliser la sortie Matte de Cryptomatte pour obtenir un masque alpha.

Le tout est illustré par cette image:

Un exemple, avec :

L’image de base
La vue Picking View
Le masque (ou Matte)
Et l’objet final séparé du reste

Random Walk Subsurface Scattering

Mais quel est donc ce nom barbare ? Et bien c’est un nouvel algorithme de calcul du SSS, basé sur des marches aléatoires Il a l’avantage de donner un rendu plus précis des détails pour les géométries fines et courbées, au prix d’un temps de rendu supérieur.

Il vient s’ajouter aux algorithmes déjà disponibles pour le calcul du SSS.

NB: L’algorithme Random Walk utilise la diffusion dans le volume du maillage, ce qui fait qu’il fonctionne au mieux dans des maillages fermés. Des faces qui se recoupent et les trous du maillage peuvent poser des problèmes.

Subdivision et outils de Vector Displacement

Un nouvel algorithme permet de réduire le découpage des géométries hors champs de la caméra (le Dicing Rate). Autrement dit, la géométrie non affichée au rendu sera moins subdivisée, ce qui économise du temps de calcul (du cache) préalable et de la mémoire. Réduction d’autant plus forte que les objets sont loin du champs de la caméra.

On a donc automatiquement des économies importantes de mémoire sur des scènes contenant beaucoup de subdivision – en particulier si vous utiliser le Vector Displacement dont on parle juste après 😉

Sur cette image (utilisant le Vector Displacement) l’utilisation de la mémoire a été réduite par 5 sans différence visuelles. On est typiquement sur une scène très lourde en mémoire avec beaucoup de détails dans la géométrie.

Si vous utilisez le Displacement dans vos matériaux, il faudra maintenant utiliser le (nouveau) nœud homonyme.

nœud

NB: si vous ouvrez d’anciens fichiers (antérieurs à la 2.80), il sera automatiquement ajouté. Et oui, Blender est bien fait 😉

Ce nouveau nœud donne aussi un contrôle plus facile via de nouveaux paramètres.

Sans Vector Displacement, avec, et avec en exagérant l’effet, sur un maillage d’origine lisse.

Et Cycles supporte maintenant le Vector Displacement, via un nœud du même nom. Et ce n’est plus une fonction expérimentale 🙂

La différence avec un displacement classique ? Au lieu de travailler uniquement le long de la normale – «perpendiculairement» (orthogonalement pour être précis) à la surface, ce qui reste limité – il fonctionne sur les 3 axes (d’où son nom, « vectoriel »). Le résultat est donc plus précis et de meilleure qualité (en particulier si vu de près / en cas de fort déplacement).

Sachant qu’il est parfois intéressant de combiner les deux : un déplacement (réel) de la géométrie – lourd en calcul et en mémoire – avec le Vector Displacement, et l’ajout de petits détails via par exemple une normal map ou une bump map.

Pour l’espace de coordonnées d’application du déplacement, il y a deux options:

  • L’espace Objet, qui fonctionne pour des maillages statiques. C’est celui qui utilise le moins de mémoire et le plus rapide à rendre.
  • L’espace Tangent (Tangentiel) est utile pour des objets animés : il va suivre la transformation de l’objet au lieu d’utiliser ses coordonnées de base dans l’espace de l’objet (ce qui donnerait des résultats incohérents).

Bevel (biseau)

Un shader Bevel (biseau) a été ajoutée pour rendre des coins arrondis. Tout comme pour le bump mapping, cela ne modifie pas la géométrie réelle, seul l’ombrage est affecté. Un léger arrondi sur les bords permet de capturer des reflets spéculaires que vous verriez aussi dans le monde réel et qui donnent plus de réalisme à de nombreux objets (dont les angles sont rarement parfaitement durs).

Sans…
… et avec le shader Bevel. Le rendu est tout de suite plus qualitatif, sans toucher à la géométrie.

NB: il s’agit d’un shader très coûteux, qui peut ralentir les rendus de 20% même pour des scènes déjà complexe. Pour cette raison, il est suggéré de l’utiliser principalement pour du pré-calcul (baking) ou pour des rendus d’image fixe où le temps de rendu n’est pas un problème.
Le modificateur Bevel est une option plus rapide lorsqu’il fonctionne, mais il échoue parfois sur des géométries complexes ou bordéliques (essayez sur un scan 3D, vous allez rire 😉 ).

Occlusion Ambiante

L’occlusion ambiante propose maintenant en sortie une couleur ou un flottant (float), pour utiliser des textures procédurales. Cette sortie peut par exemple être utilisée pour ajouter des traces d’usures par les intempéries dans les coins seulement (zones typiques où ces traces s’accumulent).

NB: Comme pour le shader Bevel, c’est un shader coûteux qui peut ralentir les rendus de manière significative. Si le temps de rendu est un problème, l’utilisation de la sortie Pointiness à partir du nœud Geometry ou un pré-calcul de l’occlusion ambiante seront plus rapide.

Les nouveaux paramètres de ce shader sont :

  • Sample (Échantillons) : nombre d’échantillons à utiliser, garder aussi bas que possible pour une meilleure performance.
  • Inside (Intérieur) : détecter les formes convexes plutôt que concaves, en calculant l’occlusion à l’intérieur du maillage.
  • Only Local : ne détecte que l’occlusion de l’objet lui-même, et pas les autres.
  • Distance : distance pour tracer les rayons et détecter l’occlusion. Un paramètre qui augmente modérément le temps de rendu (mais peut changer de manière importante la qualité du rendu).
Rouille ajoutée dans les angles à partir de l’AO (modèle par Emiliano Colantoni)

Rendu GPU

De très attendues avancées (et de longue date) sont enfin là avec la 2.80 – le ménage du vieux code a fait du bien 🙂

  • Le tant attendu rendu combiné GPU+CPU a été ajouté ! 🎉
    Il est enfin possible de combiner directement la carte graphique et le processeur pour le rendu. Ce qui selon les configurations peut amener des gains conséquents de performances (cas d’un CPU puissant avec une carte graphique moyenne ou peu puissante) tout en évitant que le processeur ne se tourne les pouces pendant le rendu. Mais attention à la chauffe ! 😄
    Le nombre de cœurs CPU pour le rendu est automatiquement réduit pour s’assurer que le rendu GPU ne ralentit pas.
  • Les rendus CUDA (cartes Nvidia) n’ont plus besoin d’utiliser de grandes tuiles (tiles). Dans de nombreux cas, le rendu avec une taille de tuile de par exemple 32×32 sera en fait plus rapide. Lors de l’utilisation du débruitage (denoising), l’utilisation de grosses tuiles peut être un peu plus rapide, mais cela entraîne un coût élevé d’utilisation de la mémoire.
    Plus besoin de se casser la tête avec la taille des tiles !
  • Le rendu CUDA prend désormais en charge les scènes de rendu qui ne tiennent pas dans la mémoire de la carte graphique, mais peuvent être conservées dans la mémoire du CPU (la RAM).
    Cette fonction est automatique, mais son coût de performance dépend de la scène et du matériel. Lorsque les textures d’image ne tiennent pas dans la mémoire du GPU, il a été mesuré des ralentissements de 20 à 30 % dans les scènes de référence (probablement le benchmark officiel). Lorsque d’autres données de scène ne tiennent pas non plus sur le GPU, le rendu peut être beaucoup plus lent, au point qu’il est préférable de le faire sur le CPU. Ceci est dû au fait qu’il est très beaucoup plus rapide pour un GPU de faire des calculs que d’attendre pour un transfert de données depuis la RAM (au point qu’il vaut souvent mieux recalculer quelque chose que le stocker en mémoire).
    En résumé: plus de problème de rendu qui ne passe plus en GPU, mais attention à ne pas trop dépasser sinon il sera plus lent qu’avec un CPU !
  • Prise en charge de l’interpolation cubique avec images et volumes pour un rendu GPU.
  • Le rendu GPU CUDA ne prend plus en charge les cartes graphiques dotées des capacités de calcul 2.0 et 2.1, dont les GTX 480 et 580. Malheureusement, les derniers outils de développement de NVIDIA ont abandonné la prise en charge de ces GPU, et afin de prendre en charge les nouveaux GPU Volta et un rendu CPU plus rapide, il fallait mettre à niveau.
    CUDA n’est disponible plus longtemps en version 32 bits, pour des raisons similaires.
  • En raison des bugs du compilateur OpenCL et de l’arrêt du support d’OpenCL par Apple, il a été désactivé sur la plate-forme macOS.
    (Vous remercierez Apple de ne pas respecter ce standard… seules solutions: installer une carte Nvidia, ou changer de système d’exploitation)

Optimisations

  • L’algorithme de roulette russe a été amélioré, ce qui donne des résultats 10~30% plus rapides pour le même niveau de bruit. De plus le nombre minimal de rebonds est maintenant déterminé automatiquement.
    Sans le moindre effort, on a donc des gains de performance et moins de complexité à l’usage et apprentissage du logiciel ! 🎉
    NB: il est possible que pour obtenir le même résultat que sur des rendus pré-2.80 le nombre de samples et le clamp doivent être modifiés.
  • Meilleur échantillonnage des maillages émetteurs de lumière, proches de géométrie ou dans des volumes.
  • Le panneau Performance contient une nouvelle option Pixel Size (Taille du pixel) pour contrôler la résolution du rendu dans la vue 3D. Par défaut, les rendus de prévisualisation sur les affichages à haute résolution sont rendus à une résolution inférieure (pour préserver les performances).
    Notez que vous pouvez l’utilisez pour afficher en grand une vue 3D tout en rendant avec une plus faible résolution, mais plus vite. Par exemple, en le passant à 2x, le rendu sera ~2 fois plus rapide (50% de la résolution) tout en ne perdant que les détails du rendu.

Divers

  • Le Filter glossy et l’indirect light clamping sont maintenant activés par défaut.
  • Détection automatique de la résolution d’échantillonnage pour les textures d’environnement: Auparavant, on devait régler manuellement une résolution appropriée pour réduire le bruit, maintenant c’est automatique (pour les cas typiques, modifiable au besoin).
  • Le shader Glass (verre) peut maintenant être rendu comme s’il était (seulement) transparent, pour composer sur un fond. Ceci peut être activé dans le panneau Film, avec une option pour contrôler le niveau de rugosité de la transmission de lumière en dessous duquel le verre devient transparent.
  • Les lampes de type Area supportent maintenant les formes disque et ellipse.
  • Les rebonds d’AO dans le panneau Simplify rendent maintenant plus de rayons glossy et de rebonds de transmission que de rebonds diffus. Cela permet d’obtenir de bons résultats avec des réglages de rebonds d’OA faibles, ce qui est utile pour accélérer les rendus d’intérieur par exemple. Le facteur AO contrôle également l’intensité maintenant.
  • Le flou de mouvement de caméra et d’objet prend désormais en charge un nombre arbitraire d’étapes de mouvement (motion steps). On peut donc simuler des poses longues.
Un rendu de type «pose longue» avec de nombreuses motion steps.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *