Cum sa faci un model 3D al capului folosind Blender si o camera RealSense

Sunt foarte incantat de senzatia de computere: o idee in care lucrurile inteligente simt mediul, sunt conectate, apoi devin o extensie a utilizatorului. Asan Evangelist Software Software (și un codificator de pasionați de hobby-uri), sunt destul de norocos să experimentez aceste posibilități utilizând tehnologia de vârf a Intel. Anterior, am scris despre scanarea 3D a lumii din jurul vostru în timp real și introducerea unui obiect virtual în el; cu toate acestea, în acest tutorial, aș vrea să vă explic cum să faceți conversația prin scanarea 3D, adăugând apoi scanarea în lumea virtuală.

Mai precis, vom:

  1. Scanați-vă capul cu ajutorul unei camere RealSense și al SDK-ului.
  2. Conversia fișierului 3D din formatul OBJ în format PLY (pentru editare în Blender).
  3. Conversia culorilor vârfului pe o hartă a texturii UV.
  4. Modificați plasa 3D pentru a obține un vârf inferior și un număr de contori.

Vom încheia cu o plasă 3D colorată a capului, gata să o utilizați în unitate. (În următorul tutorial, vom vedea cum să obțineți acest lucru în Unitate și ce ar putea folosi acest lucru într-un joc.)

Vei avea nevoie:

  • O cameră Intel RealSense (sau un computer cu cameră RealSense integrată)
  • Un computer cu un procesor Intel Core 4 (sau mai bine)
  • RealSense SDK (care poate fi descărcat gratuit)
  • MeshLab (gratuit)
  • Blender (gratuit)

Scanarea capului

După instalarea SDK-ului, accesați Charm Bar (în Windows 8) sau meniul Start (în Windows 7 sau 10) și căutați RealSense SDK Browser de mostre. Găsiți-o în listă, faceți clic dreapta pe ea și selectați Rulat ca administrator.

În browserul de eșantioane veți găsi o secțiune numită Probele comune. Acestea sunt mostre care vor funcționa atât pe camerele RealSense, cât și pe cele din față. Găsiți proba numită Scanare 3D (C ++).

Cum să scanați capul

  • Selectați Alerga de la Scanare 3D (C ++) secțiune a browserului exemplu.
  • Puneți-vă capul în fața camerei și veți vedea imaginea scanerului. Țineți-l până când apare a doua fereastră.
  • Odată ce a doua fereastră apare, începeți să rotiți într-o direcție (încet), apoi inversați direcția și încercați să mergeți tot parcursul. 
  • După ce ați făcut o buclă completă, împingeți capul înapoi și apoi înainte, apoi țineți-l în continuare. În ultimele câteva secunde. ține ochii în așteptare cu puțin peste camera, astfel încât ochii tăi se fixează într-o poziție statică.
  • Când scanarea este finalizată, se va deschide un browser care vă permite să glisați și să rotiți modelul în jurul acestuia. Modelul va fi salvat la dvs. Documente dosar ca 3Dscan.obj.
  • Puteți relua proba de câte ori doriți pentru a obține o scanare cu care sunteți mulțumit.

Sfaturi pentru scanare

  • Eșantionul este proiectat pentru a urmări un obiect 3D rigid în spațiu pe măsură ce acesta se rotește în fața camerei. Aceasta înseamnă că o puteți scana din mai multe părți.
  • Dacă o parte a obiectului se rotește și o altă parte este încă, va confunda algoritmul de urmărire și veți termina cu o scanare necorespunzătoare. Deci, când vă scanați capul, nu vă întoarceți la gât să scaneze; în schimb, rotiți întregul trunchi.
  • Puteți să vă mișcați înainte, să vă întoarceți înapoi, să rotiți la stânga, să rotiți la dreapta și să vă întoarceți. Cu practica, este posibil să scanați un obiect din toate unghiurile.
  • Ar trebui să scanați într-o zonă cu lumină uniformă. Evitați umbrele și reflexiile speculare, deoarece acestea vor fi coapte în textura 3D.

Conversia în format PLY

Formatul OBJ este formatul implicit pe care îl obțineți de la scanare. Pentru a le folosi în Blender (și mai târziu Unitatea), îl vom converti în format PLY folosind un instrument gratuit numit MeshLab. Deci, descărcați, instalați și rulați MeshLab, dacă nu ați făcut-o deja.

De la Fişier meniu, selectați Import. Găsi 3Dscan.obj fișierul pe care l-ați creat în secțiunea anterioară.

După ce ați importat obiectul, este posibil să fie în partea sa. Puteți să faceți clic stânga în partea de jos a obiectului și să glisați în sus pentru a roti obiectul și pentru ao examina. 

Ar trebui să vedeți plasa texturată cu culoarea. Informațiile despre culoare sunt stocate ca vertex culori, ceea ce înseamnă că fiecare vârf este colorat cu pixelii obținuți de camera RGB când ți-a scanat capul. 

Clic File> Export Mesh As. În caseta de dialog care apare, selectați Format format de poligon Stanford (* .ply) de la Fișiere de tip scapă jos:

Salvați rezultatul PLY undeva veți putea găsi mai târziu.

Convertirea culorilor vârfurilor pe o hartă a texturilor UV

Ideea aici este de a importa fișierul 3D în Blender, de a face o copie a acestuia, de a curăța copia și de a cartona culorile vertexului ca o hartă UV pentru noua versiune duplicată.

Descărcați, instalați și executați Blender, dacă nu ați făcut-o deja.

Importați Obiectul în Blender

Creați un nou proiect în Blender, selectați Import> Stanford (.ply), apoi selectați fișierul PLY pe care tocmai l-ați exportat din MeshLab:

După import, veți vedea că texturile nu sunt vizibile:

Cu toate acestea, dacă treceți la Textură vizualizați, veți vedea că culorile RGB din scanare sunt acum mapate în modul Textură:

Utilizați acest meniu pentru a comuta la Textură vedere.

Pentru a vedea culorile în mod corespunzător, comutați din nou modul de vizualizare - de data aceasta, la Material. În panoul din partea dreaptă, selectați materiale , apoi creați un nou material. 

În editorul de panouri, setați Umbrire la Fără umbră, și în Opțiuni, aprinde Vertex Color Paint. Aceasta stabilește cu succes culorile vertexului la materialul obiectului.

Acum, acest lucru nu este încă o plasă de lucru pentru noi. Este plin de găuri, este dur, iar contorul de poly este mult mai mare decât ne-ar plăcea să fie, dacă o vom folosi într-un joc.

Trebuie să creăm o versiune a acestei rețele, pe care să o putem curăța, dar să hartă această textura colorată ca pe o hartă UV. Această versiune este versiunea pe care o vom aduce în Unitate.

Creați un duplicat al rețelei

Selectați Obiect> Obiecte duplicate și lovit introduce. Nu mișcați mouse-ul.

Apoi, selectați Obiect> Mutare în strat, și apoi selectați pătratul din dreapta stratului curent (al doilea pătrat de la stânga din rândul de sus).

Mergeți la Browserul activelor și redenumiți-vă ochiurile. Scrie numele unu Mesajul original si celalalt A doua plasă. Acest lucru vă va ajuta să le deosebiți.

Reduceți numărarea polilor duplicatului

Selectați a doua miez, selectați stratul relevant și comutați modul de vizualizare Material la Solid.

Apoi, din panoul din partea dreaptă, faceți clic pe pictograma care arată ca o cheie pentru a adăuga un modificator. Vom reduce numărul polimerilor acestei rețele și vom curăța.

Selectați Instrumente> Remesh. În acest dialog, setați Oct Tree la între 7 și 8. A stabilit mod la Neted, și porniți Smooth Shading. Acest lucru vă va duce la pierderea cartografierii materiale:

Clic aplica. Acum aveți o plasă mai curată, la care puteți aplica harta de vârf și UV.

Aplicați harta Vertex și UV

Intra Editați | × mod pe această a doua plasă. Clic Selectați> Selectați tot.

Creați o fereastră nouă și setați-o Editor UV / imagine mod pentru a vedea harta UV.

În 3D fereastră, selectați Mesh> Dezlipire UV> Proiect Smart UV.

În Harta UV fereastră, selectați Nou pentru a crea o textura. Opriți Alfa. Denumiți textura numele pe care doriți să-l dați modelului final.

Schimba cu Obiect Mod. Veți vedea un model negru și o hartă UV negru. Este în regulă!

Acum, selectați ambele straturi prin Schimb-făcând clic pe ele pentru a le face să fie vizibile.

Selectați ambele straturi ... ... și panoul de vizualizare va arăta astfel.

În Browserul activelor, selectați Mesajul original. Faceți clic pe pictograma camerei.

În Coace secțiune, porniți Este selectat pentru a fi activ. Asigura-te ca Coaceți la culoarea Vertex este oprit.

În Scenă secțiune, setat Gestionarea culorilor la Nici unul.

În activ meniu, selectați Rețeaua originală. Apoi, țineți-vă jos Schimb și selectați a doua miez. (Trebuie să faceți acest lucru în această ordine.) Asigurați-vă că ambele straturi sunt vizibile cu pictogramele pentru ochi și camere.

Faceți clic pe pictograma camerei. În Coace secțiune, faceți clic pe Coace.

Ar trebui să aveți acum o hartă a texturii. Pentru a vedea acest lucru, opriți primul strat, deci vedeți numai stratul cu a doua plasă. Selectează Textură vizualizați și veți vedea plasa dvs. texturat cu harta dvs. UV. 

Veți observa unele funcționalitate în cazul în care imaginea a umplut în zonele lipsă de plasă:

Puteți trece la Textură vopsea mod pentru a le curăța. De asemenea, puteți trece acum la Sculpt mod pentru a umple zonele lipsă, precum și pentru a curăța sau a adăuga caracteristici la plasă. 

Exportați rețeaua

Odată ce ați curățat plasa, puteți să vă pregătiți să o exportați:

  1. Asigurați-vă că harta UV este denumită aceeași rețea și este în același director cu plasa.
  2. Mergeți la Harta UV fereastră, selectați Imagine> Salvare ca, și navigați la directorul unde veți salva plasa.
  3. Selectați Fișier> Exportați în .FBX, și introduceți același nume pe care l-ați dat hărții UV.

Modelul dvs. este complet!

Concluzie

Ați scanat în cap, ați redus contul, ați curățat modelul și l-ați exportat ca model 3D gata de utilizare în alte aplicații. Într-un tutorial viitor, vom importa această rețea 3D în Unity și vom vedea cum ar putea fi folosită în jocuri.

Programul Intel® Software Innovator sprijină dezvoltatorii independenți inovatoare, care au capacitatea de a crea și a demonstra proiecte în perspectivă. Inovatorii profită de oportunitățile de vorbire și demo la evenimente din industrie și întâlniri pentru dezvoltatori.

Zona dezvoltatorilor Intel® oferă instrumentele și instrucțiunile pentru dezvoltarea de aplicații cross-platform, informații despre platforme și tehnologii, eșantioane de coduri și expertiză de la egal la egal pentru a ajuta dezvoltatorii să inoveze și să reușească. Alăturați-vă comunităților noastre pentru internetul LucrurilorAndroid *Tehnologia Intel® RealSense ™, Codul modernDezvoltator de jocuri și ferestre * pentru a descărca unelte, a accesa kit-uri dev, a-și împărtăși idei cu dezvoltatori asemănători și a participa la hackathons, concursuri, roadshows și evenimente locale.