Le concours TDT3D sur l'architecture asiatique vient de se terminer. Comme je l'avais annoncé ici il y a quelque temps, j'ai participé dans la catégorie 3D temps réel.
L'objectif :
Une visite virtuelle du temple du ciel, à Pékin, et plus particulièrement d'un des bâtiments du site, la salle des prières pour la récolte, qui est probablement le plus connu.
L'aspect actuel du site :
Temple du Ciel: projet 3D temps réel (photo : wikipedia)
Et... voici le résultat, en vidéo pour le moment ! La scène entière sera disponible très prochainement en téléchargement.
Quelques explications :
Une grosse phase de documentation a été nécessaire pour avoir des informations sur les proportions et l'architecture du bâtiment. L'intérieur en particulier est assez mal documenté au niveau photographique : le public ne peut pas rentrer et les photos sont prises depuis l'entrée, avec de mauvaises conditions d'éclairage (l'intérieur est très sombre).
Je ne suis pas totalement satisfait du résultat au niveau de l'Ambient Occlusion, qui assombrit peut-être trop le bâtiment. Voici la version sans effet d'AO :
Tempel du ciel: Version sans Ambient Occlusion
Avec le recul, je me dis qu'un résultat intermédiaire aurait été préférable.
Je n'ai pas non plus eu le temps d'intégrer une visualisation en version panoramique ( vue à 360° à l'écran) comme je l'avais prévu, mais je pourrai toujours le faire par la suite.
L'expérience a tout de même été très formatrice, et je compte bien me lancer à nouveau dans ce type de concours très bientôt !
Pour finir, un grand merci à JeGX, le développeur principal de Demoniak3D, qui m'a beaucoup aidé sur ce projet.
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 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 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 !
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é.
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 fossile
Sur l'image, on note la présence de deux types de trous :
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)
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.
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.
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.
Parmi les premiers articles disponibles :


Les possibilités semblent bien supérieures au mode sky inclus dans Google Earth. En fouillant un peu dans le bas de l'interface (menu déroulant avec "sky") on trouve aussi des modes qui vont plus loin que le simple planétarium, comme des panoramiques pris par des sondes martiennes.
Par contre, le logiciel semble victime de son succès : le chargement des données est loin d'être immédiat. Espérons que le problème sera réglé rapidement.
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 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.



Plusieurs idées sonc actuellement envisagées pour la version temps réel finale :
Sarracenia - modélisation sous wings 3D
Je suis bien entendu preneur de toute remarque ou suggestion. ;-)
Pour les curieux, voila le rendu brut sans shader, à comparer à ce qui précède :
Rendu sous Demoniak3D sans shader
Rendu 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 :
Effet de normal mapping (dos de la fleur)