Rendu d’animation Vray – Fly through

By 06/06/2010Blog, Tutoriaux

Ce tuto marque la fin d’un époque, du moins je l’espère… En fait cela fait plusieurs fois que je réponds sur les forums 3d à la fameuse question: « Pourquoi ca flick ? Je comprends pas j’ai tout fait comme d’habitude etc…  » Marre de répondre à chaque fois la même chose sans pourtant faire un copier/coller j’ai décidé de faire un tuto complet sur le rendu d’anim. Donc nous allons voir le rendu de type Fly-through en premier et ensuite le rendu d’animation traditionnelle.

Pre-calculer les maps

Vous venez, pour ce qui ne connaisse pas, de decouvrir le secret du rendu d’anim, pre-calculer. En fait ca consite à calculer l’animation en deux temps, tout d’abord les maps (par exemple l’irradiance map) et ensuite calculer les images a partir des maps pre-calculer. Le rendu se divise donc en deux parties, le rendu de la Global Illumination puis celui de l’image.

Les modes de calcul

Avant de rentrer dans le détail un petit mot quand même sur les méthodes de calcul de la Global Illumination de Vray.
Il y en a 4: Brute Force, Irradiance Map, Light Cache et Photon Mapping, et chaque methode a ses avantages et inconvénients pour l’anim.

> Brute Force : Cette methode est dite unbiased (un peu comme Maxwell ou Fry) mais du coup, impossible à sauvegarder donc pour un fly-trough on oublie !

> Irradiance Map: De loin la plus utilisé et peut-etre la methode la plus efficace, elle se sauvegarde donc on garde! Je precise quand meme que l’irradiance Map est dite view-dependant, c’est à dire qu’elle se calcule en fonction de la position de la camera. Vous pouvez jeter un oeil au tuto « Tout sur l’irradiance Map » pour plus de précision.

> Light Cache: Un peu à part il se calcule sous la forme d’un structure 3d faite de samples et se sauvegarde, donc on garde!

> Photon Mapping: C’est la methode la plus traditionelle de calcul de la Global Illumination, Son avantage par rapport à l’irradiance Map est de se calculer en fonction des lumieres de la scène, ce n’est donc pas view-dependant, partique pour le Fly-through mais pas pour l’anim traditionelle.

Le flythrough

Pour vous montrer comment on fait, je vais utiliser le methode la plus courante, le couple Irradiance Map et Light Cache.
Voici donc ma scène, rien de fou, un plane avec un Greeble dessus et un Vray Sky and Sun pour l’éclairage.
> Les anims dites fly-through sont des anims ou seul la camera est en mouvement, toute la scène est statique.

Ne regardez pas les paramètres Vray en détail, seul la méthode compte. En plus j’ai utilisé les presets Vray alors… N’oubliez pas d’activer l’option « Don’t render Final image » dans le Global Switches.

Commençons par le Light Cache, il suffit de le calculer en mode Fly-through. Pas la peine de calculer toute la séquence, une seule frame suffit. Depuis le SP4a de Vray, il existe une option supplementaire, le « Use Camera Path », ceci permet de dire à Vray de conserver la position des samples calculé afin de réduire le flickering. N’oubliez pas le paramètre Autosave qui permet de sauvegarder le fichier pre-calculer.

Une fois la map calcule, chargez le Light Cache en mode « From file » et selectionnez le fichier calcule. Comme vous pouvez le voir (à droite) l’image du Light Cache calculé montre plus ou moins le mouvement de camera calculé.

Maintenant l’Irradiance Map. Cette fois, il faut calculer toute la séquence d’images. Par contre si selon la vitesse de votre camera il n’est pas toujours nécessaires de calculer en frame par frame, pour cette anim, j’ai calculer 1 frame sur 10.  C’est a peu pres le même principe, on pre-calcule, sauvegarde et charge le fichier .vrmap. Donc passez l’irradiance en mode « Incremental Add to Current Map » et AutoSave. En fait ce mode de calcul permet de creer un fichier auquel frame par frame le calcul va s’ajouter au precedent. Ainsi vous obtenez un fichier ou tout le mouvement de camera, est calculé.

Repassez ensuite en mode « From File » et chargez le premier .vrmap.

Remettez ensuite le Light Cache, decochez le « Don’t render final image », n’oubliez pas de remettre votre « frame rate » à 1, configurez l’emplacement des images et lancez !

Si au moment du rendu vous vous apercevez qu’il y a des taches (qui ne flick pas!), plutôt que de recalculer, vous pouvez augmenter avec le paramètre « Interpolate Samples ».

En esperant vous avoir appris quelque chose!

J’arrive pas à mettre la vidéo du résultat en ligne alors vous la trouverez en plus de la scène et des maps pre-calculés.
Ici. N’oubliez pas de refaire le chemin des .vrmap 😉
Et pour les flemmes, voici un plugin gratuit qui vous facilite le travail. Ça nous vient de Subburb, le créateur de SolidRocks.

Join the discussion 24 Comments

  • Sliver dit :

    Merci pour toutes ces explications, et pour t’encourager à continuer dans ta lancé, les tutos sont très bien construit, très clair et surtout ! en français ce qui est assez rare sur vray, du coup on comprends mieux certains termes technique 🙂

  • Omega3 dit :

    Salut 😉

    Encore bravo pour ce tuto.
    J’ai tout de même qs questions:
    -Est-il normal que le rendu final de l’anim dure environ 1mns 30 scd par frame (CPU Intel Quad Core Q9400) ?

    -Quand on calcule l’irradiance map, faut-il mettre le Secondary Bounce sur « none » ?

    Merci d’avance pour les réponses et pour ces superbes tutos 🙂

  • perspectif dit :

    perso, quand je calcule le primary bounce, j’utilise déjà le light cache en secondary bounce, en mode « from file », vu qu’il a été calculé à l’étape précédente…mais je ne sais pas si c’est la manière la plus « propre » de faire

  • scratch dit :

    Bonjour,

    Tout d’abord, bravo pour toutes les infos communiquées et expliquées sur ce site !!! C’est une vraie source de compréhension de l’épais mammouth de la 3d qu’est V-Ray ! ;o)

    Je travaille actuellement sur un projet d’animation sur écran 3d relief Alioscopy. Le rendu pour ces écrans se fait via un banc de 8 caméras générées par un maxscript dans 3dsmax. Il suffit de régler ses paramètres de rendu puis d’utiliser le bouton « render » du plugin Alio pour lancer automatiquement le calcul des 8 caméras, qui sont enregistrés dans des dossiers cam001, cam002, … etc.

    Je m’interroge sur la façon d’adapter la technique décrite ici d’animation flythrough « classique » au rendu autostéréoscopique.

    La question que je me pose est : comment faire pour précalculer le LC et l’IR pour le rendu Alioscopy ? Faut-il précalculer le LC et l’IR pour chaque caméra ou bien est-ce que seul la vue centrale suffit ?

    Le problème est que si la réponse est « oui, il faut précalculer pour les 8 », je n’aurai pas le moyen, au moment du rendu des images finales, d’indiquer au script automatique de changer de fichiers vrmap lorsqu’il passe aux rendus d’une autre caméra…

  • matt dit :

    Alors la tu me poses une colle! J’en ai aucune idée ^^ Demande sur le forum de Chaosgroup.
    Ceci dit, si tu dois pre-calculer les 8 etc… avec Backburner, ou un simple batch, tu dois pouvoir t’en sortir…
    Logiquement tu seras obliger puisque l’irr map et le lc ne calcule que ce que voit la cam, il risque de te manque un morceau de precalcul sur les cotes. Si tu veut tout precalculer d’un coup regarde du cote du Photon Mapping qui lui calcule toute la scene.

  • synactiv dit :

    Eh, bien, voilà ce que l’on appelle une question aussi rapide que claire !!!

    Bon, je n’ai jamais essayé le rendu par Photo Mapping, donc j’étais un peu réticent à l’idée de devoir l’utiliser, à vrai dire … Pourtant, il me semblait effectivement que cela pouvait être une solution éventuelle. Autre solution « ultra-tempivore », ne pas précaluler et faire comme un rendu image fixe = laisser calculer le LC et l’IR pour chaque image !!! (allez, disons pour 1min 30 de vidéo environ, soit 90s, à 25 i/s, x8 caméras = 18 000 images, x5 à x10min par image (disons 7,5) … on devrait avoir ça après 135 000min, soit 93,75 jours !!! Bonne moyenne !!!)

    Le souci finalement, c’est de ne pas pouvoir sélectionner la caméra que l’on veut dans le banc des 8 ! Le tout se contrôle comme un unique objet (pratique pour le positionnement, mais pas pratique pour le rendu dans certain cas).

    (je précise que je ne suis pas du tout infographiste et que si j’ai l’air de m’y connaitre un tout petit peu c’est grâce à Aversis et à ce site ! Encore bravo !)

  • scratch dit :

    Finalement, à situation désespérée solution désespérée !!!

    Devant l’impossibilité de contrôler ces foutues caméras une par une, j’ai tenté l’improbable : click droit dans le viewport > unfreeze all … et Ô MIRACLE : les caméras sont en fait simplement gelées ! J’y ai donc accès indépendamment (youpi !), ce qui résout le problème ;o)

  • arabeb52 dit :

    JE PENSE QU’IL Y A UN SCRIPT QUI S’OCCUPE DE TOUS CA ET ON PLUS IL EST GRATUIT http://fr.tuto.com/3d-studio-max/flywiz-vray-script-d-animation-flythrough-3d-studio-max,6552.html

  • Flo dit :

    Bonsoir Matt,

    Merci pour tous ces tutos.
    Par contre je pense ne pas avoir bien saisi car une fois le Lc calculé tu dis de le charger.
    Ensuite quand l’IR est calculé tu dis de remettre le LC???
    Une étape que j’ai pas saisi?

    L’anim c’est vraiment mais alors vraiment pas mon truc et j’ai toujours pas compris comment faire…

  • baptiste dit :

    Bonjour, et merci pour tes lumières…
    juste une petite question:
    pour le calcul de l’irradiance map tu nous conseille d’utiliser le mode « Incremental Add to Current Map ».
    la question est quel est la différence entre le mode « animation prepass » et le mode « Incremental Add to Current Map »?
    Merci

  • matt dit :

    Salut,
    Le mode « Incremental… » permet d’additionner la GI frame par frame pour au final n’avoir qu’un seul fichier contenant toute la GI, ceci implique que les objets de la scène doivent être immobile.
    Le mode « Anim prepass » calcul la GI frame par frame mais ne l’additionne pas. Il la mélange (selon un nombre de frames: Inter. frames) quand tu passes en mode « Anim rendering ». Du coup, on plus de problème si un objet bouge. D’ailleurs, voici un article sur le rendu d’anim, c’est important d’utiliser les bonne méthodes selon le type de rendu, cela t’évitera flickering et temps de rendu inutiles.

  • baptiste dit :

    Waouw… merci pour la rapidité de ta reponse… je suis impréssioné.

    une dernière petite question sous forme de récapitulation:
    pour une des scénes le soleil est en mouvement, j’utilise donc le mode « animation prepass »
    pour les autres scénes ou rien ne bouge sauf la camera j’utilise la mode « Incremental… »
    ?
    Merci

  • matt dit :

    Pour un lighting qui bouge, ca peut etre l’exception… Cela depends de comment il bouge mais je dirais plutot « Incremental… » (fais qques test en ptit res tu verras vite si ca marche ou pas) et effectivement si rien ne bouge sauf la cam tu restes en « Incremental… »

  • Fred.archi dit :

    Bonjour,
    Merci pour ton tutoriel !
    Moi j’ai un petit soucis sur mon rendu.
    Quand je fais un rendu extérieur, tout va bien (ou presque). Mais dés que je suis en intérieur (même fichier 3ds), Je me met à avoir des tâches un peu partout:
    Voici l’image: http://www.hostingpics.net/viewer.php?id=495233Sequence100000.jpg
    Lorsque je fais un rendu en single frame, tout va bien je n’ai pas de tâche. Mais quand je fais un rendu fly-through avec une irradiance map toute les 10 images ( ma caméra ne bouge pas vite ), il y a ces tâches…
    Pour info, mes réglages sont les suivants:
    Le light cache est par défaut (1000 subdivs)
    L’irradiance est en « Low ».

    Un 2 ème petit problème (qui n’a rien à voir) qui n’en est pas vraiment un puisque à par me faire perdre quelques secondes sur mon rendu, ça ne change rien sur la qualité du rendu: Je suis en irradiance map « PRESETS SLOW » donc j’ai normalement 2 passes. Or Vray me fait une 3 ème et 4 passes gratuitement (assez rapide et en noir en blanc sur la prévisualisation). Cela me le fait que sur cette scène pourtant des scènes j’en ai fais des 10 aines en extérieur, je n’ai jamais eu de soucis, j’ai exactement les mêmes réglages… Donc si quelqu’un sait d’où vient ces 2 passes « parasites », ça m’aiderait !

    Merci

  • matt dit :

    Salut,
    Le problème doit venir d’un shader. Les passes supplémentaires sont générés par le paramètre « use interpolation » ou un SSS qui pre-calcul.
    Surtout en anim, mais d’une manière générale, faut pas utiliser le « use interpolation » 😉
    ++

  • Fred.archi dit :

    Sur les matériaux Vray, « use interpolation n’est pas coché ». J’utilise des matériaux extrêmement simples pourtant (une couleur et basta ).
    Petite précision, sur mon Vraysun, j’ai coché « invisible » (je coche automatiquement d’ailleurs), car c’est source de tâches souvent. J’ai également décoché « MAX-compatible ShadeContext » qui est parfois source de problèmes (j’ai essayé avec et sans).
    Je sais que le problème vient de l’irradiance map et pas du lightcache parceque lorsque je fais un rendu uniquement en lightcache, j’ai aucune tache.
    Pour l’irradiance,J’ai rééssayé en augmentant mon « dist tresh » à 0.5, j’ai refais un rendu Irradiance map toute les 5 images plutôt que toutes les 10 et le problème reste le même…
    Cette séquence est pourtant petite, seulement 160 images et la camera bouge de 2 m à tout casser.

    C’est à n’y rien comprendre… Et dire que en « single frame » ça marche impec !

    C’est en train de me rendre fou 🙂

  • Minimouch dit :

    Bonjour,

    je voudrais savoir si vous savez si c possible d’appliquer ce tutorial à Vray via Sketchup8?
    Je cherche à faire la visite d’un espace, donc d’effectuer juste un déplacement de caméra mais Sketchup ne me facilite pas la tâche.
    En effet, l’utilisation des caméras n’est pas du tout pareil sur Sketchup, on se place sur la 3d et on enregistre l’emplacement, mais pas de caméra et donc pas d’options de mouvement…

    Clairement, est-ce possible de faire une animation sur Vray via Sketchup?

  • matt dit :

    A priori je dirais que c’est possible, mais je ne suis franchement pas un utilisateur de Sketchup. Demande sur le forum de ChaosGroup 😉

  • Minimouch dit :

    Ok!

    Merci pour la réponse!

  • raptor3 dit :

    salut, je vous remercie pour votre tut, j’ai fait tout comme vous l’avez préciser mais j’ai un problème , je calcule le light cache en flythrough puis l’iradiance map en add incremental…etc….mais le probleme c’est que le rendu s’assombris peut a peux jusqu’a la fin des frames , ya que la cam qui bouge rien n’est animé sur la scène….et je ne sait pas ou se situe le blem pouvez vous svp m’eclairer , je rend avec 3dsmax 2008 +Vray rc 5…
    voila ma page

    https://www.facebook.com/isee3d

  • Matt Guetta dit :

    Salut,
    Il faudrait déjà commencer par travailler sur une version un peu plus récente de Vray… Essaye d’ouvrir un post sur le forum avec des Screenshots de tes paramètres et des rendu, ce sera plus simple de t’aider 😉

  • Natascha dit :

    Salut! Il me semble que ton lien de téléchargement pour ta scène est mort, possible d’y remédier? 🙂 J’en suis a mon 5e tuto et j’ai bien hâte d’essayer le tiens, mais j’aimerais ça être sûr que j’ai les bonnes valeurs! Merci!

  • Fred dit :

    Bonjour et merci pour cette démo.

    Existe t’il également un système qui permet a Vray d’adapter automatiquement l’exposition (le F-Stop par exemple) au court d’une animation de caméra ? Par exemple je passe d’un extérieur à une pièce peu éclairée ? Comme le ferait un œil humain ou un appareil photo quelconque ?

    Par avance merci de ton retour !

  • Adrien dit :

    Bonjour, merci pour ce super tuto !!

    J’ai juste une question : est-il possible de calculer l’IR avec plusieurs machine, via backburner ?

Leave a Reply