Hvordan lage en 3D-modell av hodet ditt ved hjelp av Blender og et RealSense-kamera

Jeg er veldig spent på sensibilisering av databehandling: en ide der smarte ting gir mening for miljøet, er koblet til, og blir deretter en utvidelse av brukeren. Asan Intel Software evangelist (og en selvbevisst hobbyist-koder), er jeg heldig nok til å få eksperimentere med disse mulighetene ved hjelp av Intels banebrytende teknologi. Tidligere hadde jeg skrevet om 3D-skanning verden rundt deg i sanntid og å sette et virtuelt objekt i det; men i denne opplæringen vil jeg gjerne forklare hvordan du gjør det omvendte, ved 3D-skanning selv og legger til den skanningen i den virtuelle verden.

Nærmere bestemt vil vi:

  1. Skann hodet ditt med et RealSense-kamera og SDK.
  2. Konverter 3D-filen fra OBJ-format til PLY-format (for redigering i Blender).
  3. Konverter vertex-fargene til et UV tekstur kart.
  4. Rediger 3D-nettverket for å gi det et lavere toppunkt og poly-teller.

Vi vil ende opp med et 3D-farget nett i hodet ditt, klar til bruk i Unity. (I neste veiledning ser vi hvordan du faktisk får dette inn i Unity, og hva du kan bruke dette til i et spill.)

Du vil trenge:

  • Et Intel RealSense-kamera (eller en datamaskin med integrert RealSense-kamera)
  • En datamaskin med en Intel Core 4-generasjonsprosessor (eller bedre)
  • RealSense SDK (som er gratis å laste ned)
  • MeshLab (gratis)
  • Blender (gratis)

Skanner hode

Etter å ha installert SDK, gå til Charm Bar (i Windows 8) eller Start-menyen (i Windows 7 eller 10) og søk etter RealSense SDK Sample Browser. Finn den i listen, høyreklikk den og velg Kjør som administrator.

I eksempelbrowseren finner du en seksjon som heter Vanlige prøver. Dette er eksempler som vil fungere på både de fremre og bakovervendte RealSense-kameraene. Finn prøven som heter 3D-skanning (C ++).

Hvordan skanne hodet ditt

  • Å velge Løpe fra 3D-skanning (C ++) delen av prøve nettleseren.
  • Sett hodet foran kameraet, og du vil se det i skannerens visning. Hold det frem til det andre vinduet kommer opp.
  • Når det andre vinduet dukker opp, begynner du å rotere i en retning (sakte), deretter reversere retning og prøve å gå hele veien rundt. 
  • Når du har gjort en full sløyfe rundt, tippe hodet tilbake og deretter fremover, og hold deretter stille. I de siste sekundene. Hold øynene dine glatt utover kameraet, slik at dine øyne blir satt i en statisk stilling.
  • Når skanningen er fullført, åpnes en nettleser, slik at du kan dra og rotere modellen rundt. Modellen vil bli lagret i din dokumenter mappe som 3Dscan.obj.
  • Du kan omdanne prøven så mange ganger som du vil ha en skanning som du er fornøyd med.

Tips for skanning

  • Prøven er utformet for å spore et stivt 3D-objekt i rommet som det roterer foran kameraet. Dette betyr at du kan skanne den fra flere sider.
  • Hvis en del av objektet roterer og en annen del fortsatt er, vil det forvirre sporingsalgoritmen, og du vil ende opp med en dårlig skanning. Så, når du skanner på hodet, ikke bare slå nakken for å skanne; i stedet, roter hele torso.
  • Du kan spisse fremover, tippe tilbake, rotere til venstre, roter til høyre og vri. Med praksis er det mulig å skanne et objekt fra alle vinkler.
  • Du bør skanne i et område med jevn belysning. Unngå skygger og spekulære refleksjoner, da de blir bakt inn i 3D-tekstur.

Konvertere til PLY-format

OBJ-formatet er standardformatet du får fra skanningen. For å bruke det i Blender (og senere enhet), konverterer vi det til PLY-format ved hjelp av et gratis verktøy kalt MeshLab. Så, last ned, installer og kjør MeshLab, hvis du ikke allerede har det.

Fra Fil menyen, velg Importere. Finn 3Dscan.obj fil du opprettet i forrige seksjon.

Når du har importert objektet ditt, kan det være på sin side. Du kan venstre-klikk nederst på objektet og dra opp for å rotere objektet og undersøke det. 

Du bør se masken teksturert med farge. Fargeinformasjonen er lagret som vertex farger, noe som betyr at hvert toppunkt er farget med piksler hentet fra RGB-kameraet når det skannet hodet. 

Klikk Fil> Eksporter Mesh As. I dialogboksen som vises, velger du Stanford Polygon File Format (* .ply) fra Filtyper fall ned:

Lagre den resulterende PLY et sted du vil kunne finne det senere.

Konvertere vertexfarger til en UV-teksturkart

Tanken her er å importere 3D-filen til Blender, lage en kopi av den, rydde opp kopien, og kart vertexfarger som et UV-kart for den nye dupliserte versjonen.

Last ned, installer og kjør Blender, hvis du ikke allerede har det.

Importer objektet til Blender

Opprett et nytt prosjekt i Blender, velg Import> Stanford (.ply), velg deretter PLY-filen du bare eksporterte fra MeshLab:

Etter at du har importert det, vil du se at teksturene ikke er synlige:

Men hvis du bytter til Tekstur se, vil du se at RGB-fargene fra skanningen nå er kartlagt til teksturmodusen:

Bruk denne menyen til å bytte til Tekstur utsikt.

For å se fargene riktig, bytt visningsmodus igjen - denne gangen til Materiale. På høyre panel velger du materialer ikonet, og opprett deretter et nytt materiale. 

I panelredigering, sett Skyggelegging til shadeless, og i alternativer, Slå på Vertex Color Paint. Dette angir vellykket topptekstfargene til objektets materiale.

Nå er dette ennå ikke et brukbart nett for oss. Det er fullt av hull, det er grovt, og poly-tellingen er mye høyere enn vi vil ha det, hvis vi skal bruke det i et spill.

Vi må lage en versjon av dette nettverket som vi kan rydde opp, men kart denne vertex-farget tekstur som et UV-kart. Den versjonen er den versjonen vi skal ta med i Unity.

Lag et duplikat av masken

Å velge Objekt> Dupliserte objekter og treffer Tast inn. Ikke flytt musen.

Deretter velger du Objekt> Flytt til lag, og velg deretter firkanten til høyre for det nåværende laget (den andre firkanten fra venstre i toppraden).

Gå til Asset Browser og omdøpe maskene dine. Navn en Original Mesh og den andre Second Mesh. Dette vil hjelpe deg å fortelle dem fra hverandre.

Reduser Poly Count of Duplicate

Velg Second Mesh, velg det aktuelle laget, og bytt visningsmodus fra Materiale til Fast.

Deretter klikker du på ikonet som ser ut som en skiftenøkkel, til høyre for å legge til en modifikator. Vi skal redusere polyantallet av dette nettverket og rydde det opp.

Å velge Verktøy> Remesh. I denne dialogboksen angir du Okt treet til mellom 7 og 8. Sett Modus til Glatt, og slå på Glatt skyggelegging. Dette vil føre til at du mister materialet kartlegging:

Klikk Søke om. Du har nå et renere Mesh som du kan bruke vertex- og UV-kartet på.

Bruk vertex- og UV-kartet

Gå inn til Redigere modus på denne andre Mesh. Klikk Velg> Velg alle.

Opprett et nytt vindu og sett det til UV / Image Editor modus for å se UV-kartet.

I 3D vindu, velg Mesh> UV Unwrap> Smart UV Project.

I UV-kart vindu, velg Ny å skape en tekstur. Skru av Alpha. Gi navnet til teksten navnet du ønsker å gi din siste modell.

Bytte til Gjenstand modus. Du vil se en svart modell og et svart UV-kart. Det er ok!

Velg nå begge lagene av Skifte-klikke på dem for å gjøre dem begge synlige.

Velg begge lagene ... ... og visningsruten din vil se slik ut.

I Asset Browser, velg Original Mesh. Klikk på kameraikonet.

I Bake delen, slå på Utvalgt til Aktiv. Sørge for at Bake til Vertex Color er slått av.

I scene seksjon, sett Fargestyring til Ingen.

I ressurs menyen, velg Original Mesh. Deretter holder du nede Skifte og velg Second Mesh. (Du må gjøre det i den rekkefølgen.) Pass på at begge lagene er synlige med øyet og kameraikonene.

Klikk på kameraikonet. I Bake delen, klikk Bake.

Du bør nå ha en tekstur kartlagt. For å se dette, slå av det første laget, slik at du bare ser laget med det andre nettverket. Velg Tekstur se og du vil se nettverket ditt teksturert med UV-kartet. 

Du vil legge merke til noe funkiness hvor bildet fylles i manglende områder av nettverket ditt:

Du kan bytte til Texture Paint modus for å rydde dem opp. Du kan også nå bytte til forme modus for å fylle ut manglende områder, samt å rydde opp eller legge til funksjoner i nettverket ditt. 

Eksporter Mesh

Når du har ryddet opp nettverket ditt, kan du gjøre deg klar til å eksportere det:

  1. Pass på at UV-kartet heter det samme som nettverket, og er i samme katalog som nettverket.
  2. Gå til UV-kart vindu, velg Bilde> Lagre som, og naviger til katalogen hvor du vil lagre nettverket.
  3. Å velge Fil> Eksporter til .FBX, og skriv inn samme navn du ga UV-kartet.

Modellen din er fullført!

Konklusjon

Du har skannet i hodet ditt, redusert polycount, rengjort modellen, og eksportert den som en 3D-modell som er klar til bruk i andre applikasjoner. I en fremtidig opplæring vil vi importere dette 3D-nettverket til Unity, og se på hvordan det kan brukes i spill.

Intel® Software Innovator-programmet støtter innovative, uavhengige utviklere som viser evne til å lage og demonstrere fremadrettede prosjekter. Innovatører utnytter høyttalerskap og demo muligheter ved industri hendelser og utvikler sammenkomster.

Intel® Developer Zone tilbyr verktøy og veiledningsinformasjon for plattformsapputvikling, plattform og teknologiinformasjon, kodeprøver og faglig kompetanse for å hjelpe utviklere til å innovere og lykkes. Bli med i våre fellesskap for Internett av tingAndroid *Intel® RealSense ™ -teknologi, Moderne kodeSpill Dev og Windows * å laste ned verktøy, få tilgang til dev kits, dele ideer med likesinnede utviklere, og delta i hackoner, konkurranser, roadshows og lokale arrangementer.