Mikros Image – Madonna « 4 minutes to save the world »

beignoire3.jpg

 

 

3DVF : Peux-tu justement nous en dire plus sur leur préparation et leur mise en place de chacun d’eux ?

 

 

Benoit Holl : Nous avons cherché pour le mur à obtenir une animation organique et naturelle, en donnant un effet « implacable » de son avancé dans le décors. Au vu du nombre de plans à traiter, Laurent a cherché à automatiser le système au maximum. Aucun point du mur ne devant reculer, c’est en le « poussant » avec des particules que Laurent a construit une bibliothèque d’animations de murs, plus tard déclinées selon les plans.

Après beaucoup d’essais avec divers outils et techniques, Fabrice, sous la houlette de Laurent Clavier (Lead developpeur du studio VFX) a pris le parti de gérer la découpe des objets au moment du rendu, à l’aide de shaders dédiés à cette tâche.

Ce choix a permis d’alléger considérablement la partie interactive (aucune opération ne s’effectuant dans Maya). Il suffisait pour le graphiste de désigner dans Maya les objets « découpants » et les objets »découpés ».

 

 

Fabrice Macagno nous explique le principe de la technique de « boolean shading »

L’idée est simple: au lieu de découper physiquement des faces -via les opérations booléennes – on va, au moment du rendu, rendre transparentes les parties de l’objet censées être découpées. Les intérêts sont multiples :

• pas de temps lié à l’opération booléenne (qui peut vite devenir longue selon la complexité et le nombre d’objets)
• cohérence au cours de l’animation (les opérations booléennes peuvent générer des artéfacts liés au positionnement des uvs sur l’objet résultat)
• contrôle du shading de la surface de l’objet découpé ET de la surface d’intersection
• Le motion blur « 3d » est possible car contrairement à une opération boolééne, le nombre de points qui
définissent les objets reste constant dans le temps.

On utilise 2 shaders : l’un sera assigné à l’objet découpant – ou « slicer » – et l’autre à l’objet découpé – « cutted » -.

slicer shader
Le rôle du slicer shader est de :
• déterminer si l’on se trouve à l’intérieur d’un objet découpé
• récupérer via le shader de l’objet découpé le shader à utiliser pour la surface d’intersection
• évaluer ce shader

cutted shader
Le cutted shader détermine si le pixel évalué est transparent ou non. La méthode de test
dépend de l’objet utilisé en tant que slicer.

un peu plus deep
C’est le calcul de la visibilité qui peut devenir compliqué. Il dépend du type d’objet utilisé en tant que slicer. Des objets paramétriques tels que des plans, sphères ou cubes permettent de décider assez facilement. Pour un plan la normale est suffisante, pour une sphère on utilise le rayon. On s’est limité à ces cas simples. Pour des slicers quelconques, on pourrait utiliser leur bounding box plus quelques lancer de rayons par exemple. « Lancer de rayons » car le moteur de rendu qu’on utilise -arnold- est un pur ray tracer et c’est donc dans cette logique qu’on a abordé ces shaders. On a été aidés tout au long du projet par les développeurs d’arnold qui ont mis à notre disposition certaines fonctionnalités comme un lancer de rayon très rapide permettant de simplement tester une intersection, sans évaluation de shader. Associé aux « ray types », on peut ainsi éviter un ralentissement si le nombre d’objets à traverser devient important.

 

 

Chargement....

A Lire également