modélisation

Quelques pixels d'actu 3D : lapin Blenderesque et making of

Petit tour de l'actu 3D des derniers jours...

  • La grosse nouvelle pour tous les fans de Blender, c'est la sortie de Big Buck Bunny, le court métrage issu du projet Peach. J'avais déjà parlé du projet il y a quelque temps. Pour rappel, l'idée est de réaliser un court métrage n'utilisant que des logiciels libres, Blender en tête. 7 mois de travail et 150 000 euros plus tard, voici le résultat :

    Big Buck Bunny from Blender Foundation on Vimeo.

    Les amateurs de HD iront sur le site officiel récupérer une des versions du film à télécharger (la résolution monte jusqu'à 1920x1080).

    J'avoue être un peu déçu par le film final ; au niveau technique 3D, effectivement, c'est très bon, et la cohérence artistique est elle aussi maîtrisée. Mais j'attendais plus d'un projet d'une telle ampleur qu'un scénario aussi peu inventif... Bien des projets d'étudiants en école de graphisme réussissent à dépasser largement le niveau de Big Buck Bunny sur ce point. Même s'ils sont souvent graphiquement moins réussis, une bonne partie d'entre eux font preuve d'inventivité au niveau scénaristique. Ici, rien de plus qu'une histoire à la tex avery pas franchement drôle. Pour un film de cette ampleur, je trouve ça un peu dommage.

  • Les gagnants du concours 2D et 3D Dominance War ont été rendus publics ; pour voir les gagnants et surtout leurs oeuvres, c'est par ici.

    Dominance War

  • Sur 3dm3.com, un article regroupe "35 Most Beautiful Making of Girls" : 35 making of de qualité, donc, dans les domaines de la 3D comme dans celui de la 2D (peinture numérique). Max Edwin Wahyudi est particulièrement bien représenté avec deux oeuvres photoréalistes : Ingrid Bergman et l'actrice sud-coréenne Song Hye Kyo.
    Même si on reste dans le making of et non dans le tutoriel, les artistes trouveront là quelques techniques intéressantes à développer. Les autres se contenteront d'admirer la maîtrise dont font preuve les infographistes de la liste.
    A voir d'urgence sur 3dm3 !

    Ingrid Bergman et Song Hye Kyo par Max Edwin Wahyudi, Night Elf par Max Koret Ella de Ziv qualIngrid Bergman et Song Hye Kyo par Max Edwin Wahyudi, Night Elf par Max Koret et Ella de Ziv qual

  • Pour finir, NVIDIA a annoncé la gratuité totale de Gelato Pro, moteur de rendu utilisant les capacités des cartes graphiques. A priori, il n'y aura plus de mise à jour : les équipes qui travaillaient sur Gelato rejoindront celles de Mental Ray, le moteur de rendu acquis via le rachat de Mental Images.

David : Un scanner 3D un peu moins artisanal.

Dans mon dernier billet, je parlais de Milkscanner, un programme qui permet de scanner des objets pour obtenir une version 3D en utilisant un liquide tel que le lait.

L'idée était intéressante car peu coûteuse, mais elle posait un certain nombre de problèmes, le plus évident étant que l'on ne peut pas tremper n'importe quel objet dans du liquide.

Je suis donc allé voir du côté d'un logiciel que je connaissais depuis un certain temps sans l'avoir testé : DAVID.

DAVID : un scanner 3D avec peu de moyens... mais un peu quand même

DAVID utilise une approche assez classique pour scanner des objets. Une ligne laser est projetée sur l'objet ; une webcam filme le résultat et le programme analyse la déformation de la ligne pour en déduire le relief.

Fonctionnement de DAVIDFonctionnement de DAVID

Sur l'image qui précède, on place aussi un repère placé derrière l'objet ; il sert lors de la calibration de la caméra. En effet, l'objectif crée des déformations, tout comme sur un appareil photo. Le repère permet de calculer ces déformations pour ensuite les éliminer.

Après avoir scanné un objet, on peut l'exporter au format .obj ; il est aussi possible de fusionner le résultat avec d'autres scans de l'objet sous d'autres angles, pour reconstruire l'objet totalement.

L'intérêt de DAVID réside surtout dans son prix : le logiciel en lui-même est gratuit (la fonction de fusion est payante, mais d'autres logiciels gratuits permettent de s'en passer), et donne de bons résultats même avec des lasers bas de gamme. Un niveau laser de bricolage pourra donner de bons résultats !

Quelques tests

Après quelques essais pour se faire la main, on parvient assez facilement à obtenir des résultats intéressants. Les points clés ne résident pas tant dans le matériel que dans la qualité de construction du repère et des manipulation : si les feuilles sur lesquelles sont imprimées le repère sont gondolées ou que l'angle n'est pas de 90°, si on balaie trop rapidement l'objet avec le laser ou que l'angle n'est pas assez grand, les résultats seront médiocres.

Pour preuve, voici mon premier objet scanné ; au départ, il s'agissait d'une sculpture d'éléphant.

Elephant scanné avec DAVID: Un premier test... plutôt raté.Elephant scanné avec DAVID: Un premier test... plutôt raté.

En revoyant la conception du repère et en améliorant les conditions de travail, mais aussi en modifiant les paramètres de la caméra (exposition, luminosité, saturation, etc), j'ai rapidement pu améliorer mes résultats. L'image qui suit est un de mes derniers essais ; il s'agit d'un fossile de trilobite.

Version numérisée du fossileVersion numérisée du fossile

Sur l'image, on note la présence de deux types de trous :

  • Des trous formant des lignes parallèles : ils viennent du fait que lorsque j'ai balayé l'objet, je suis passé trop rapidement sur ces endroits. Pour éviter ces trous, on peut soit effectuer un second balayage, soit scanner plus lentement. S'ils sont suffisamment petits, il suffit d'utiliser la fonction d'interpolation de DAVID, qui comblera les trous.
  • Des gros trous qui sont en fait des ombres portées ; l'objet étant en relief, le laser peut ne pas atteindre toute la surface. Pour supprimer ce défaut, on peut soit balayer une seconde fois en déplaçant le laser, soit tout simplement enregistrer cette passe et en faire d'autres après avoir tourné l'objet. On fusionnera ensuite les passes. C'est cette dernière solution que j'ai choisie.

Au final, on obtient un objet en haute résolution : 250 000 vertex et 500 000 faces pour le modèle de trilobite !

Trilobite: version haute résolution d'un fossile de trilobite ( 8cm de long)Trilobite: version haute résolution d'un fossile de trilobite ( 8cm de long)

Pour des applications temps réel, j'ai enfin réduit la résolution d'un facteur 200 environ.

Trilobite: version low poly du fossile, avec texture et en temps réel.Trilobite: version low poly du fossile, avec texture et en temps réel.

L'objet n'est pas fini, je dois encore générer une normal map à partir de l'objet haute résolution, afin de garder un maximum de détails pour le relief.

Pour en savoir plus

Une seule adresse : http://www.david-laserscanner.com. Vous y trouverez le logiciel, une boutique de lasers, un forum assez réactif en cas de problème et une aide assez détaillée sur la technique.

Milkscanner : un scanner 3D artisanal...

Milkscanner : un scanner 3D avec très, très peu de moyens

Milkscanner est un programme créé par Friedrich Kirschner dont le but est de pouvoir créer des modèles 3D à partir d'objets réels.

Il s'agit donc d'une sorte de scanner 3D, donc, sauf que contrairement aux scanners habituels, l'investissement est ici vraiment très faible, et aucun laser n'est utilisé.

Une heigthmap issue de Milkscanner: un point est d'autant plus proche qu'il est clair.Une heigthmap issue de Milkscanner :
un point est d'autant plus proche qu'il est clair.

Le Bouddha que j'ai utilisé pour créer la carte de profondeur qui précèdeLe Bouddha que j'ai utilisé pour
créer la carte de profondeur qui précède

C'est quoi cette bouteille de lait ? Un scanner 3D...

Milkscanner utilise en fait un constat simple : en plongeant un objet dans l'eau, les points situés à la limite entre partie émergée et immergée sont situés dans un même plan.

Le principe qui en découle est le suivant. On prend un objet que l'on met dans un récipient ; on place une webcam à la verticale de l'objet. On va ensuite alternativement rajouter du lait, prendre une photo, rajouter du lait, ...
La webcam sert à détecter les contours de la partie émergée de l'objet.

Si à l'étape n un point est émergé, on lui attribue le niveau de gris associé à l'étape n. En n+1, s'il est immergé, on ne le change pas : on sait que sa distance est celle du lait en n. S'il est émergé, on le met à jour avec le niveau de gris en n+1.

Ainsi, si on a un objet d'épaisseur 5 cm et que l'on rajoute approximativement 1/4 de cm de lait à chaque étape, on obtient une image comportant une vingtaine de niveaux de gris. Un point sera d'autant plus éloigné qu'il est foncé.

La précision dépend directement de la résolution de la webcam et du nombre de niveaux de mesures.

Milkscanner en action

Histoire de rendre les explications plus concrètes, voici deux vidéos de Friedrich Kirschner.
Tout d'abord, Milkscanner utilisé sur un petit objet :

Sur l'écran, on voit l'interface du logiciel : à gauche la vue de la webcam avec le contour de la partie émergée, à droite la heightmap en cours de construction.

Un inconvénient de la méthode étant que des objets clairs peuvent se confondre avec la luminosité du lait, il est possible d'utiliser un liquide foncé, comme dans cette vidéo :

Avantages et inconvénients

Milkscanner a l'avantage d'être simple dans son principe et d'utiliser un matériel très peu cher.

Les inconvénients sont malheureusement nombreux :

  • le résultat est une heightmap, pas un objet 3D. Il faudra convertir le résultat. Ceci est néanmoins facile avec beaucoup de logiciels, par exemple en tant que displacement map ;
  • la tension superficielle diminue la précision pour des objets de petite taille. ;
  • impossible de scanner des objets qui craignent l'immersion ;
  • L'astuce vue plus haut pour les objets clairs (utiliser un liquide foncé) fonctionne bien pour des objets unis. Pour un objet comportant par exemple du noir et du blanc, la détection a de fortes chances d'échouer. Il faudra ruser ; on peut imaginer de faire deux passes (liquide blanc puis foncé) pour ensuite fusionner les deux cartes obtenues.

Pour en savoir plus

WIP - orchidée, la suite

Suite du vieux Work In Progress de modélisation d'une orchidée sous Wings3D : voici quelques captures du résultat en temps réel.

Le rendu avec shaders

Le moteur 3D utilisé est Demoniak3D, déjà évoqué ici à plusieurs reprises ; j'ai rajouté un shader assez basique (modèle de phong avec un soupçon de normal mapping).
J'ai aussi modifié les textures afin de rectifier en partie certains raccords.

Orchidée - Wings3DOrchidée - wip 2orchidée 3 - wip

Et la suite ?

Plusieurs idées sonc actuellement envisagées pour la version temps réel finale :

  • Version basique : l'orchidée actuelle sur un "sol" ; matériau de type bois ou noir brillant.
  • Une autre possibilité serait d'inclure le modèle de plante carnivore (une sarracenia) que j'avais également modélisé sous Wings3D. Dans ce cas, l'orchidée pourrait être dans un vase et la sarracenia dans un pot... Le tout serait sur un des sols décrits dans le point précédent, peut-être avec une troisième plante.

    Sarracenia - modélisation sous wings 3DSarracenia - modélisation sous wings 3D

  • Dernière option envisagée pour le moment, une démo avec l'orchidée et un visage que je suis en train de modéliser.

Je suis bien entendu preneur de toute remarque ou suggestion. ;-)

En coulisses...

Pour les curieux, voila le rendu brut sans shader, à comparer à ce qui précède :

Orchidee-wip- pas de shaderRendu sous Demoniak3D sans shaderOrchidee-wip- pas de shaderRendu sous Demoniak3D sans shader

On voit clairement l'apport du shader : il apporte des ombres douces au modèle, et rend plus visible certains volumes.

L'effet de normal mapping est aussi présent, mais peu visible. Ceci est compréhensible dans le sens où les pétales sont relativement plates à la base : l'effet ne pouvait donc pas être prononcé dans le cadre d'un rendu qui se veut réaliste.
En enlevant la texture tout en laissant le normal mapping, on voit son effet sur la lumière :

normal mappingEffet de normal mapping (dos de la fleur)

Syndiquer le contenu