Comment créer un modèle 3D de votre tête avec Blender et une caméra RealSense

Je suis très enthousiasmé par la sensibilité de l'informatique: une idée dans laquelle des objets intelligents perçoivent l'environnement, sont connectés, puis deviennent une extension de l'utilisateur. En tant qu'évangéliste d'Intel Software (et codeur amateur avoué), je suis assez chanceux pour pouvoir expérimenter ces possibilités en utilisant la technologie de pointe d'Intel. Auparavant, j'avais écrit sur le balayage 3D en temps réel du monde qui vous entourait et sur l'insertion d'un objet virtuel dans celui-ci. Cependant, dans ce didacticiel, je voudrais expliquer comment procéder, en scannant vous-même vous-même puis en ajoutant cette numérisation au monde virtuel..

Plus spécifiquement, nous allons:

  1. Scannez votre tête en utilisant une caméra RealSense et le SDK.
  2. Convertir le fichier 3D du format OBJ au format PLY (pour le modifier dans Blender).
  3. Convertir les couleurs de vertex en une texture de texture UV.
  4. Modifiez le maillage 3D pour lui donner un nombre de sommets inférieur et inférieur.

Nous nous retrouverons avec un maillage couleur 3D de votre tête, prêt à être utilisé dans Unity. (Dans le prochain didacticiel, nous verrons comment intégrer cela dans Unity et comment l'utiliser dans un jeu.)

Tu auras besoin de:

  • Une caméra Intel RealSense (ou un ordinateur avec une caméra RealSense intégrée)
  • Un ordinateur doté d'un processeur Intel Core 4ème génération (ou supérieur)
  • Le SDK RealSense (téléchargeable gratuitement)
  • MeshLab (gratuit)
  • Blender (gratuit)

Scanner votre tête

Après avoir installé le Kit de développement logiciel (SDK), accédez à la barre de charme (sous Windows 8) ou au menu Démarrer (sous Windows 7 ou 10) et recherchez Exemple de navigateur SDK RealSense. Trouvez-le dans la liste, cliquez dessus avec le bouton droit de la souris et sélectionnez Exécuter en tant qu'administrateur.

Dans le navigateur exemple, vous trouverez une section intitulée Échantillons communs. Ce sont des exemples qui fonctionneront à la fois sur les caméras RealSense orientées vers l’avant et vers l’arrière. Trouvez l'échantillon appelé Scan 3D (C ++).

Comment scanner votre tête

  • Sélectionner Courir du Scan 3D (C ++) section du navigateur exemple.
  • Placez votre tête devant la caméra et vous la verrez dans la vue du scanner. Tenez-le immobile jusqu'à ce que la deuxième fenêtre apparaisse.
  • Une fois la deuxième fenêtre ouverte, commencez à tourner dans un sens (lentement), puis inversez-le et essayez de faire tout le tour. 
  • Une fois que vous avez fait une boucle complète, penchez votre tête en arrière, puis en avant, puis maintenez-vous immobile. Pour les dernières secondes. gardez vos yeux devant vous juste au-dessus de la caméra, de sorte que vos yeux soient réglés dans une position statique.
  • Une fois l'analyse terminée, un navigateur s'ouvre et vous permet de faire glisser le modèle et de le faire pivoter. Le modèle sera sauvegardé sur votre Les documents dossier en tant que 3Dscan.obj.
  • Vous pouvez réexécuter l'échantillon autant de fois que vous le souhaitez pour obtenir une analyse dont vous êtes satisfait..

Conseils pour la numérisation

  • L'exemple est conçu pour suivre un objet 3D rigide dans l'espace lorsqu'il tourne devant la caméra. Cela signifie que vous pouvez le scanner de plusieurs côtés.
  • Si une partie de l'objet est en rotation et qu'une autre partie est immobile, l'algorithme de suivi sera confondu et vous obtiendrez une mauvaise analyse. Ainsi, lorsque vous analysez votre tête, ne tournez pas votre cou pour scanner; faites pivoter tout votre torse à la place.
  • Vous pouvez basculer vers l'avant, basculer vers l'arrière, faire pivoter à gauche, faire pivoter à droite et faire demi-tour. Avec la pratique, il est possible de scanner un objet sous tous les angles.
  • Vous devez numériser dans une zone à éclairage uniforme. Évitez les ombres et les reflets spéculaires, car ils seront cuits au four dans votre texture 3D.

Conversion au format PLY

Le format OBJ est le format par défaut obtenu lors de la numérisation. Pour l'utiliser dans Blender (et plus tard Unity), nous le convertirons au format PLY à l'aide d'un outil gratuit appelé MeshLab. Alors, téléchargez, installez et lancez MeshLab, si vous n’avez pas encore.

Du Fichier menu, sélectionnez Importation. Trouvez le 3Dscan.obj fichier que vous avez créé dans la section précédente.

Une fois que vous avez importé votre objet, il peut être de son côté. Vous pouvez cliquer avec le bouton gauche de la souris sur le bas de l'objet et le déplacer vers le haut pour le faire pivoter et l'examiner.. 

Vous devriez voir le maillage texturé avec de la couleur. Les informations de couleur sont stockées sous la forme couleurs de sommet, ce qui signifie que chaque sommet est coloré avec les pixels obtenus de la caméra RVB lorsqu’elle vous a balayé la tête. 

Cliquez sur Fichier> Exporter le maillage sous. Dans la boîte de dialogue qui apparaît, sélectionnez Format de fichier de Stanford Polygon (* .ply) du Des fichiers de type menu déroulant:

Sauvegardez la couche résultante quelque part, vous pourrez la retrouver plus tard.

Conversion des couleurs de vertex en une texture de texture UV

L'idée ici est d'importer le fichier 3D dans Blender, de le copier, de le nettoyer et de mapper les couleurs de vertex en tant que carte UV pour la nouvelle version dupliquée..

Téléchargez, installez et lancez Blender, si ce n'est déjà fait.

Importer l'objet dans Blender

Créez un nouveau projet dans Blender, sélectionnez Importer> Stanford (.ply), puis sélectionnez le fichier PLY que vous venez d'exporter à partir de MeshLab:

Après l'avoir importé, vous verrez que les textures ne sont pas visibles:

Cependant, si vous passez à Texture vous verrez que les couleurs RVB de la numérisation sont maintenant mappées au mode Texture:

Utilisez ce menu pour passer à Texture vue.

Pour voir les couleurs correctement, changez de mode d'affichage cette fois-ci pour Matériel. Sur le panneau de droite, sélectionnez le Matériaux icône, puis créer un nouveau matériau. 

Dans l'éditeur de panneaux, définissez Ombres à Shadeless, et dans le Les options, allumer Peinture de couleur vertex. Cela permet de définir avec succès les couleurs de vertex sur le matériau de l'objet..

Maintenant, ce n'est pas encore un maillage fonctionnel pour nous. C'est plein de trous, c'est rugueux, et le nombre de poly est beaucoup plus élevé que nous le voudrions, si nous allons l'utiliser dans un jeu.

Nous devons créer une version de ce maillage que nous pouvons nettoyer, mais mappez cette texture de couleur vertex sous forme de carte UV. Cette version est la version que nous apporterons à Unity.

Créer un duplicata du maillage

Sélectionner Objet> Objets dupliqués et frapper Entrer. Ne bouge pas ta souris.

Ensuite, sélectionnez Objet> Déplacer vers le calque, puis sélectionnez le carré à droite du calque actuel (le deuxième carré à partir de la gauche dans la rangée supérieure).

Aller au Navigateur d'actifs et renommez vos mailles. Nommez un Maille originale et l'autre Deuxième maille. Cela vous aidera à les distinguer.

Réduire le nombre de poly du duplicata

Sélectionnez le deuxième maillage, sélectionnez le calque approprié et passez du mode d'affichage à Matériel à Solide.

Ensuite, dans le panneau de droite, cliquez sur l'icône qui ressemble à une clé pour ajouter un modificateur. Nous allons réduire le nombre de poly de ce maillage et le nettoyer.

Sélectionner Outils> Remesh. Dans cette boîte de dialogue, définissez le Oct Tree entre 7 et 8. Ensemble Mode à Lisse, et allumer Ombrage lisse. Cela vous fera perdre la cartographie des matériaux:

Cliquez sur Appliquer. Vous avez maintenant un maillage plus propre auquel vous pouvez appliquer la carte vertex et UV.

Appliquer la carte vertex et UV

Entrer dans modifier mode sur ce deuxième maillage. Cliquez sur Sélectionner> Tout sélectionner.

Créer une nouvelle fenêtre et la définir sur UV / Image Editor mode pour voir la carte UV.

dans le 3D fenêtre, sélectionnez Maillage> Déballage UV> Projet UV intelligent.

dans le Carte UV fenêtre, sélectionnez Nouveau créer une texture. Éteindre Alpha. Nommez la texture le nom que vous souhaitez donner à votre modèle final.

Basculer vers Objet mode. Vous verrez un modèle noir et une carte UV noire. C'est bon!

Maintenant, sélectionnez les deux couches par Décalage-en cliquant dessus pour les rendre tous les deux visibles.

Sélectionnez les deux calques… … Et votre volet de visualisation ressemblera à ceci.

dans le Navigateur d'actifs, sélectionnez le maillage d'origine. Cliquez sur l'icône de la caméra.

dans le Cuire section, allumer Sélectionné à actif. Sois sûr que Bake to Vertex Couleur est éteint.

dans le Scène section, ensemble La gestion des couleurs à Aucun.

dans le Atout menu, sélectionnez le maillage original. Ensuite, maintenez Décalage et sélectionnez le deuxième maillage. (Vous devez le faire dans cet ordre.) Assurez-vous que les deux calques sont visibles avec les icônes œil et caméra..

Cliquez sur l'icône de la caméra. dans le Cuire section, cliquez Cuire.

Vous devriez maintenant avoir une texture mappée. Pour voir cela, désactivez le premier calque afin de ne voir que le calque avec le deuxième maillage. Sélectionnez le Texture voir et vous verrez votre maillage texturé avec votre carte UV. 

Vous remarquerez un certain amusement lorsque l’image remplit les zones manquantes de votre maillage:

Vous pouvez passer à Texture Texture mode pour nettoyer ceux en place. Vous pouvez également maintenant passer à Sculpter mode pour remplir les zones manquantes, ainsi que pour nettoyer ou ajouter des fonctionnalités à votre maillage. 

Exporter le maillage

Une fois que vous avez nettoyé votre maille, vous pouvez vous préparer à l'exporter:

  1. Assurez-vous que la carte UV porte le même nom que le maillage et se trouve dans le même répertoire que le maillage..
  2. Aller au Carte UV fenêtre, sélectionnez Image> Enregistrer sous, et accédez au répertoire où vous allez enregistrer le maillage.
  3. Sélectionner Fichier> Exporter vers .FBX, et entrez le même nom que vous avez donné à la carte UV.

Votre modèle est complet!

Conclusion

Vous avez numérisé dans votre tête, réduit le nombre de polycotes, nettoyé le modèle et l’exporté en tant que modèle 3D prêt à être utilisé dans d’autres applications. Dans un prochain tutoriel, nous allons importer ce maillage 3D dans Unity et voir comment il pourrait être utilisé dans les jeux..

Le programme Intel® Software Innovator soutient les développeurs indépendants innovants qui ont la capacité de créer et de démontrer des projets tournés vers l'avenir. Les innovateurs tirent parti des opportunités de présentation et de démonstration lors de manifestations de l'industrie et de réunions de développeurs..

Zone de développement Intel® offre des outils et des informations pratiques pour le développement d'applications multiplates-formes, des informations de plate-forme et de technologie, des exemples de code et l'expertise de pairs pour aider les développeurs à innover et à réussir. Rejoignez nos communautés pour le Internet des objetsAndroid*Technologie Intel® RealSense ™, Code moderneDéveloppement de jeu et Les fenêtres* pour télécharger des outils, accéder à des kits de développement, partager des idées avec des développeurs partageant les mêmes idées et participer à des hackathons, des concours, des tournées de présentation et des événements locaux.