Google+
3DVF Network :
ico_magazine
Magazine
ico_boutique
Boutique
ico_cgjobs
Portail Emploi
ico_upload
Hébergement d'image
blogs
Blogs
ico_progiss
Progiss
ico_social
Social
Login
space
space

Accueil / Magazine / Didacticiels / RFM 2.0 - Création de passes pour le compositing

space

RFM 2.0 - Création de passes pour le compositing

Publié le 23 juillet 2008 par lieo
space




Nous allons apprendre dans ce didacticiel comment créer des passes dans Renderman for Maya 2 (RFM 2.0), en vue de retoucher celle-ci au compositing. Il est de renommé mondiale que l’un des points forts de Renderman se situe dans la création de multiples passes, pré-passes et OAV. Renderman for maya 2.0 est un outil particulièrement puissant, qui intègre un système de passes dans le render global permettant une souplesse de travail optimum. Nous allons aborder cet exercice en essayant d’utiliser simplement les outils fournis par RFM, en essayant de ne pas scripter. C’est un exercice d’initiation aux passes, visant à découvrir cet outil merveilleux qu’est renderman. Nous aborderons dans une deuxième partie, une approche du compositing de ces passes sous le logiciel de compositing Nuke.



En premier lieu, vous pouvez télécharger cette archive qui contient la scène de base du didacticiel, accompagnée des images sources, le graphe de Nuke et les passes en haute définition. Vous pouvez utiliser l’outil FileTextureManager.mel (disponible sur Highend3d.com) pour vous faciliter la vie dans la manipulation des textures du projet. Je tiens à vous informer que la scène nécessite une bonne machine, surtout à cause du raytrace qui est utilisé dans celle-ci. Vous pouvez revoir la taille de l’image à la baisse et les paramètres de rendu aussi, cela ne changera rien à l’exercice, et permettra d’en venir à bout sur une configuration modeste. Ce didacticiel s’architecture autour d’une image fixe, mais il peut tout à fait être appliqué à une animation.


Après cette brève introduction, entrons dans le vif du sujet :
La première étape : réflexion et étude de la scène en vue d’établir les choix des passes nécessaires.




1 – CHOIX DES PASSES

 

 

Ouvrez la scène Senseo_Start.ma. Nous allons étudier cette scène en vue de déterminer les passes dont nous avons besoin. Il y a plusieurs approches pour l’utilisation des passes. Les passes dite OAVs, permettent dans une « global final » passe de sortir les maps de diffuse, shadows et autres éléments du shader. Les « globals » passes permettent de créer, par exemples, les pré-passes de Subsurface scattering, et permettent surtout de créer les Finals passes que nous allons utiliser.

 

 

Avant tout, regardons de quoi est constitué la scène. En ouvrant « l’outliner » vous pourrez observer d’un peu plus près le contenu de la scène. Celle-ci contient 2 groupes constituants les objets de base (la senseo et le mug), un fond et surtout les lumières.

Nous allons prêter de l’attention à l’éclairage, celui-ci étant composé de :

- 1 Key light : un spot émettant des ombres portées.

- 2 fill area lights : back/fill lights. Elles sont utilisées à la fois pour décrocher le modèle du fond et pour éclairer le fond.

- 1 area lights specular : permet de rajouter un speculaire pour mettre en valeur le modèle.

- 1 point light : elle sert à déboucher les ombres et à éclairer le modèle de face.

1 environment light renderman : permettant de rajouter une ambient générale dans la scène et sert aussi à générer la passe d’occlusion.

1 environement light renderman en mode IBL : celle-ci sert juste de support à une map HDR qui sert d’environnement à la scène. Elle n’émet pas de lumière, juste du spéculaire (qui contribue à la réflexion).

Le fait de regarder comment se composent les matériaux est important pour savoir quel OAVs nous devons sortir pour le compositing. Certes, renderman gère très bien les multiples OAVs en 1 seul calcul, mais cela ne sert à rien de tout sortir en passes s'il faut par la suite gérer des passes noires. Pour une image fixe, ce n’est pas trop grave, même si le compositing est plus lourds à gérer, mais pour une animation, vous pouvez facilement tripler voir augmenter de manière inconsidérée votre espace disque et la bande passante de votre réseau (imaginez sur une production de 80 min, le coût grimpe très très vite).

Pour résumer, il nous faut au minimum :

5 Final passes : 1 par light

1 area specular light (peu etre grouper avec une autre light)

1 Final passes pour la réflexion global

1 Final passes pour une occlusion

Et quelques Final passes de masque que nous créerons selon nos besoins (mask shader / mask shader reflection – refraction)

Notez également que pour toutes les final passes par light, nous allons activer certain OAVs pour avoir un meilleur control de l’image.

 

 


En étudiant les matériaux, ceux-ci sont composés :
- De diffuse
- De spéculaires
- De réflexions et de réfraction
- De transparence
- D’ambient




2 - Création des passes


Pour commencer, nous allons déjà désactiver la Final passe active par default. Malheureusement, il n'y a pas de menu compute / disable. Cette passe doit être désactivée à l’aide d’un mel script.

Première chose avant de la désactiver, nous allons voir comment obtenir des informations sur ces passes. Si vous avez déjà un peu testé RFM 2.0, vous avez pu remarquer que lorsque vous importer des éléments, bien souvent les passes contenu avec sont importées, mais non visible dans le render global. La petite astuce est donc d’ouvrir l’outliner, et de désactiver le « DAG object » dans le menu Display, qui nous permet, maintenant, de voir toutes les passes et leur nom. Il vous suffit d’entrer le mel script qui suit pour désactiver la final passe par default.





setAttr  "rmanFinalGlobals.rman__torattr___computeBehavior" 0;



Pour la réactiver, il suffit de remplacer le 0 par un 1. Toute les passes sont activables par cette ligne en mel script. Si tout à bien fonctionné, lancez un calcul, renderman va seulement calculer les shadows, la pre-passe pour le PTC et va s’arreter là, sans calculer l’image finale.

A partir de maintenant, nous pouvons attaquer les choses sérieuses. Pour commencer, nous allons créer notre nouvelle passe finale, y affecter la key_light, et paramétrer quelques OAVs.

Etudions 2 minutes le render global.

Ouvrez le render global, allez sur l’onglet « passes ».





Cliquez sur le petit triangle pour accéder au menu de création de passes, comme indiqué sur l’image. Allez dans « create pass » et sélectionner « final ». Vous venez de créer votre première output passe. Nous allons la paramétrer pour la key_light. Premièrement, renommons notre passe en « Key_light_Final_Passe » puis regardons les 2 onglets qui s’offrent à nous.

L’onglet affiché par default est l’« output ». Celui-ci sert a définir le format de fichier, et les différent OAVs à sortir.
L’onglet « Pass settings » quant à lui, sert à affecter les objets à calculer, les cameras, et les lumières.





Il peut servir aussi à modifier des paramètres de rendu. Il est aussi possible de créer des sets d’objets et de lumière, donc de pouvoir sortir des passes par lights ou groupe de lights. De plus le set sert automatiquement de répertoire dans votre dossier renderman :

 

 

~/renderman/nom_de_la_scene/images/nom_du_set_correspondant/

 

 

Cela est particulièrement pratique pour gérer les passes.
Nous allons commencer par connecter la lampe qui nous intéresse, la keylight. Pour cela, faites un clic droit dans la zone « Lights set » et sélectionnez la key_lightShape dans le menu déroulant. Maintenant, créez un set pour les objets. Même principe, clic droit dans la zone « object set » et selectionnez « create objectset ». Un attribut editor s’ouvre sur le set, renommé le « Key_light_passe ». Dans le render global, vous risquez de remarquer que le nom du set n’a pas changé ; pas de problème, ce n’est qu’une histoire de rafraichissement. Ouvrez le Relationship editor, et connectez le groupe « senseo », « mug » et « fond_cyclo » au set « Key_light_passe ». Lancez un calcul, vous remarquerez que seul la Key_light participe.




 

 

Maintenant repassons sur l’onglet « ouput » de la même passe. Comme indiqué sur l’image, cliquez sur le petit triangle pour ouvrir le menu de création/édition des OAVs. Allez dans « create Output » est sélectionnez les OAVs nécessaire, soit :

 

 

DiffuseColor : pour pouvoir la diviser et avoir seulement la diffuse

DiffuseDirect : la diffuse la couleur

DiffuseDirectShadow : les ombres

Refraction : comme indiqué dans son nom

SpecularIndirect : les réflections

SpecularDirect : la contribution de la spéculaire du shader

SpecularDirectShadow : l’ombre du spéculaire

 

 

Lancez le calcul.
Vous trouverez dans le répertoire ~/renderman/images/Key_light_passe/ , les passes calculées pour cette lumière.


Pour des questions de compositing, réglez chaque OAVs en tiff32, ce qui permettra sous Nuke de diviser la DiffuseDirect et la DiffuseColor afin de récupérer la participation de la lumière. En 8bits, le résultat de cette opération peut entrainer des artefacts quand on ajoute les différentes lumières. Pas de soucis, il est amplement possible sous Nuke de retrouver le colorspace qui nous intéresse, et d’avoir le même aspect que le rendu de maya. Nous allons répéter la même opération pour l’areaLight_Fill_Left :


Créez une nouvelle Final passe

Nommez la « areaLight_Fill_Left_Final_Passe”

Connectez la lampe dans le slot « Light set » comme vu précédemment

Créez un nouveau set object dans le slot « object set »

Nommez le « areaLight_Fill_Left_passe”

Connectez via le « relationship editor »  les mêmes objets que pour la passe précédente.


 

 


 

 

Maintenant, allons dans l’onglet « output » de cette passe et créez les même outputs. sauf que cette fois si, nous n’avons pas besoin de la passe « DiffuseColor » l’ayant deja créeait dans la passe précedente. Il n’est pas necessaire non plus de créer une « DiffuseDirectShadow », la lampe n’emettant pas d’ombres.
Lancer le calcul, la passe precedente est recalculé en plus de celle-ci. Vous pouvez evité de recalculer les passes precedente en la desactivant via le menu déroulant « caching behavior » dans l’onglet « pass settings ». Sur le même principe, créeons la passe pour les areas lights de droite.


Deux possibilitées s’offrent à nous, l’une visant à créer 2 passes pour isoler la areaLight_Fill_Spec_Right, ou 1 seule passe regoupant les 2 lights. Pour le tutorial nous allons groupé les 2 lumières pour apprendre à faire un set de multiple lights.
Reprennez les étapes précedentes afin de recréer le même style de passe, nommez là « areaLight_Fill_Right_Final_Passe » et attacher les objects sur le même principe que la passe précedente. Lorsque vous attacherai les lights, faites un click droit, et cette fois si selectionnez « create objectset ». renommé le « Light_Fill_Right », et via le relationship editor, connectez y les 2 areas lights necessaires à la passe. Par là suite, créer les OAVs necessaire dans l’onglet « output », les même que pour la passe précédente.




 


Répétons la même procédure pour la dernière light, l’Ambient_Front. Les OAVs a crées sont :

 

- DiffuseDirect
- Refraction
- SpecularIndirect




 

 

La lampe n’ayant pas de spéculaire, nous économisons 2 fichiers.
Il ne nous reste plus que deux éléments de lumières à créer : la « Reflect_env_map » et la « AmbientLight_occ ». Pour ces 2 lights, même principe que précédemment, sauf que cette fois si nous allons modifier quelques paramètres. Créer une nouvelle passe final et nommer la « Ambientlight_Final_passe ». Pour connecter l’environnement light renderman (si vous ne la voyait pas dans la liste), taper son nom dans la zone de saisie, en respectant la casse, et compléter son nom par « .message ».

 

 

Exemple : Ambientlight_occShape.message

 


Pour lier des éléments à renderman, il suffit souvent de rajouter cette extension au nom de l’objet, cela force maya à connecter l’output « message » du nœud en cours. Si tout ce passe bien, l’objet se sélectionne. J’ai nommé le set d’objets « Ambientlight_passe », en retirant « _occ » du nom volontairement. Nous créerons une passe spécifique pour l’occlusion. En ouvrant les propriétés de l’Ambientlight_occ, basculez le « shadowing » sur none, et cassez la connexion du « Bake ». Il ne faut pas effacer la passe « rmanRenderRadiosityPass », juste la deconnecter, nous réemploierons celle-ci pour créer notre occlusion. Ensuite, créez seulement une DiffuseEnvironment, une SpecularIndirect et une Refraction pour les OAVs.

Créons maintenant la dernière passe de lumière "Reflect_env_map_Final_passe", toujours basé sur le même principe.

 



space
space
space
space
space
A Propos | Contact | Publicité
Copyright © 2000-2018 3DVF. Tous droits réservés. | Infogérance serveur | tracker
space