Les Artstronautes
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-39%
Le deal à ne pas rater :
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
399 € 649 €
Voir le deal

Les textures en 3D - 2.1 Modèles 3D

Aller en bas

Tuto Les textures en 3D - 2.1 Modèles 3D

Message par Marsu Mar 25 Oct 2011 - 21:47

Pour bien comprendre la mise en œuvre des textures, il est important de savoir comment sont structurés les modèles 3D manipulés par les applications, et notamment par la partie de l'application qui nous intéresse le plus : le moteur de rendu.

Les modèles 3D sont en fait des assemblages de surfaces creuses : ce sont des coquilles vides, un peu comme les modèles en papier d'euka, avec des coquilles sans aucune épaisseur physique.

Types de modèles

Il y a plusieurs types de modèles :

  • Une grand majorité des modèles sont en fait des maillages 3D (3D meshes) fait à partir de sommets (vertex, vertices au pluriel), d'arêtes (edges) qui joignent deux sommets, de faces (faces) triangulaires ou polygonales délimitées par les arêtes. Les faces assemblées constituent alors les surfaces de l'objet. Cette technique de modélisation présente un désavantage lorsque la surface est courbe : les facettes polygonales de l'objet sont parfois visibles au rendu. Nous verrons des techniques qui tentent de masquer ce défaut. La quasi totalité des applications de modélisation gèrent des modèles par maillage et ce type de modèles s'adapte à a peu près toutes les catégories d'objets.
    Les textures en 3D - 2.1 Modèles 3D Mailla10

  • Certains modèles sont directement bâtis à partir de surfaces mathématiques (les surfaces les plus couramment utilisées sont appelées NURBS pour Non Uniform Rational B Spline). Ces modèles sont plus complexes à générer mais présentant l'avantage d'avoir des courbes quasi parfaites au rendu. Certaines applications ne gèrent que ce type de modélisation (Rhino 3D, MoI/Moment of Inspiration), d'autres le proposent en complément des maillages (Carrara notamment). Ce type de modélisation est très efficace pour des objets manufacturés ou architecturaux, moins pour les objets organiques. Un objet modélisé par surface peut être converti en maillage, avec bien entendu une perte de la qualité du modèle mais c'est le prix à payer pour pouvoir exporter les modèles entre les programmes.
    Les textures en 3D - 2.1 Modèles 3D Spline10Les textures en 3D - 2.1 Modèles 3D Spline11

  • La troisième catégorie de modèle concerne les blobs. Les blobs sont en fait des formes géométriques simples (cubes, sphères, cylindres, tores, cônes) qui, assemblées, s'attirent ou se repoussent pour créer des formes complexes : masses rocheuses, nuages, formes organiques, gouttes d'eau, etc. Certaines applications supportent les blobs en natif (Carrara, Vue, POV-Ray).
  • Le dernier cas de modélisation est purement mathématique : les objets sont créés à partir d'objets mathématiques qui sont conservés par l'application sous la forme d'équations et de valeurs. C'est le cas notamment de Carrara ou POV-Ray, voire Vue pour les éco-systèmes. Ces modèles sont assez spécifiques au sens où les modèles ne sont pas directement visibles (les représentations à l'écran sont des approximations via des maillages restreints généralement) mais la forme compacte des objets permet à l'application d'en gérer des quantités importantes - de plusieurs centaines à plusieurs millions - dans des espaces mémoire restreints. Les objets ne prennent réellement leur forme géométrique qu'au moment du rendu. On peut aussi ranger dans cette catégorie les modèles linéaires qui servent à générer des objets dynamiques, comme les cheveux dynamiques sous Poser ou Carrara.

Mais pour un moteur de rendu, tous les modèles sont traités de la même manière : ils sont perçus au final comme une multitude de points placés sur une surface, peu importe la quantité de calculs préparatoires nécessaires pour en venir à ce stade. Lorsqu'un moteur doit calculer la couleur d'un pixel d'une image, il finit toujours par devoir s'intéresser au contact d'un rayon lumineux qui vient frapper l'objet en un point de sa surface.

Intérieur/extérieur

Par contre, comme nos modèles sont des coquilles vides d'épaisseur nulle, le moteur de rendu a un gros problème : celui de savoir s'il est à l'intérieur ou à l'extérieur de l'objet. Pourquoi ? parce que le moteur de rendu chercher à calculer la texture à l'extérieur de l'objet, pas à l'intérieur !

Prenons par exemple une sphère en maillage (en fait une approximation polyédrique d'une sphère), il nous semble évident de prime abord de déterminer où est l'intérieur et l'extérieur. Mais est-ce que nous considérons cette sphère comme une boule pleine ou une coquille vide ? Si l'objet est opaque, pas de différence... Quoi que ? Car si nous utilisons cette sphère pour créer un environnement naturel en plaçant dessus une image de ciel, notre scène va se trouver alors à l'intérieur de la sphère et il faudra alors dire au moteur que l'intérieur de la sphère est l'extérieur, sinon, il va nous rendre une image toute noire car il ne calcule pas la propagation de la lumière à l'intérieur d'un objet opaque et notre ciel doit être opaque pour être visible au rendu !

Si nous prenons maintenant une demi-sphère, l'ambiguïté est totale sur la notion d'intérieur ou d'extérieur.

Pour résoudre ce problème, les applications de modélisation et les moteurs de rendu utilisent la notion de normale. La normale est la direction (on parle de vecteur en mathématique) perpendiculaire à la surface de l'objet qui va toujours vers l'extérieur de l'objet. Ainsi, les applications n'ont plus aucun problème pour savoir si le rayon lumineux arrive à la surface de l'objet depuis l'intérieur ou depuis l'extérieur car il peuvent comparer la direction de la lumière avec la normale à la surface (l'opération mathématique s'appelle un produit scalaire).

Les textures en 3D - 2.1 Modèles 3D Hemisp10
Demi-sphère avec les deux orientations sous Poser. L'affichage à l'écran sous Poser rend invisibles les facettes du maillage qui ne sont pas orientées vers la caméra.

Projections et dépliages UV

Lorsqu'on souhaite appliquer des images à la surface d'un objet, il y a plusieurs façons de procéder : les projections et les dépliages UV.

Les projections consistent à projeter l'image (rectangulaire) à la surface de l'objet selon plusieurs méthodes :

  • Projection plane - L'image est appliquée telle quelle à la surface de l'objet. C'est une méthode utilisable si l'objet est plan et sans épaisseur.
  • Projection sphérique - L'image est déformée de manière à s'appliquer sur une sphère comme une planisphère de globe terrestre. C'est une méthode utilisable si l'objet est globalement de forme sphérique.
  • Projection cylindrique - L'image est enroulée sur l'objet comme une étiquette autour d'une bouteille. C'est une méthode utilisable si l'objet est globalement de forme cylindrique.

Les projections sont simples à mettre en œuvre mais sont très restrictives quant à la forme des objets. En pratique, l'application d'une image passe par un dépliage UV.

Un dépliage UV résulte d'un découpage du maillage de l'objet et de la pose à plat de ce découpage. C'est la démarche exactement inverse des modèles en papier d'euka, avec une différence, c'est que les parties du découpage ne sont pas forcément planes et donc la pose à plat va déformer les proportions des facettes du maillage (pensez à un morceau de plastique que vous cherchez à tenir à plat avec des punaises sur une planche : certains morceaux vont être distendus).
Les textures en 3D - 2.1 Modèles 3D Depuv110 Les textures en 3D - 2.1 Modèles 3D Depuv210
Exemple de dépliage UV de Suzanne (la mascotte de Blender) dans Blender.
Un dépliage UV est en général réalisé par le modeleur. Il n'y a pas qu'un dépliage UV possible mais une quasi infinité de dépliages et l'un des savoirs-faire du modeleur consiste justement à réaliser un dépliage qui ne crée par trop de morceaux - afin de simplifier le coloriage de l'image -  et minimise les déformations.

Avec des composants achetés, le modeleur fournit souvent des patrons (appelés ainsi en référence au découpage des tissus des vêtements en couture, templates en anglais) qui sont les images brutes des dépliages UV des modèles.

Pourquoi UV ? Pas pour ultra-violet, en cas ! En fait, les coordonnées 3D des modèles sont souvent appelées X, Y et Z. Alors, les coordonnées 2D des sommets du maillage sur dépliage sont appelées U et V pour les différencier.
Marsu
Marsu
Pisteur de satellites
Pisteur de satellites

Messages : 344
Date d'inscription : 27/09/2011

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum