Jag är väldigt exalterad över sensibilisering av databehandling: en idé där smarta saker känner miljön, är anslutna, blir sedan en förlängning av användaren. Asan Intel Software evangelist (och en självförtrogen hobbyistkodare) har jag turen att experimentera med dessa möjligheter med Intels avancerade teknik. Tidigare hade jag skrivit om 3D-skanning av världen runt dig i realtid och sätta ett virtuellt objekt i det; men i denna handledning vill jag förklara hur man gör det omtalade, genom 3D-skanning själv och lägger till den genomsökningen i den virtuella världen.
Mer specifikt kommer vi att
Vi kommer att sluta med ett 3D-färgat nät i ditt huvud, redo att användas i Unity. (I nästa handledning ser vi hur man faktiskt får detta till Unity, och vad du kan använda detta för i ett spel.)
Du kommer behöva:
När du har installerat SDK: n, gå till Charm Bar (i Windows 8) eller Start-menyn (i Windows 7 eller 10) och sök efter RealSense SDK Sample Browser
. Hitta den i listan, högerklicka på den och välj Kör som administratör.
I proverwebbläsaren hittar du ett avsnitt som heter Vanliga prov. Dessa är prover som kommer att fungera på både RealSense-kamerorna som är framåtvända och bakåtvända. Hitta det samtal som heter 3D-skanning (C ++).
Dokument
mapp som 3Dscan.obj
.OBJ-formatet är det standardformat du får från skanningen. För att använda det i Blender (och senare Unity) konverterar vi det till PLY-format med ett gratis verktyg som heter MeshLab. Så, ladda ner, installera och kör MeshLab, om du inte redan har det.
Från Fil meny, välj Importera. Hitta 3Dscan.obj
fil du skapade i föregående avsnitt.
När du har importerat ditt objekt kan det vara på sin sida. Du kan vänsterklicka längst ner på objektet och dra upp för att rotera objektet och undersöka det.
Du bör se nätet texturerat med färg. Färginformationen lagras som vertikala färger, vilket innebär att varje vertex är färgad med pixlarna som erhållits från RGB-kameran när den skannade huvudet.
Klick File> Export Mesh As. I dialogrutan som visas väljer du Stanford Polygon File Format (* .ply) från Typfiler falla ner:
Spara den resulterande PLY någonstans kan du hitta den senare.
Tanken här är att importera 3D-filen till Blender, kopiera den, städa upp kopian och kartlägga vertexfärgerna som en UV-karta för den nya dubbla versionen.
Hämta, installera och kör Blender, om du inte redan har det.
Skapa ett nytt projekt i Blender, välj Importera> Stanford (.ply), välj sedan PLY-filen som du just exporterat från MeshLab:
Efter att ha importerat det ser du att texturerna inte är synliga:
Men om du byter till Textur visa, kommer du att se att RGB-färgerna från skanningen nu är mappade till Texturläget:
Använd den här menyn för att växla till Textur se.Om du vill se färgerna ordentligt byter du visningsläge igen - den här gången till Material. På den högra panelen väljer du material ikonen och skapa sedan ett nytt material.
I panelredigeraren ställer du in Skuggning till Shadeless, och i alternativ, sätta på Vertex Färgfärg. Detta ställer framgångsrikt de vertikala färgerna till objektets material.
Nu är detta ännu inte ett fungerande nät för oss. Det är fullt av hål, det är grovt, och polyantalet är mycket högre än vad vi skulle vilja ha om vi ska använda det i ett spel.
Vi måste skapa en version av detta nät som vi kan städa upp, men kartlägg den här vertexfärgade konsistensen som en UV-karta. Den versionen är den version som vi kommer att ta med i Unity.
Välj Objekt> Dubbla objekt och slå Stiga på. Flytta inte musen.
Välj sedan Objekt> Flytta till lager, och välj sedan rutan till höger om det aktuella lagret (den andra rutan från vänster i den övre raden).
Gå till Asset Browser och byt namn på dina maskor. Namn en Original Mesh
och den andra Second Mesh
. Detta hjälper dig att berätta för dem.
Välj Second Mesh, välj det aktuella lagret och välj visningsläge från Material till Fast.
Sedan, från den högra panelen, klicka på ikonen som ser ut som en skiftnyckel för att lägga till en modifierare. Vi kommer att minska polyantalet på detta nät och rengöra det.
Välj Verktyg> Remesh. I den här dialogrutan anger du Okt träd till mellan 7
och 8
. Uppsättning Läge till Slät, och sätt på Glatt skuggning. Detta kommer att leda till att du förlorar materialmappningen:
Klick Tillämpa. Du har nu en renare Mesh som du kan använda vertex- och UV-kartan på.
Gå in i Redigera läge på detta Second Mesh. Klick Välj> Välj alla.
Skapa ett nytt fönster och sätt det till UV / Bildredigerare läge för att se UV-kartan.
I 3D fönster, välj Mesh> UV Unwrap> Smart UV Project.
I UV-karta fönster, välj Ny för att skapa en textur. Stäng av Alfa. Namn texturen det namn du vill ge din slutliga modell.
Byta till Objekt läge. Du kommer att se en svart modell och en svart UV-karta. Det är okej!
Välj nu båda lagren av Flytta-klicka på dem för att göra dem båda synliga.
Välj båda lagren ... ... och din vy kommer att se ut så här.I Asset Browser, välj Original Mesh. Klicka på kamerans ikon.
I Baka sektionen, sätt på Valda till Aktiv. Se till att Baka till Vertex Color är avstängd.
I Scen sektion, set Färghantering till Ingen.
I Tillgång meny, välj Original Mesh. Håll sedan ned Flytta och välj Second Mesh. (Du måste göra det i den ordningen.) Se till att båda lagren är synliga med ögon- och kamerans ikoner.
Klicka på kamerans ikon. I Baka avsnittet, klicka Baka.
Du borde nu ha en textur kartladdad. För att se detta, stäng av det första lagret så att du bara ser lagret med det andra nätet. Välj Textur visa och du kommer att se din mask texturerad med din UV-karta.
Du kommer att märka lite funkiness där bilden fyllde i saknade områden i ditt nät:
Du kan växla till Texturfärg läge för att rengöra dem. Du kan nu också byta till Skulptera läge för att fylla i saknade områden, samt att städa upp eller lägga till funktioner i ditt nät.
När du har rengjort nätet kan du göra dig redo att exportera det:
Din modell är komplett!
Du har skannat i ditt huvud, minskat polykoncentrationen, rengjort modellen och exporterat den som en 3D-modell som är redo att användas i andra applikationer. I en framtida handledning importerar vi detta 3D-nät i Unity och tittar på hur det kan användas i spel.
Intel® Software Innovator-programmet stöder innovativa oberoende utvecklare som visar förmåga att skapa och visa framåtblickande projekt. Innovatörer utnyttjar högtalarskap och demo möjligheter vid branschhändelser och utvecklare sammankomster.
Intel® Developer Zone erbjuder verktyg och information om plattformsutveckling, plattforms- och teknikinformation, kodprover och peer-kompetens för att hjälpa utvecklare att uppfinna och lyckas. Gå med i våra samhällen för Internet av saker, android *, Intel® RealSense ™ -teknologi, Modern kod, Spel Dev och Windows * ladda ner verktyg, få tillgång till dev-kit, dela idéer med likasinnade utvecklare och delta i hackatoner, tävlingar, roadshows och lokala evenemang.