Ambient Occlusion – Vray ExtraTex et Vray Dirt

By 21/03/2010Tutoriaux

Petit tuto en deux temps, du moins deux manières de gérer l’ambient Occlusion avec Vray et le Vray Dirt. La methode la plus courante, le rendu par couche grace au Render Elements et la passe ExtraTex, et une seconde visant à l’integrer directement dans vos shaders, un peu comme dans Mental Ray. Evidemment on verra comment l’appliquer dans Photoshop et After Effects grace aux modes de fusion.

Définition de l’ambient Occlusion (source Wikipedia)

L’algorithme est un principe d’illumination globale, à savoir que la lumière est émise de partout dans l’espace 3D, et non pas d’un point tel une lampe. Le principe de l’AO est que plus deux faces sont rapprochées, plus la quantité de lumière diminue entre ces deux faces. En définissant avant le rendu le taux de lumière globale, on influence cette lumière, pouvant même lui donner une couleur particulière. Un ptit rendu comparatif :

Créer une pass d’Occlusion

Je vous présente rapidement la scène, Linear Workflow , deux Vray lights, un plane rempli de Greeble, une Vray PhysicalCam. Pour le rendu, comme d’habitude Irradiance Map et Light Cache avec des parametres faibles… la routine.

Aprez avoir créer votre scène, rendez-vous dans le Render Elements, en cliquant sur Add, une liste de toutes les couches disponibles apparaitra, selectionnez le Vray ExtraTex. Une fois ceci fait, il suffit d’ajouter un Vray Dirt dans le slot disponible. Pour le parametrer vous pouvez glisser la map en instance dans un slot du material editor.

Au niveau des parametres, vous disposez de plusieurs options :

. radius : dans l’unite de mesure de la scene, vous pouvez definir la distance prise en compte entre chaque objet.
. occluded color : tout simplement la couleur des ombres
. unoccluded color : la couleur de tout ce qui ne concerne pas les ombres
. fallof  : permet de gerer la taille de la transition entre les ombres générer.
. work with transparency : l’occlusion réagira en fonction de la réfraction de l’objet

Ces parametres sont suffisant pour une simple pass d’occlusion. Apres avoir calcule votre image une seconde fenêtre apparait avec la pass calcule, reste plus qu’a les « mixer » dans Photoshop.

Utiliser l’ambient Occlusion dans un shader

Plus intéressant qu’une simple pass, vous pouvez appliquer l’ambient occlusion par le biais des shaders. C’est très simple puisqu’il vous suffit d’appliquer un VrayDirt dans le slot de diffuse et c’est tout. L’avantage, c’est que vous pouvez également texturer et ajouter l’occlusion avec les textures. Il vous suffit de mettre votre map dans le slot d’unoccluded color disponible en bas.

En plus de cela vous pouvez appliquer des couleurs différentes du noir et blanc habituel. Par exemple sur un shader de chrome, vous pourrez foncer les zones « proches » malgré un matériaux proches du miroir. Idem pour dur verre, le paramètre « Work with Transparency » vous permet d’ajouter des ombres sur des objets transparents.

> Je rajouterai que pour ceux qui oublie de calculer leur pass, que vous pouvez mettre un shader en override et créer un « Ambient Occlusion Shader » histoire de pouvoir recalculer votre pass sans retaper le rendu complet.

Photoshop

Alors la, difficile de faire plus simple…
Mettez la pass d’occlusion au-dessus de la pass de diffuse en mode produit (multiply pour les anglophones) et voila. Si les ombres vous paraissent trop forte, jouez sur la transparence. Ceci fonctionne avec tous les softs. Donc idem avec After Effects, Fusion…

En espérant vous avoir appris quelque chose !

Join the discussion 20 Comments

  • Vadim dit :

    Encore un tuto bien fait ! Je viens enfin de découvrir comment ajouter mes passes d’AO dans mes rendus d’anime et ça, mine de rien ça me sauve une journée de taff !
    Encore du beau boulot.
    A quand un tuto sur le compositing Photoshop/After EffX ?

  • matt dit :

    Merci!
    T’inquite ça viendra… Je suis plein de taf et j’ai très peu de temps. Tenir le rythme d’un tuto par semaine relève déjà du miracle vu mon emploi du temps en ce moment… Tout ça pour dire que le tuto du compo arrive doucement, je t’ai pas oublie!

  • ben dit :

    Que penses tu de l’ambiant occlusion qui se trouve directement dans les réglages de Vray ? (onglet GI, à droite de post-processing). Il ne t’apporte pas le même rendu ?

  • matt dit :

    Déjà, c’est arrivé avec le SP3.
    En fait cela te permet de l’appliquer directement sur l’image, pas de post-prod, rapide… je trouve cela plutôt pratique. Mais franchement je préfère de loin me les faire shaders par shaders histoire de ne pas appliquer ça partout sur mon rendu sans un réel contrôle. J’applique l’occlusion par shaders, calculer mon irradiance map avec du « detail enhancement » et en plus je sors une pass général d’ambient occlusion au moment du rendu et la rajoute au compo. Apres pour ce qui est des rendus maquettes, style tout blanc… franchement ça tue!

  • guixdechamp dit :

    Bravo Matt, ces petits tutos en français sont de très bonne qualité!

    Voici quelques idées de tutos à venir :
    – comment faire un bon éclairage avec vray
    – comment paramétrer vray pour de l’animation

  • Noss dit :

    Très bon Tuto merci!

    J’ai noté qu’en utilisant la technique du VrayExtraTex, l’ambiante occlusion prenait en compte les alphas de mes matériaux, alors qu’en revanche impossible d’obtenir ça en passant par l’Override mtl.

  • matt dit :

    @guix:
    Noté!
    Pour l’eclairage un premier tuto sur l’eclairage exterieur est deja sur le site.

    @Noss:
    Normal si tu as une map alpha sur un shader! L’override remplace tous les shaders de ta scène par un shader unique, celui de l’override, donc toutes tes maps ne sont plus prises en compte. En revanche si ce n’est pas à cause d’une map, vérifie de bien avoir coche « Affect Alpha » dans les paramètres du shader que tu as mis en Override.

    Rien à voir mais très sympa Hambuster, hâte de voir ça! Au passage si tu pouvais me caler un rencard avec Ruth… 😉

  • VDavid dit :

    Merci pour les tutos. Je suis sur Vray4Sketchup alors à voir si tout pourra me servir. Pas sur mais merci qd même.

  • Camtha dit :

    Bonjour,

    très bon tuto, je ne connaissais pas cette pass VrayExtra tex, ça peut être très utile.
    En revanche je n’ai pas tout à fait saisi la prise en compte de l’alpha.
    J’ai mis un sol carré, et deux cloisons au milieu séparées par une paroi en verre. Hors dans la pass VrayExtra Tex on ne voit pas l’occlu créée de l’autre côté du mur, comme on pourrait le voir avec une occlu intégré à un shader (technique 2).
    Néanmoins il n’applique pas de dirt sur la vitre ce qui est déja une bonne chose.
    J’ai beau cocher affect alpha, work with transparency, rien n’y fait. Est-ce normal ?

  • matt dit :

    J’ai pas tout saisi. Tu peut me faire un mail avec des screenshots? Je rajouterai ça en bas du post.

  • Camtha dit :

    Désolé c’est pas spécialement clair.

    fichiers images ici :
    http://padinspi.free.fr/dirt_alpha.rar

    En gros je n’arrive pas à obtenir avec la technique 1 ce que j’utilise en prod avec la technique 2.
    Peut-être que je coche trop de choses ou pas assez (« J’ai beau cocher affect alpha, work with transparency, rien n’y fait »), ou peut-être n’est-ce tout simplement pas possible.

    en espérant avoir été plus clair via mes images.
    Merci

  • matt dit :

    ok, j’ai mis deux heures a capter, j’arrivais pas a refaire l’erreur et donc comprendre d’ou ca venait… En fait le problème est que la couleur du shader est modifiée au rendu. Elle passe du noir/gris à la place de noir/blanc.

    > N’utilisez pas le mode Exponential pour votre Color Mapping, si vous n’avez pas le choix cochez « Don’t affect colors (adaptive only) »

    > Tu devrais arreter de bosser en Exponential et passe au Linear WorkFlow, ça t’éviterai pas mal de soucis…

  • Camtha dit :

    Si tu as le temps un de ces quatre pourrait tu faire un rendu comme j’ai fait dans le fichier .rar plus haut ?
    Avec donc deux murs séparés par une fenêtre toute bête, au travers de laquelle on voit l’AO qui se produit derrière les murs (L’AO qu’on devrait voir s’il n’y avait pas de fenêtre en fait)?
    En montrant trois images : le rendu de base, la pass VrayExtra Tex, puis le montage final.

    Car comme tu le devines, le problème ne vient pas du mode exponentiel. (Et je suis pas certain que tu comprennes mes interrogations, mais c’est vrai que c’est pas forcément bien expliqué de ma part.

    En tout cas tout tes tutos sont vraiment bien fait, félicitations.

  • 7erence dit :

    Merci beaucoup pour ce Tuto!

    Je voudrais juste donner une astuce complémentaire sur la partie compositing:
    L’occlu en mode « multiply » est souvent utilisé mais n’est franchement pas géniale, car s’applique aussi dans les zones de lumière directe et donc les voile.
    Idéalement, il vaut mieux l’incruster en mode « softlight », ce qui contraste et ne voile pas. Par contre, pour contraster uniquement vers les noirs, il faut rabattre l’image à 50% de luminosité. Après, si l’occlu apparaît encore un peu sur les parties exposées en lumière directe: faire un masque en contrastant la « Beauty ».

    Là, l’occlusion régie de façon réaliste.

    Voilà pour la petite astuce de compo.

  • vadim dit :

    Sinon il y a aussi l’excellent plugin gratuit http://plugins.angstraum.at/vrayao/
    Sans faire de pub évidemment !

  • Kenji dit :

    très bon tuto, merci beaucoup 😉

  • brian dit :

    bonjour a tousse
    j’ai un petit probleme
    mon audi s5 est terminer je suis asser satusfait , néomoins mes jantes
    ne sorte pas comme j’aimerais
    je veux vraiment le truc brillant gris metal brillant qui frappe a l’oeil comme les grosse voiture
    audi , bmw , mercedes etc…

    quelqu’un pourrais m’aider s’il vous plait merci

  • attila3d dit :

    Désole je suis un peut en retard sur le sujet,Salut tous le monde,salut matt,juste pour résoudre le problème de camtha,au sujet du vraydirt a travers le vitrage,il suffit dans le materaux du vitrage « transparent » dans l’onglet réfraction,de sélectionné « all channel » plutôt que »color only » et d’aller dans ton vrayDirt du « Vrayextratext » et d’exclude ton vitrage.Voila,tous en sachant que » all channel » inclu le « render element « a travers le vitrage ex: ID,Light etc,voila en espérant vous avoir aider, et a bientôt.

  • Matt Guetta dit :

    Aucune idée! Fais un post sur le forum au cas ou qq’un ai deja eu ca…

  • jb dit :

    merci pour le tuto! une petite question, je n’arrive pas à exclure mes vray proxy de la dirt map, est-ce que quelqu’un aurait une idée? Mes paramètres sont classique vray extratex+dirt pas en changeant simplement le radius. Les arbres en proxy sortent tout noir.. bien qu’ils soient exclus.