Dans ce tutoriel 3D Studio Max, nous allons apprendre à créer un verre d'eau photoréaliste à l'aide du moteur de rendu MentalRay.
L'intérêt de ce tuto, c'est la création de matériaux assez délicats à réaliser comme le verre et l'eau qui font intervenir des phénomènes physiques comme la réflexion et la réfraction. Mais il peut aussi être intéressant au niveau de la modélisation pour ceux qui débutent.
Sans plus attendre, voici le résultat final de ce tutoriel :
Et pour les impatients, le fichier .max à télécharger sur Stockmotion :
Étape 1 : modélisation
Modéliser un verre
On va commencer par modéliser le verre en partant d'un cylindre :
- rayon : 20,0
- hauteur : 80,0
- segments (hauteur): 1
- segments (couvercle) : 2
- côtés : 18
Transformez ce cylindre en Editable Poly (clic droit sur le cylindre > Convert To > Convert to Editable Poly).
Mettez-vous en mode de sélection Edge (arête) et sélectionnez une arête appartenant au cercle sur le haut du cylindre :
Maintenant cliquez sur le bouton Loop, ce qui va avoir pour effet de sélectionner toutes les autres arêtes en "faisant le tour" du cercle.
Utilisez le Resize Tool (outil taille) pour agrandir ce cercle, de façon à ce qu'il soit très proche du bord du cylindre :
Passez en mode de sélection Polygon et sélectionnez les faces qui se trouvent à l'intérieur du cercle que l'on vient d'agrandir (attention à ne pas sélectionner les faces qui se trouvent derrière par inadvertance, pour cela le mieux c'est de cocher la case Ignore Backfacing) :
Il ne reste plus qu'à creuser le verre en cliquant sur le bouton Extrude (attention à ne pas extruder plus profond que le fond du verre, sinon vous aurez quelques soucis au rendu ^^) :
Nous obtenons ainsi un verre assez simple, vous pouvez sélectionner les faces du bord du verre pour l'élargir un peu en haut et ainsi lui donner une forme conique :
Remarque : il existe d'autres techniques pour modéliser un verre, notamment celle (très courante) qui consiste à modéliser une spline pour ensuite utiliser le modifier Lathe afin de former un verre à partir de la révolution de la spline autour d'un axe (si vous voyez ce que je veux dire... ;)
Meshsmooth
Notre verre est un peu carré vous ne trouvez pas ?
Un peu de lissage ne lui fera pas de mal, pour cela vous allez lui appliquer le modifier Meshsmooth (lissage maillage).
Mais là on un petit souci, le modifier a beaucoup d'influence sur la forme du verre, qui est maintenant déformé.
C'est normal, car c'est justement la fonction du modifier Meshsmooth qui va toujours chercher à lisser au maximum le maillage (en faisant une interpolation).
Heureusement, il y a une technique assez simple qui permet de contraindre et de contenir l'action de Meshsmooth, tout simplement en doublant certaines arêtes. Plus 2 arêtes sont serrées, plus elles seront "finement" lissées par meshsmooth.
Et vous savez quoi ? 3D Studio Max permet de doubler des arêtes très facilement, il suffit de sélectionner les arêtes à doubler, par exemple celles-ci en haut du verre (procédez comme tout à l'heure pour les sélectionner : mode de sélection Edge puis bouton Loop) :
Et maintenant y'a plus qu'à cliquer sur le bouton Chamfer (chanfreiner). Cliquez plutôt sur le petit bouton à droite (avec l'icône en forme de fenêtre : ) pour pouvoir régler précisément les paramètres :
Il ne reste plus qu'à refaire la même pour les 3 autres "contours" du verre (je vous laisse faire) :
Modéliser l'eau
Pour l'eau ça va être plus simple, l'idée c'est juste de créer un cylindre qui épouse la paroi intérieure du verre, donc comme tout à l'heure créez un nouveau cylindre :
- rayon : ~15,0 (arrangez vous pour que ça corresponde à l'intérieur du verre)
- hauteur : 50,0
- segments (hauteur): 1
- segments (couvercle) : 2
- côtés : 18
Ajustez sa forme au verre :
Puis convertissez-le en Editable Poly, appliquez-lui Meshsmooth et doublez les arêtes avec Chamfer comme vous l'avez fait pour le verre afin de contrôler le lissage :
Étape 2 : matériaux verre & eau
Eau
Pour donner au contenu du verre l'apparence de l'eau, il va nous falloir créer un matériau qui ait plusieurs propriétés :
- La transparence
- La réflexion
L'eau réfléchit la lumière, un peu comme un miroir - La réfraction
C'est un phénomène physique qui fait que les rayons lumineux sont déviés de leur trajectoire lorsqu'ils traversent l'eau. C'est pour ça qu'on ne voit pas bien à travers un verre d'eau, les objets se trouvant derrière (ou dedans) sont déformés, il y a une sorte d'effet loupe.
Ouvrez l'éditeur de matériaux (touche M ou Rendering > Material Editor), cliquez sur un slot vide (par slot, comprenez un petit emplacement représentant une sphère qui permet d'avoir un aperçu du matériau).
Utilisez ces paramètres :
- Shader Basic Parameters
- Sélectionnez Blinn dans la liste déroulante (normalement vous n'avez rien à faire car c'est la valeur par défaut)
- Blinn Basic Parameters
- Ambient : RGB(53, 79, 98)
- Diffuse : RGB(53, 79, 98)
- Specular : RGB(139, 154, 165)
- Opacity : 50
- Specular Highlights
- Specular Level : 150
- Glossiness : 50
- Soften : 0,1
L'aperçu de votre matériau devrait ressembler à ça :
Mais ça n'est pas fini, maintenant on va ajouter à ce matériau ses propriétés physiques (réflexion, réfraction). Pour cela, dépliez la partie Maps (toujours dans l'éditeur de matériaux).
Vous voyez une série de paramètres avec 3 colonnes : le nom du paramètre (avec une case à cocher à gauche), un champ : Amount et un bouton : Map.
Cochez la case du paramètre Refraction, entrez 58 dans le champ et cliquez sur le bouton :
Une nouvelle fenêtre s'affiche : Material/Map Browser, elle liste un ensemble assez impressionnant de ce qu'on appelle des "shaders". Le shader que nous allons utiliser s'appelle Raytrace ; sélectionnez-le et cliquez sur OK.
Pour sortir de la map Refraction et revenir aux paramètres du matériau, cliquez sur la liste déroulante en haut de l'éditeur de matériaux et cliquez sur la première ligne :
Voilà, on pourrait se contenter de ça mais nous allons ajouter une autre map (texture) à notre matériau, pour le paramètre Bump.
Le bump mapping est une technique qui consiste à utiliser une texture pour donner une fausse impression de relief à un objet (fausse car ces aspérités ne sont pas réelles, elles sont calculées lors du rendu, et plus précisément lors du calcul de l'éclairage).
Cochez la case Bump, entrez 4 dans le champ, puis cliquez sur le bouton.
Dans la fenêtre, choisissez le shader "Noise", puis cliquez sur OK.
Dans Noise Parameters, choisissez :
- Noise Type : Fractal
- Levels : 10,0
Bien, notre matériau eau est maintenant terminé, donc on va l'affecter à l'objet qui représente le contenu du verre sur la scène, en faisant un glisser-déposer du slot vers l'objet.
Verre
Le verre est un matériau assez semblable à l'eau (il a lui aussi des propriétés de réflexion et de réfraction).
Pour autant on va utiliser une autre technique pour créer ce matériau. En fait nous n'allons pas le créer, puisqu'il existe déjà dans 3D Studio Max, avec le moteur de rendu MentalRay.
Pour y accéder, il va falloir définir MentalRay comme moteur de rendu (le moteur de rendu par défaut est Scanline (ou Lignes de balayage)).
Affichez la fenêtre des propriétés de rendu (en appuyant sur F10 ou en allant dans Rendering > Render Setup).
Dans l'onglet Common, rollout Assign Renderer, cliquez sur le petit bouton , choisissez mental ray Renderer dans la liste et cliquez sur OK.
Ouvrez l'éditeur de matériaux (touche M), cliquez sur un slot vide puis cliquez sur le petit bouton Get Material pour afficher la fenêtre Material/Map Browser.
vous allez voir toute une série de nouveaux matériaux marqués d'une pastille jaune (qui indique que ce sont des matériaux ou shaders spécifiques à MentalRay) :
Dans la liste, sélectionnez le matériau Glass (physics_phen), puis cliquez sur le bouton OK.
Le matériau vient d'être chargé dans le slot, maintenant vous pouvez l'affecter à l'objet verre dans la scène :
Glass (physics_phen) (pour physics phenomenon) est un matériau prédéfini et presque entièrement automatique fourni avec MentalRay. Comme son nom l'indique, il imite le verre et ses propriétés physiques (réflexion, réfraction, caustiques...)
Étape 3 : rendu avec MentalRay
Nous avons terminé la modélisation et la création des matériaux verre et eau pour nos objets, il ne reste plus qu'à paramétrer le rendu de la scène.
Qui dit rendu dit éclairage. Pour cela nous allons utiliser l'illumination globale (GI dans le jargon) pour que 3ds max calcule automatiquement un éclairage "naturel" (en faisant rebondir les rayons pour produire de l'éclairage indirect).
Creéz un éclariage de type Skylight :
Positionnez-le où vous voulez sur la scène, ça n'a aucune importante, un skylight éclaire toujours par le haut avec des rayons parallèles, comme le soleil.
Par défaut, cet éclairage à une légère teinte bleue, on va modifier ça et lui donner une teinte blanche pure (RGB(255, 255, 255) ) :
Qui dit éclairage dit ombre (même si un matériau transparent comme le verre ne crée pas beaucoup d'ombre... ;), donc on va créer un plan horizontal de couleur blanc cassé : RGB(240, 240, 240) , pour recevoir ces ombres portées et les faire apparaitre au rendu :
Dernier point, nous allons définir la couleur de l'arrière-plan pour que le plan (RGB 240, 240, 240) se fonde avec l'arrière-plan. Allez dans Rendering > Environement (touche 8), et dans Background, définissez la couleur : RGB(240, 240, 240) :
Paramétrage du rendu
Ouvrez la fenêtre de réglage du rendu (Rendering > Render Setup, ou touche F10), onglet Indirect Illumination.
Cochez la case Enable Final Gather :
Cette option permet d'activer l'illumination globale, c'est l'équivalent du lanceur de rayon pour le moteur de rendu Scanline pour ceux qui connaissent.
Cliquez sur render, après quelques secondes (voir minutes) de calcul, l'image apparaît :
Nice !
Cependant, lors de ce premier rendu vous allez peut-être observer des anomalies au niveau du verre, comme s’il y avait des bulles emprisonnées à l'intérieur. Ces problèmes apparaissent parfois avec le matériau Glass physics_phen.
On appelle cela des artefacts, la cause de ce bruit parasite est un peu technique à expliquer, mais je vais quand même tenter :
Pour calculer l'éclairage, MentalRay imite le comportement de la lumière en simulant le parcours des rayons lumineux. Chaque rayon va rebondir un certain nombre de fois, on appelle cela la profondeur (Depth).
Or le matériau Glass physics_phen a des propriétés physiques particulières qui lui font dévier les rayons (la réfraction notamment). Le bruit est causé par le fait que certains rayons n'ont pas le temps de ressortir du matériau, ils restent piégés à l'intérieur car ils ont atteint la profondeur maximale et ne peuvent donc plus rebondir et ainsi avoir une chance de ressortir du verre.
Pour diminuer ce bruit, il va falloir modifier les paramètres du rendu pour obtenir un rendu plus fin, mais cela va aussi augmenter le temps de rendu car plus de calculs vont être nécessaires.
Voici les paramètres à modifier pour améliorer le rendu :
Allez dans Render Setup (F10), onglet Renderer, rollout Sampling Quality, zone Samples per Pixel. Dans Minimum choisissez 4, et dans Maximum sélectionnez 16. Si ça ne suffit pas, passer le minimum à 16.
Étape 4 : les caustiques
Dernier point, il s'agit des finitions.
Reprenons l'image de tout à l'heure :
On peut voir des taches de lumières apparaître sur la table, provoquées par le verre et l'eau qu'il contient.
On appelle ça des caustiques.
Il se trouve que MentalRay est capable de simuler les caustiques, pour cela il faut faire 3 choses :
- Activer les caustiques
Allez dans Render Setup, onglet Indirect Illumiation, rollout Caustics and Global Illumination (GI)
Cochez la case Enable dans la partie Caustics :
Un peu plus bas, vous trouverez un champ Decay. Cette valeur détermine l'intensité des caustiques, plus le nombre est petit, plus les caustiques sont intenses. La valeur par défaut est 2,0, mettez 1,2 à la place pour rendre les caustiques plus visibles :
- Définir quel(s) objet(s) provoque(nt) des caustiques
Faites un clic droit sur le verre dans la scène, puis Object Properties
Onglet mental ray, cochez la case Generate Caustics
- Ajouter une lampe (parce qu'il faut bien entendu de la lumière pour provoquer des caustiques, et que la lumière Skylight déjà présente dans la scène ne fait pas l'affaire, puisque les Skylight sont un type d'éclairage particulier qui ne génère pas de caustique.
Créez donc une lampe de type Omni :
Placez là assez haut au dessus du verre, vous pouvez l'excentrer si vous voulez, en fonction de l'endroit où vous voulez "projeter" les caustiques.
Dans les paramètres de cette lampe (onglet Modify dans la barre de droite) :
Entrez 0,2 dans le champ Multiplier (rollout Intensity/Color/Attenuation)
Déochez la case Diffuse (rollout Advanced Effects). Quand cette case est décochée, la lumière n'éclaire plus les objets, elle a alors uniquement une incidence sur les propriétés "spéculaires" (specular) des matériaux.
Ce comportement a pour effet de rendre le viewport tout noir (normal, il n'y a plus de lumière). Vous pouvez dire à 3ds max d'ignorer l'éclairage dans le viewport en utilisant le raccourci
Ctrl + L (Default Lighting Toggle), de façon à utiliser l'éclairage par défaut (comme quand la scène ne contient aucun éclairage).
Maintenant refaites un rendu, vous allez voir apparaître des caustiques sur le plan :
Vous pouvez télécharger le fichier .max de ce tuto sur Stockmotion :
Si vous n'avez pas tout compris, vous pouvez regarder cette vidéo qui montre rapidement les différentes manipulations faites dans ce tuto :
Encore faim ? allez lire ça : effet maquette !
J'ai eu 3DS Max aujourd'hui même, (2013), j'ai lu les tuto de présentation de ce site, et je me suis attaquer à ce fameux verre d'eau, je suis vraiment époustouflé par le rendu final !
Bien que j'ai buter sur quelque petite chose dans le tuto, qui sont différente dans la v.2013 (Comme glass plysic_phen par exemple)
Mais encore gg et merci a toi ;)
(Effectivement, beaucoup plus long le calcule avec l'anti-crénelage en 4, 16x xD mais sa en vaut vraiment le coup)
Hâte de voir d'autre tuto dans le même genr :)
J'ai écrit une FAQ qui explique comment l'afficher et le masquer : Viewcube
Jai un soucis de rendu.
On me dit soit "no photons stored after emitting" dans la fenetre de rapport de rendu de mr (ca cest quand je coche generate caustic dans les proprietes de l'omni), soit il y a une erreur qui me marque "There are no caustic photon emitters in the scene" avant que le rendu ne se lance.
Tu veux bien m'aider ?
- au niveau du modèle de rendu : Nvidia Mental Ray = Mental Ray ?
- au niveau du matériau de verre, glass plysic_phen n'existant plus, j'ai essayé de le remplacer par un autre mais j'obtiens toujours un reflet noir plutôt affreux sur le verre et mon rendu est très loin de celui escompté... Pourrais-je avoir un peu d'aide s'il vous plait ? Merci !
Pour la différence entre Nvidia Mental Ray et Mental ray je ne peux pas trop t'aider, je pense que la différence se trouve au niveau des performances mais je n'en suis pas sur du tout.
En revanche pour le matériau je te conseille d'essayer Arch and design avec un template "glass solid". C'est pas tout à fait ça mais en bidouillant tu peux avoir un résultat relativement sympa.