jeudi 1 septembre 2011

Définition d'un MatCap et utilisation dans Blender

Les Matcap, si mes renseignements sont exacts, sont une invention propriétaire de la société Pixologic pour leur logiciel phare ZBrush. La définition que je leur donne est la suivante : il s'agit d'une sorte d'échantillon de matière représentée simplement par une sphère "aplatie" en deux dimensions (MatCap est l'abréviation des mots anglais "Matiere Capture").

L'argument publicitaire des matcap est qu'ils ne nécessitent aucun paramétrage compliqué (pas de réglage simultané de nombreux paramètres à ajuster pendant des heures) ni aucun réglage de lumière. Tout est contenu dans l'échantillon sphérique, constituant le matcap.

Si vous allez sur le site de Pixologic pour ZBrush, vous trouverez facilement l'endroit où l'on peut voir des tonnes de matcap à l’œuvre. Voici un exemple, pris sur leur site, montrant 9 matcap :



Vous pouvez voir, par exemple, des allures métalliques sur ces quelques échantillons sphériques. Les MatCap sont donc appliqués par ZBrush d'une façon simplissime. Suivant l'orientation d'une facette du mesh auquel est appliqué le MatCap, ZBrush ponctionne les couleurs sur la sphère MatCap en fonction de l'orientation normale de la surface à colorer. En gros, si je le dis autrement, les faces pointant vers le haut recevront les couleurs du haut de la sphère plate, les facettes orientées à 270° recevront les couleurs de la sphère placées à 270°, et ainsi de suite pour toutes les valeurs de 0 à 360°.

Le schéma ci-dessous, à l'aide d'un MatCap un peu spécial (c-à-d sans aucun relief mais avec des zones aux couleurs bien définies), vous montre cela bien mieux qu'avec des mots. Les faces du mesh Monkey qui sont orientées vers vous seront en jaune, les faces orientées vers le haut et l'arrière seront en rouge, et ainsi de suite... Avez-vous compris le principe ? Oui, j'en suis sûr. Par exemple, la tempe du Monkey vu de côté, qui est ce qu'il y a de plus perpendiculaire à vous, est bien colorée en jaune, effectivement.


Les matcap sont surtout utiles dans le domaine de la sculpture 3D (la sculpture étant une des fonctions principales de ZBrush). Ils permettent d'apprécier rapidement les formes de l'objet qu'on est en train de sculpter dans son logiciel favori. L'utilisation d'un MatCap rajoute donc en quelque sorte une couche supplémentaire d'appréciation du volume spatial de votre sculpture.

Et dans Blender alors ?

Savez-vous qu'il est possible de simuler l'application d'un MatCap dans Blender ? Rien de plus facile. Allons-y !

Comme nous ne sommes pas des voleurs de "textures propriétaires", nous allons tout simplement en créer une avec le magnifique logiciel vectoriel gratuit : INKSCAPE. Ce site n'étant pas consacré à Inkscape, je vais juste me contenter de dire le minimum. Vous créez un document carré de 1000px sur 1000px. Vous tracez un cercle parfait et vous le centrez sur le document. Vous appliquez le dégradé de votre choix et vous obtenez un truc semblable à ceci :




Vous voyez que j'ai pris la peine de mettre la couleur claire plutôt vers le haut et la couleur foncée, plutôt vers le bas. Maintenant, j'exporte mon image carrée au format PNG qui permet de gérer la transparence des coins de l'image, et vous obtenez le fichier PNG suivant, que vous pouvez utiliser (tel que je vous le fournis) pour la suite de ce didacticiel :

Cliquez sur l'image pour voir la MatCap en grand


Comment appliquer maintenant cet échantillon de couleur sphérique à un mesh se trouvant dans notre scène Blender ? C'est très simple, et surtout : c'est faisable car Blender est vraiment muni de toutes les options possibles et imaginables pour pouvoir paramétrer toute sorte de texture et de matériau, suivant ce que l'on désire.

Supprimez le cube par défaut, ajoutez sur votre scène un mesh de Monkey, tournez-le de 90° sur l'axe des X pour remettre son visage droit, ajoutez un modifier SubSurf et lissez suffisamment en portant View à 2. Puis dans le panneau Tools à gauche, cliquez sur Shading "SMOOTH" pour terminer la préparation du mesh initial.

On ajoute ensuite un nouveau "material", et



on coche l'option Shading "Shadeless". Pourquoi donc faire cela ? On enlève en général l'affichage des ombres simplement parce qu'elles nuisent un peu à la bonne appréciation du MatCap appliqué sur l'objet, mais ce n'est pas une chose à faire obligatoirement.

Ensuite, on va dans la section texture pour y régler rapidement quelques trucs. On crée d'abord une toute nouvelle texture, on choisit le type de texture comme "Image or Movie". Puis, avec Image Open, on va chercher le fichier PNG (celui que j'ai donné ci-dessus et que vous avez sauvé sur votre disque dur).

Et surtout, on n'oublie pas de mettre le MAPPING Coordinates sur Normal :



Et voilà. En chipotant un peu avec l'Ambiant Occlusion et l'Environment lighting, vous obtenez rapidement un rendu similaire à ceci :



Sympa, non, le rendu issu de notre petite manipulation ?

Mais est-ce vraiment utile puisqu'on ne sculpte pas durant le rendu ?

En effet, puisque l'intérêt des MatCap est de disposer d'une meilleure appréciation du volume de l'objet durant sa sculpture, ce serait bien si on pouvait sculpter tout en profitant directement de la vue "colorée" fournie par le MatCap.

Et bien oui, c'est aussi possible sous Blender, grâce au mode GLSL. Il s'agit d'un mode de travail qui permet de voir immédiatement l'application des textures, en temps réel, dans la vue 3D de modélisation. GLSL signifie OpenGL Shading Language, et autant vous le dire tout de suite : il vous faut une carte graphique plutôt puissante pour supporter ce mode d'affichage.

Comment faire pour voir, dans Blender, l'objet à sculpter en mode GLSL ?

Dans le panneau des propriétés (touche n), vous allez dans la section display, et vous repérez la section Shading, et au lieu de Multitexture, vous choisissez l'option GLSL :



Mais ce n'est pas tout : il faut aussi spécifier que le Viewport Shading doit être en mode Textured :


Maintenant, si vous voulez ressentir le bénéfice de l'affichage de l'objet avec un MatCap, essayons de sculpter un peu : enlevez le modifier subsurf du Monkey (que je vous ai fait mettre au début de ce didacticiel) et mettez lui maintenant un modifier Multiresolution, puis cliquez sur Subdivide 2 ou 3 fois :


Ensuite, mettez-vous en mode Sculpt :


Et ressentez enfin les sensations de la sculpture au visuel amélioré ! Ce didacticiel n'étant pas centré sur les bonnes pratiques de l'art de sculpter, je n'entrerais pas dans les détails ici pour savoir comment bien tailler les pixels, mais ceux qui ont déjà pris connaissance avec les bases de la sculpture en 3D apprécieront sans aucun doute la vision des MatCap en temps réel.

Voici pour finir un screenshot de la vue 3D, avec le Monkey Suzanne, à qui j'ai mis quelques bosses sur la tête, pour mieux apprécier la gestion du volume (pardonne-moi, Suzanne !).


Une dernière précision :

Concernant l'utilisation du matcap, c-à-d l'image carrée avec la sphère au centre, dans Blender, il n'est pas nécessaire que la zone du carré en dehors de la sphère soit en transparence alpha. Blender ne va chercher ses infos de couleur que dans la zone sphérique. Donc, par exemple, cette image de matcap cuivrée ci-dessous (trouvée à plusieurs endroits du net et dont je ne sais pas qui en est l'auteur ?), les coins sont représentés par des pixels noirs :


Cela n'empêche nullement Blender de récupérer les infos de couleur seulement dans la sphère, pour appliquer les couleurs du matcap au mesh, comme vous le montre très bien le screenshot ci-dessous, où l'on peut voir qu'on a bien l'impression de sculpter une forme 3D en cuivre :



Bonnes sculptures à tous, et à la prochaine !

Calogero GIGANTE

3 commentaires:

  1. Super ton tutoriel !
    Et merci de l'avoir fait en français ^^

    RépondreSupprimer
  2. amazing, wonderful this tutorial, you saved my life. Many thanks, champ!

    RépondreSupprimer
  3. Super clair, en effet. Merci vraiment pour ce tuto, trouvé par hasard en cherchant des infos sur les matcaps. Du coup, j'ai tout compris.

    RépondreSupprimer