Des passes simples à compositer: Le Pendule
Par Narann le jeudi, 26 novembre 2009, 21:37 - Infographie 3D - Boulot - Lien permanent
Je vous propose un ancien making of que j'avais commencé en Mai 2008 puis jamais fini, faute de temps, de motivation, etc, etc... :siffle2: Je l'ai montré à plusieurs personnes car il expliquait deux-trois choses intéressantes. Au bout d'un moment je me suis dis que ce making of méritait mieux qu'une page perdu sur mon site (ou l'url devait être tapé à la main...). Il montre comment compositer des passes simples pour obtenir un rendu plus abouti. C'est à mon avis un bon guide pour "débuter" avec les passes.
Je vous le donne tel quel, en copié collé. Il n'est pas fini et ne le sera surement jamais car je n'ai plus les sources sous la main (elles doivent être paumé dans un de mes disques IDE...
Sommaire
- C'est parti!
- Le Layer Manager de Maya
- Quelques exemples de passes
- Le Compositing: Combustion...
- ...et ses amis
- Let's Go!
- La Couleur
- Petite pause et topo.
- Passe de FLZ, Extraction des couches.
- L'illumination
- C'est fini! (En fait pas complètement)
- La reflection
- Petite bidouille pour ajouter "du fond"
- La profondeur de champ
- Les images
- Et les vidéos
C'est parti!
Travail personel sur le rendu par passes.
En production, il est très rare de travailler son rendu 3D directement dans le logiciel. Il y a plusieurs raisons qu'on pourrai résumé par une question d'équilibre entre la qualité et le temps.
En effet, cliquer sur "Render", attendre, voir que le spéculaire est trop petit, faire la modification, recliquer sur "Render", attendre, voir que le spéculaire est maintenant trop gros est une perte de temps catastrophique là ou souvent, le temps donné pour un travail est très court... La solution consiste a littéralement à "faire passer" cette étape en compositing.
Comment? En sortant des passes tout simplement. En infographie 3D, on appel "passe" une image (ou séquence d'image) qui contient des informations bien précises.
Dans la pratique, ça consiste à appliquer un shader spécifique a tout les objets de la scène puis à rendre le tout (Le Render Layer de Maya facilite grandement cette tache et évite d'avoir à créer une scène par passe à rendre. Une grande partie des logiciels de 3D on un "Layer Manager" inclue).
Le Layer Manager de Maya
Quelques exemples de passes
Passe de "Diffuse"
Ici, un surface shader avec des textures procédurales 3D teinté de différents jaunes.
Passe "d'Occlusion"
Encore, un surface shader avec la texture mental ray d'occlusion (mib_amb_occlusion).
Passe de "Reflection"
Un surface shader le mental ray de reflection (mib_reflect).
Passe de "Shadow"
Un useBackground avec la reflexion à zero et une lumière qui projette des ombres (Ben ouai...). Il est important de bien comprendre que cette passe ne contient que les informations des ombres et aucunement celles de l'illumination (qui sera une passe à part). Il est possible, au même titre que la passe de FLZ (plus bas) de mettre 3 lumières et ombres dans les 3 Canaux RGB d'une seul passe. Cela dis, ici je n'ai placé qu'une seul lumière.
Passe de "Masque"
Cette passe demande une certaine reflexion. En effet, l'idée est d'isoler les objets en couleurs pour pouvoir par la suite, en compositing, y appliquer des modifications (dans notre cas, principalement de couleurs). Dans la mesure ou la précision "au pixel" est relative pour notre selection nous pouvons ne pas nous cantonné qu'aux 3 couleurs des canaux RGB. On peut donc utliser 6 couleurs. (au pire, on retravaillera la sélection à l'aide d'un "set matte" par exemple). Le travail de reflexion dont je parlait va consister à "dispatcher" les couleurs équitablement dans le plan de façon à ce qu'elle puisse être utiliser plusieurs fois. Regardez la couleur verte par exemple. Elle est utilisé deux fois sur deux objets différents mais dans la mesure ou "leurs pixels" (de couleur verte) ne se "touche" pas, on va pouvoir en compositing utiliser un masque pour faire un premier travail d'isolement, puis, à l'aide d'un "keyer" sélectionner la couleur que l'on souhaite garder.
Passe de "Normal"
Et encore un surface shader avec le node d'occlusion de mental ray (si si!) mais, le paramètre "output_mode" est mis à 2 (cf la documentation "mental ray Shader Reference" rubrique "Occlusion" pour plus de détails) et le raytracing est désactivé dans les paramètres globaux de mental ray. Cette passe va nous permettre de récupérer les informations d'orientation des faces afin de pouvoir complètement rééclairer la scène (Sur ce plan là je ne m'en suis pas servi cela dis).
Passe de "FallOff, Lambert, ZDepth" (FLZ)
Une passe "fait mains" si je puis dire. C'est un surface shader qui contient, dans le canal "Red" les informations de falloff, dans le canal "Green" les information de "Lambertian illumination" (j'utilise la version francisé: "illumination lamberiaine"), et enfin, dans le canal "Blue" les informations de ZDepth. Dans la mesure ou nous avons sorti la passe d'ombres d'une light, il est également important de sortir ses informations d'illumination (Nous verrons plus bas ce qui ce passe si on ne le fait pas).
J'ai sorti deux autres passes: La passe de "reflection blur" (RFLBLR) ainsi qu'une seconde passe de masque que j'ai appelé COLOR car elle contient également les informations de couleurs de petits éléments.
Le Compositing: Combustion...
Pourquoi Combustion? Pas de raisons techniques, pas de raisons politiques ni rien... Je trouve que c'est un très bon compromis entre After Effect et Digital Fusion. Il dispose d'une vue schématique très "interactive" comparé à After Effect ou elle reste assez "statique". Je ne me lancerai pas dans un débat pour savoir lequel est le meilleur. Je vais juste dire que c'est celui avec lequel j'ai été formé et avec lequel je suis le plus à l'aise (mais il me tarde de retrouver cette aisance avec Digital Fusion que je trouve beaucoup plus fonctionnel).
...et ses amis
L'un des gros avantages quand on débute avec le compositing est l'utilisation des plug-ins (qui permettent rapidement d'obtenir "un petit quelque chose" qui fait la différence et rend un plan crédible). Et on peut dire que de ce coté là After Effect est le mieux désservie mais combustion à l'avantage d'être compatible avec une grande partie des plug-ins de son homologue. Il faut savoir aussi que la "surenchère" d'effet n'est jamais bon et que même si papa maman fait un gros "ouaaaaah" devant un effet Shine, un professionnel lui, va rigoler plus qu'autre chose...
Au final, dans ma composition, je n'ai utiliser que deux plug-ins:
- Le T_LensBlur (du pack Tinderbox 2 de The Foundry)
- Digital Film Lab 2 (Téléchargeable sur leur site www.digitalfilmtools.com)
Le premier m'a servit pour faire mon effet de profondeur de champ. Il offre un meilleur rendu qu'un "simple" Gaussian Blur (cf Images).
A gauche, blur tinderbox, à droite, gaussian blur.
Le second est en fait, comme sont nom le sous entend plus ou moins, un "centre d'étalonnage" avec quelques options très intéressantes, a tester.
Let's Go!
Par quoi on commence? Et bien déjà créer un nouveau "compo":
Ensuite, on importe tous les éléments nécessaire au projet (nos séquences de passes):
Et on commence (Cliquez pour voir la compo entière).
La Couleur
L'idée ici est de se servir de la passe de diffuse et de lui appliquer des "Discreet Color Corrector" afin de créer plusieurs variations de teintes.
Ici, nous allons en quelque sorte "créer des mattes" (pour les colors que nous avons fait juste au dessus). Et ce, à l'aide de notre passe de masque. Dans la mesure ou nous n'avons utilisé que 6 couleur dans notre passe MSK, on doit dans certains cas créer des masques afin d'isoler la couleur à "matter". Ceci étant fait, nous allons nous servir d'un "set matte" pour utiliser nos "cache" sur nos passes de couleurs.
Notez que les nodes de matte (ici "Discreet Keyer(2)") sont connecté au compo même si il ne sont pas affiché. Combustion est un peu capricieux avec la time line. Même si dans notre cas celà ne pose pas de problèmes, c'est une habitude à prendre.
Nous avons maintenant une précomposition de "diffuse".
Petite pause et topo.
Nous avons déjà ici un gros aperçu des avantages à utiliser et réfléchir "compositing". Imaginez, qu'un client, un réal' ou même vous, voulez changer la couleur de la pièce centrale. Si vous aviez fait le rendu directement du logiciel, il vous faudrait changer la couleur dans votre scène et recalculer la séquence entière (chose qui est bien plus court à faire en compo). Autre avantage (qu'on verra plus tard), c'est de pouvoir faire des modifications en casi temps réel. Ainsi, il est possible de faire varier la teinte et de voir en le résultat presque instantanément.
Passe de FLZ, Extraction des couches.
Nous allons maintenant "traiter" la passe de FLZ. Si vous vous rappelez bien, cette passe contient 3 informations (3 Passes en niveau de gris, une de Falloff, une d'illumination lamberiaine, une de ZDepth), chacune étant mis dans un canal. Nous allons les "extraire" à l'aide d'un "Compound RGB Arithmetic" pour au final, avoir 3 composants indépendants:
Les parametre du node (Ici, pour le lambert):
L'illumination
C'est ici que la passe d'occlusion d'ombre porté et surtout, le lambert entre en jeux. Je vais tenter de vous expliquer, ou plutôt vous montrer pourquoi il nécéssaire de calculer une passe d'illumination en plus de la passe d'ombre. Rapelez vous, la passe d'ombre:
Elle ne contient que les information des ombres portés, des rayons lancés mais aucunement les informations d'éclairage de l'objet lui même. Souvent, en compositing, on met la passe d'occlusion sur la diffuse, on compose (avec tout les filtres et tout) puis on met la passe de shadow vers la fin, ce qui fait que "l'incohérence" visuel de l'éclairage passe inaperçu. Pourtant...
Diffuse + Occlusion
Diffuse + Occlusion + Ombres
Vous ne trouvez pas que l'éclairage est bizarre? Encore une fois, ici l'exemple est poussé à l'extrème mais souvent, ce qu'on se dis quand on appose la passe d'ombre c'est: "ça créé des zones sombres, des variations de lumière". Parce que c'est exatement ce qu'on lui demande... Donc en effet, ça ajoute des zones sombres mais si elle n'est pas combiné avec la passe d'illumination (ici lamberiaine), l'éclairage est incohérent.
Diffuse + Occlusion + Illumination
Comparez avec l'image d'avant (surtout en bas à droite) et vous verrez directement d'ou viens le problème et l'explication de l'incohérence.
Pour finir, un visuel de la compo de l'illumination (très simple en fait):
C'est fini! (En fait pas complètement)
Oui, je sais, la partie la plus intéressante, celle ou l'on finalise l'image, ou on fait la profondeurs de champs n'est pas là...
Je vais essayer, sans images ou avec des brides de ce que j'aurai pu reconstitué, de faire un résumé de comment j'ai compositer le reste de l'image... Je me doute que ça ne sera pas très parlant mais ça peut toujours aider...
La reflection
- 1 - Passe de Falloff
- 2 - Passe "d'ambiant" (Cette passe est quasi inutile, elle ne donne qu'une teinte général à l'ensemble. Je ne suis même plus sur qu'elle ait réellement servi...
- 3 - Passe de "hard" reflection (pas de blur)
- 4 - Passe de reflection blur
- 5 - Teinte de la passe de reflection blur (4)
- 6 - Teinte de la passe de "hard" reflection (3)
- 7 - La même image que la 6 mais j'ai utilisé la passe de Falloff (1) comme masque
Les passes qui nous intéresse sont celle qui vont nous permettre de "générer" la reflection et sont les 5 et 7. Le but de la manip était d'avoir une relfection dur sur les bords et une reflection flouté face à nous. En mettant la passe 7 sur la 5 on obtenait cet effet. A la reflexion (hohoho) ce n'était pas une très bonne idée. Nous somme sur un plan de type "macro" et la différence entre reflection dur et flou n'est pas flagrante...
On mets ses deux passes sur l'ambiante (2) elle même placé sur la passe de Diffuse + Occlusion + Illumination (obtenu plus haut), au bout de quelques réglage, nous avions notre compo "de base".
Petite bidouille pour ajouter "du fond"
Si vous regardez le rendu, vous vous rendrez vite compte qu'il y a toujours du noir dans l'image (le fond) et que ça casse un peu la profondeur. La technique que j'ai utilisé est foireuse au possible... Mais elle marche! :baffed:
La manipulation consiste à dupliquer l'image, l'étirer (ici en horizontale), la flouter, la retourner, et à la mettre derrière l'image original... (Ouai ouai je sais, je suis la honte de la profession... -_-' ).
Cela dis, ça bouche les trou pis vu qu'on va mettre du flou partout on s'en tamponne un peu. (Heureusement que je n'ai plus l'image parce que je me rappel que c'était assez moche.
La profondeur de champ
On attaque maintenant la partie qui, à elle seul, m'a pris la moitié du temps du compositing. Le fonctionnement est simple. Je ne vais pas expliquer la théorie mais en gros, plus un pixel est proche du centre de notre focus, moins il est flouté. Et plus un s'en éloigne plus il est flouté.
La technique de qui consiste à utiliser la passe de ZDepth comme un masque de l'image flouté, le tout remis sur l'image original ne fonctionne pas. C'est une technique souvent utilisé par les débutants (pas péjoratif hein? je l'ai fais moi aussi :sourit: ) qui donne un style "les feux de l'amour" du plus mauvais effet...
La technique que j'ai utilisé n'est pas la meilleur mais est quand même beaucoup plus efficace (surtout dans le cas du macro).
Elle consiste à "diviser" la profondeur et a y appliquer à chaque fois un flou (le fameux T_LensBlur) à une valeur différente. Ainsi, le fond à un rayon de blur plus élevé que le milieu. Je n'ai utilisé que trois "niveaux", proche (sans blur), millieu (blur moyen), fond, (blur fort).
Après, il n'y à pas vraiment de secret, il faut bidouiller... Essayer d'enlever les "bavures" des blurs des bords des objets "proche", etc... Le travail n'est pas énorme mais il demande une certaine patience et nécessite une remise en question continue de "son oeil" (terme utilisé pour parler de notre capacité à détecter les incohérence artistique et technique d'une image).
C'est aussi durant cette période que je commence à ajouter les effet finaux. Le motion blur (barré dans l'image de compo) permet de calculer du flou de l'image en fonction de l'image précédente et suivante. Et le plugins After Effect Digital Film Lab 2 qui est une mine d'effet d'étalonnage à lui tout seul.
Contraste, légère désaturation, petit vignetage en bas à droite pour relever le regard, bloom des zones clairs, etc...
Après, c'est à vous de jouer...
Les images
Voici les résultats que j'ai obtenu...
Et les vidéos
Ces fichiers sont distribué sous licence BY-SA.
Ce qui veut dire que vous avez le droit:
- De distribuer et communiquer cette création au public
- De modifier cette création
Sous réserve de:
- Citer mon nom (FEVRIER Dorian), ainsi que mon ce blog (blog.fevrierdorian.com)
- En cas de modification de l'œuvre, vous avez obligation de distribuer ce nouveau fichier sous licence identique (BY-SA)
Voir modalités ici:
http://creativecommons.org/licenses/by-sa/2.0/fr/
N'hésitez pas à laisser un commentaire si vous avez des questions. :sourit:
A bientôt!
Commentaires
Bon tuto, même si 2009 ce n'est plus hier (en 3D c'était le siècle dernier dit donc). ^^
J'aimerai donner 2-3 tips et lancer un débat tiens (pour qui viendrai lire ce commentaire) :
Déjà, éviter le surfaceShader et privilégier un lambert avec l'ambiantColor blanche et la diffuse à 0. Pourquoi : car l'on obtient un surfaceShader qui marche avec des bumps et qui gère bien mieux la transparence qu'un surfaceShader.
Ensuite, penser que l'on a 4 couches et non 3 : le RGBA. Ce qui permet (par exemple) de doubler les passes d'ID (de masques) avec un objet en Rouge avec Alpha, un objet en Rouge sans Alpha, etc... Il suffit en compo de prémultiplier ou d'inverser l'alpha pour récupérer juste ce qui nous intéresse (mais attention au bordure/frange/liseret du à l'aliasing). De même que pour les Fallof/Lum/Z en RGB et l'occlu d'ans l'Alpha par exemple (et hop, une passe de gagnée !) et autres...
Une autre chose que je remarque dans ce tuto est une utilisation d'un seul layer pour toute là scène. Il est préférable de détacher les éléments par foreground et background : Quand tu applique la Z par exemple, les bords des objets près bave car le Z aliasé récupère un peu de la valeur du premier plan et un peu de la valeur de l'arrière plan, le Z lui comprend bêtement que blanc = très près, noir = très loin. L'aliasing qui à l’œil permet de mélanger le bord d'un objet va être interprété par le Z comme quelque chose à mis distance = ça bave de façon déguelasse.
Une des solutions est donc de rendre 2 layers : le FG et le BG ce qui permettra en compo de faire péter la DoF sans avoir de soucis. Une autre solution est de ne pas aliaser la passe de Z (mais ça pose d'autres soucis après). Le Z est bien évidement un exemple (et encore je survole) mais l'idée est là.
Dernier trucs, mais ça c'est plus perso, éviter de sortir une passe de diffuse de ce genre (surfaceShader plat), surtout avec des matériaux un peu poussés genre SSS, liquide, verre, etc... Car en compo ça rend très vite faux (et là je sors le lien qui va bien vers ton article : http://www.fevrierdorian.com/blog/p...) et l'utilisation de matériaux dit "physiquement" rend vraiment mal en sortant juste un passe de diffuse pour la color. Et attention les yeux, la super transition vers le débat :
Vaut-il mieux une image décomposée pour avoir la main en compo et pouvoir changer rapidement et de façon interactive un peu tout dans l'image ou est-ce mieux de garder une image cohérente en sortie de 3D et n'utiliser la compo que pour des retouches colorimétriques / esthétiques tel un flame pour un shoot live ?
Depuis que je suis sorti d'école je travaille que pour de la pub, et des clients qui la veille du rendu final décident que finalement le chocolat blanc ça le fait pas, c'est mieux du chocolat au lait, avoir tout de séparé dans sa compo est salutaire. MAIS ! Qui dit compo dit bidouille dans l'image, et qui dit bidouille dans l'image dit "ajout d'incohérence physique" genre le FinalGather rouge qui reste rouge quand on change l'objet en bleu en compo, les réflexion / réfraction qui ne sont pas gérable facilement, Le DoF ou le Motion Blur qui n'est pas cohérent car appliqué en 2D sur une image 2D, etc...
Tout ça créer une image qui, même si elle est parfaitement assemblée, va donner ce petit truc qui fait que non, ça le fait pas, c'est pas niquel. Pour de l'animation ça passe, l’œil veux voir du beau, du doux, du coup les petites erreurs physique peuvent facilement être masqué par l'esthétique graphique de l'image. Mais pour du réaliste, là c'est compliqué... Les pales d'un hélicoptère par exemple, en Motion blur post Prod c'est impossible à avoir de juste et beau. Le DoF de cellules en macro aussi... A moins de faire le point sur le premier plan, les blur / net / blur ne fonctionne pas. Beaucoup de renderer avec qui j'ai pu discuter sont de cet avis : toucher à l'image le moins possible et faire le maximum dans le rendu pour qu'il soit juste.
C'est un débat car je ne pense pas qu'il y ai LA solution parfaite. Entre une image qu'il faut recalculer à chaque fois que l'on modifie quelque chose mais qui est juste, et une image décomposée - recomposée qui donne les pleins pouvoirs au compeur mais qui créer des incohérences et qui empêche d'avoir une image liée, le choix se fait par ressenti et par prod (prod hyper courte ou prod avec beaucoup d'exigence, etc...).
Voilà mon avis, j'ai encore pleins de trucs à dire sur le rendu / compo mais j'en apprend encore tellement que je m'auto-contredit 9 fois sur 10 au fur et à mesure que je découvre des solutions à des problèmes, mais qui du coup pose d'autres problèmes. Et puis je n'ai que 3 ans de bagages techniques (sans compter l'école qui m'a plus donné les bases que vraiment appris ce qu'était le rendu en prod) donc il se peux que des vieux compeur/renderer viennent me taper dessus pour avoir dit d'énorme connerie.
Je vais attendre d'être plus lourd pour conseiller en profondeur le rendu/compo.
J'ai une question :
Pourquoi avoir sortit autant de pass en secances d'immages. Pourquoi n'avoir pas sortis une pass exr qui comporte toutes ces informations.
MERCI de me répondre, je suis vraiment intrigué pcq j'apprend encore.. :)