Refactor du Grease Pencil - Blender Blog - Antonio Vazquez
En fin février, Antonio avait publié cet article intéressant sur un remaniement du code de rendu pour le Grease Pencil ( ici ) et cette semaine Pablo Vazquez en as parlé aussi dans son vidéo Blender Live #94 . Voici donc l'article en français. Désolé, pour le contretemps. 😊
- Christian Clavet
Avec la sortie de Blender 2.80, Grease Pencil n'est plus un simple outil d'annotation, mais un citoyen de première classe dans Blender.
Au fil des ans, depuis la création de la branche greasepencil-object, un certain nombre de problèmes ont commencé à se poser. Certains des problèmes étaient le résultat du développement de nouvelles fonctionnalités en plus de l'ancien code 2.7x (et 2.6!), Tandis que d'autres étaient liés à la conception du moteur de rendu, fait il y a longtemps. Il a été décidé de remanier le code afin d'avoir des bases solides qui permettraient une future croissance.
Il était clair que la refonte du moteur de dessin de Blender serait une tâche énorme. Pour de grandes réalisations, vous avez besoin de gens formidables, et heureusement, Clément Foucault (créateur d'EEVEE) est monté à bord! Le travail réalisé par Clément a vraiment poussé le Grease Pencil au niveau supérieur.
La liste des améliorations est énorme, voici une tentative de les énumérer toutes.
1. Refactor du moteur de dessin
La partie la plus visible du refactor de Grease Pencil est le moteur de dessin. Cela ne fait pas référence à l'expérience de dessin en soi, pensez-y comme un moteur de rendu qui prend en charge l'affichage des objets et des superpositions dans la fenêtre (et la sortie de rendu).
Le moteur de dessin précédent n'était tout simplement pas conçu pour gérer un type d'objet 2D comme le crayon gras.
1.1 Améliorations générales
Scène de pirate
Il est impossible de lister toutes les améliorations, voici quelques problèmes qui ont été résolus:
- Tous les problèmes d'anti-aliasing.
- Artefacts combinant des objets 3D avec des traits.
- Mélange de couleurs.
- Problèmes de modes de fusion.
- Toutes les incompatibilités macOS.
- D'innombrables bugs corrigés.
Tous les shaders de dessin ont été réécrits à partir de zéro, ce qui a permis d'améliorer considérablement la qualité et les performances de l'image.
Certaines scènes sont lues jusqu'à 100% plus rapidement, ce qui permet de créer des scènes plus complexes.
1.2 Gestion des couleurs
Grease Pencil suit désormais la gestion des couleurs de Blender et tout le code a été mis à jour pour fonctionner dans l'espace colorimétrique linéaire de la scène.
Cela signifie non seulement que les objets Grease Pencil se fondront avec la scène de manière plus naturelle, mais que les modificateurs d'effets, les modes de fusion et la précision de l'éclairage bénéficient également grandement de ce changement.
1.3 Éclairage
Illuminez votre scène d'une toute nouvelle façon.
Auparavant, un moyen de simuler l'éclairage était d'utiliser un type de modificateur d'effet Lumière. Cela fonctionnais, mais ce n'était pas une très bonne solution.
Grâce au refactor, les objets Grease Pencil sont désormais éclairés par des objets légers normaux. Peuvent répondre aux changements de couleur de la lumière, ouvrant un tout nouveau monde de possibilités pour mélanger 2D et 3D. La projection d'ombres n'est pas encore prise en charge, mais elle est prévue.
1.4 Nouveau système de masques
Nouveau système de masques.
Un bon masquage est indispensable pour tout logiciel 2D, Blender devait absolument s'améliorer dans ce domaine. Le système de masques précédent était très limité:
- Il a toujours utilisé toutes les couches ci-dessous.
- Les problèmes d'anticrénelage et de fusion ont conduit à des rendus de mauvaise qualité.
Le nouveau système vous permet de combiner des masques, en ajoutant beaucoup de flexibilité et il a également l'air beaucoup mieux grâce au nouveau moteur de dessin.
1.5 Effets améliorés
Utilisation de l'effet Rim et Flou animé.
Les modificateurs d'effets ont été réécrits pour améliorer la qualité et la vitesse, tout en ajoutant de nouvelles fonctions pour les rendre plus flexibles.
2. Nouveau mode Vertex Paint
Jusqu'à présent, pour avoir des couleurs différentes, un nouveau matériau devait être traité pour chaque couleur.
Pour les scènes simples, c'était bien, mais pour les scènes complexes, la liste des matériaux pouvait s'allonger beaucoup, parfois inutilement, par exemple lorsque les matériaux ne différaient que légèrement en couleur.
2.1 Couleurs de sommet
Nouveau mode Vertex Paint.
L'utilisation des couleurs de sommet vous permet de garder une petite liste de matériaux, mais d'avoir des couleurs infinies!
De plus, vous pouvez maintenant avoir un trait avec plusieurs couleurs! Cela était impossible auparavant car les traits étaient limités à une couleur par trait. Il est également compatible avec les pinceaux texturés afin que les possibilités soient encore plus grandes.
Ce nouveau mode est accompagné d'un ensemble d'outils pour améliorer la sensation de dessin, rendant le processus de création artistique plus naturel et familier avec d'autres logiciels de peinture 2D.
2.2 Améliorations de la palette de couleur
Utilisation de palettes pour définir les couleurs.
Avec la liberté de couleur vient le besoin de stocker des palettes. Blender avait déjà un support intégré pour les palettes, mais en termes de fonctionnalités, elles étaient un peu limitées.
Les améliorations suivantes ont été apportées:
- Nouvelle palette par défaut.
- Extraire la palette d'une image ou d'un objet crayon gras.
- Convertissez les matériaux en couleurs de sommet.
- Module complémentaire pour importer des palettes depuis Krita, GIMP ou Adobe Photoshop.
- Interface utilisateur améliorée pour une utilisation plus facile.
3. Performance
L'objectif du refactor n'était pas seulement d'améliorer le Grease Pencil au niveau visuel, mais de moderniser le code sous le capot pour une meilleure vitesse de lecture et une meilleure utilisation de la mémoire. Blender peut désormais gérer des scènes plus lourdes avec le même matériel.
3.1 Évaluation plus rapide des données == FPS plus élevé
Au cours de la refactorisation, certains problèmes ont été détectés dans l'ancienne mise en œuvre des structures internes et la façon dont les données étaient traitées.
Le code en charge de la mise à jour des données lors de la lecture et de l'évaluation des modificateurs a été réécrit à partir de zéro pour améliorer le scrubbing et offrir une meilleure expérience lors de l'animation.
Dans cet exemple, la lecture est désormais deux fois plus rapide.
Certains des changements incluent:
- Vitesse de lecture et balayage plus rapides.
- Démarrage plus rapide de la première lecture.
- Meilleure intégration avec le graphique des dépendances.
- Meilleure gestion de la mémoire.
- Meilleure évaluation des modificateurs.
- Meilleure gestion de plusieurs instances.
- Réponse plus rapide à l'aide de pinceaux multi-images dans des scènes complexes.
- Beaucoup de nettoyages de code et de petites améliorations.
3.2 Dessin plus fluide des traits rapides
Plus de lignes irrégulières lors du dessin avec des gestes rapides.
Pendant le dessin, vous faites souvent des gestes très rapides de la main. Sous Linux, ce n'était pas un problème, mais sous Windows, il y avait de très mauvais artefacts.
L'amélioration de la sensation de dessin et de la qualité des pinceaux est une tâche sans fin, et c'est la priorité absolue pour les futures versions.
3.3 Qualité du trait du stylet
Lignes lisses même dans les coups les plus serrés.
Les artefacts lors du dessin d'angles durs sont désormais résolus grâce aux nouveaux shaders, ce qui donne des lignes douces même dans les traits les plus serrés.
4. Les outils de sculpture et de pesage deviennent des pinceaux
Depuis que Grease Pencil a commencé comme un simple outil d'annotation en 2.4, lorsque des fonctionnalités telles que la sculpture et la peinture de poids ont été ajoutées à Grease Pencil, elles étaient en quelque sorte un hack pour simuler ce comportement plutôt que de vrais outils.
Avec ce refactor, Sculpt et Weight Paint sont maintenant de vrais pinceaux. Vous pouvez maintenant les lier/ajouter comme des pinceaux ordinaires. Ils ont été réécrits à partir de zéro pour améliorer la réponse dans les scènes complexes, en particulier lors de l'utilisation de l'édition multi-images.
Dans Weight Paint, le processus de peinture fonctionne de la même manière qu'avec les maillages. Le poids réel est mélangé avec le poids de la brosse.
5. Conversion d'anciens fichiers
Au début de l'analyse du refactor, il y avait une question de conception importante à laquelle répondre:
"Devrions-nous conserver les anciens hacks afin de prendre en charge les anciens fichiers ou devrions-nous tous les supprimer et créer une bonne base pour l'avenir?"
La réponse de l’équipe a été unanime: «avec les hacks, planifions un avenir meilleur!».
Lorsque vous chargez un fichier, Blender fait de son mieux pour convertir les paramètres / fonctionnalités manquants en leur nouvel équivalent (par exemple, 2,7 groupes → 2,8 collections). Mais parfois, il n'y a pas d'équivalent un à un, surtout si la fonctionnalité a été complètement remplacée. Dans le nouveau système, par exemple, le modificateur Effet de lumière est remplacé par des objets légers, ce cas doit être traité manuellement.
Une documentation sera disponible pour gérer les cas particuliers où il est impossible d'automatiser la conversion. Ces cas sont très limités et peuvent généralement être effectués en quelques minutes, c'est un petit inconvénient qui en vaudra la peine en échange des grandes améliorations apportées, sachant que nous avons une base solide pour grandir à l'avenir.
Où le trouver?
La branche (massive) est actuellement en cours de révision sur developer.blender.org . Le processus d'examen peut prendre de quelques jours à quelques semaines, mais il est prévu qu'il fasse partie de Blender 2.83.
Merci
Ce refactor est le résultat de mois de travail acharné qui, nous l'espérons, mèneront à améliorer le flux de travail de l'artiste. Merci à la communauté pour son incroyable soutien, montrant ce qu'il est possible de faire en mettant la créativité au premier plan, repoussant les limites de la 2D dans un espace 3D.
Ce n'est qu'une étape de plus (bien que essentielle!) Parmi les nombreuses prévues pour l'avenir, pour faire avancer le projet Grease Pencil.
Enfin, merci à tous les membres de l'équipe de Grease Pencil pour leur travail acharné et en particulier à Daniel Martinez Lara, Matias Mendiola, Pablo Vázquez et à Clément Foucault pour son travail incroyable qui nous a tant aidés dans ce refacteur fou.
Antonio Vázquez
Coordinateur du projet Grease Pencil
Crédits d'œuvres d'art:
1.1 - Scène pirate par Sergi Miranda
1.3 et 3.1 - «Sierra Dragon» de Pepe Sanchez
Toutes les autres images et vidéos de démonstration fournies par Daniel Martinez Lara