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:
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:
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 ++).
dokumenter
mappe som 3Dscan.obj
.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.
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.
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.
Å 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.
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å.
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.
Når du har ryddet opp nettverket ditt, kan du gjøre deg klar til å eksportere det:
Modellen din er fullført!
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 ting, Android *, Intel® RealSense ™ -teknologi, Moderne kode, Spill 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.