Modéliser un verre d'eau

Modéliser un verre d'eau

Tutoriel publié en juillet 2012 par Galdon dans la catégorie 3dsmax

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 :

Verre rempli de liquide, 3D images de synthèse

Et pour les impatients, le fichier .max à télécharger sur Stockmotion :

Verre d'eau Un verre rempli de liquide, création de matériaux eau & verre avec 3ds max et Mentalray
Télécharger

É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 :

Sélection arête 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 :

Redimmenssionnement du cercle en haut 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) :

Sélection des faces à extruder

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 ^^) :

Extrudage du cylindre

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 :

Élargissement du haut du verre

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).

Modificateur Lissage maillage (Meshsmooth)

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) :

Sélection des arêtes à chanfreiner

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 : 3ds max popup chamfer) pour pouvoir régler précisément les paramètres :

Chanfreinage des arêtes

Il ne reste plus qu'à refaire la même pour les 3 autres "contours" du verre (je vous laisse faire) :

Schéma des zones à chamfreiner

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 :

Ajustement de l'eau à son récipient

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 :

Eau lisse

Étape 2 : matériaux verre & eau

Eau

réfraction de l'eau
Réfraction dans un verre d'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 :

Créer un matériau eau avec 3ds max

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 :

Réfraction 3ds max mental ray

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 :

Editeur de matériaux : revenir au parent (précédent)

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 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) :

Matériaux 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 :

Affectation du matériau Glass (physics_phen) à l'objet verre

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 :

Eclairage global 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) ) :

Couleur Skylight blanc pur

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 :

Plan représentant le sol

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) :

Couleur de l'arrière plan 3ds max

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 :

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 :

Premier rendu

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 :

Réfraction dans un verre d'eau

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 :

  1. Activer les caustiques
    Allez dans Render Setup, onglet Indirect Illumiation, rollout Caustics and Global Illumination (GI)
    Cochez la case Enable dans la partie Caustics :

    Activer les causiques sur MentalRay

    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 :

    Decay, régler l'intensité des caustiques

  2. Définir quel(s) objet(s) provoque(nt) des caustiques
    Faites un clic droit sur le verre dans la scène, puis Object Properties

    Propriétés d'un objet dans un viewport

    Onglet mental ray, cochez la case Generate Caustics

  3. 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 :

    Ajout d'une lampe omnidirectionnelle

    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 :

Verre rempli de liquide, 3D images de synthèse

Vous pouvez télécharger le fichier .max de ce tuto sur Stockmotion :

Verre d'eau Un verre rempli de liquide, création de matériaux eau & verre avec 3ds max et Mentalray
Télécharger

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 !

15 commentaires :
Seuls les 10 derniers commentaires sont affichés.
Cliquez ici pour afficher tous les commentaires
commentaire n°2376 par Galdon
Galdon jeudi 11 octobre 2012, 19:45
@flybil : Ah ouais, c'est quoi cette autre technique ?

Parce que justement je viens de mettre à jour mon 3ds max (avant j'avais le 2009, c'est cette version que j'ai utilisé dans ce tuto).
commentaire n°2395 par Happyrain
Happyrain vendredi 26 octobre 2012, 01:12
Hey ! Tout d'abord : Epic Merci et GG pour ce tuto très bien ficelé !

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 :)
commentaire n°2396 par reo
reo dimanche 28 octobre 2012, 02:44
j'aimerai savoir,comment fait-on pour avoir le cube en haut à droite qui indique l'angle dans le quel on est? merci.
commentaire n°2401 par Galdon
Galdon mercredi 7 novembre 2012, 11:10
@reo : ça s'appelle le ViewCube.

J'ai écrit une FAQ qui explique comment l'afficher et le masquer : Viewcube
commentaire n°2403 par Xmpltdf
Xmpltdf mercredi 7 novembre 2012, 15:37
Hey,
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 ?
commentaire n°2434 par GaelG
GaelG mercredi 5 décembre 2012, 21:21
Bonjour, j'ai essayé de suivre ce tuto avec la version 2013 mais j'ai quelques problèmes :
- 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 !
commentaire n°2437 par jbweb
jbweb jeudi 6 décembre 2012, 16:42
Salut,

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.
commentaire n°2438 par jbweb
jbweb jeudi 6 décembre 2012, 16:44
Xmpltdf, il faut que tu coches "generate caustics" dans "object properties" à la fois pour l'omni et l'objet qui va recevoir la lumière.
commentaire n°2824 par Paysannerie
Paysannerie mercredi 28 mai 2014, 21:36
Très joli tuto !
Le travail du verre en 3D et les caustics sont un sujet passionnant ;-)

Merci à vous
commentaire n°2935 par Nirinamantr
Nirinamantr jeudi 27 novembre 2014, 06:38
bravo!
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré