Ik ben erg enthousiast over sensatie van computergebruik: een idee waarbij slimme dingen de omgeving waarnemen, verbonden zijn en vervolgens een verlengstuk van de gebruiker worden. Asan Intel Software evangelist (en een zelfverklaarde hobbyist coder), ik ben gelukkig genoeg om te gaan experimenteren met deze mogelijkheden met behulp van Intel's geavanceerde technologie. Eerder had ik geschreven over het in realtime 3D-scannen van de wereld om je heen en een virtueel object erin zetten; echter, in deze tutorial wil ik uitleggen hoe je het omgekeerde doet, door jezelf 3D te scannen en vervolgens die scan aan de virtuele wereld toe te voegen.
Meer specifiek zullen we:
We eindigen met een 3D, gekleurd netwerk van je hoofd, klaar om te gebruiken in Unity. (In de volgende tutorial zullen we zien hoe je dit daadwerkelijk in Unity kunt krijgen, en waar je dit voor kunt gebruiken in een game.)
Je zal nodig hebben:
Na het installeren van de SDK gaat u naar de Charm Bar (in Windows 8) of het Startmenu (in Windows 7 of 10) en zoekt u naar RealSense SDK voorbeeldbrowser
. Zoek het in de lijst, klik er met de rechtermuisknop op en selecteer Als administrator uitvoeren.
In de voorbeeldbrowser vindt u een sectie genaamd Veelvoorkomende monsters. Dit zijn voorbeelden die zowel aan de voorzijde- als aan de achterzijde gerichte RealSense-camera's kunnen gebruiken. Zoek het monster met de naam 3D-scan (C ++).
documenten
map als 3Dscan.obj
.Het OBJ-formaat is het standaardformaat dat u van de scan krijgt. Om het te gebruiken in Blender (en later Unity), zullen we het naar PLY-formaat converteren met behulp van een gratis tool genaamd MeshLab. Dus download, installeer en voer MeshLab uit, als je dat nog niet hebt gedaan.
Van de het dossier menu, selecteer Importeren. Vind de 3Dscan.obj
bestand dat u in het vorige gedeelte hebt gemaakt.
Nadat u uw object hebt geïmporteerd, staat het mogelijk op zijn kant. U kunt met de linkermuisknop klikken op de onderkant van het object en omhoog slepen om het object te draaien en het te bekijken.
Je zou het net getextureerd met kleur moeten zien. De kleurinformatie wordt opgeslagen als vertex kleuren, wat betekent dat elke vertex gekleurd is met de pixels verkregen van de RGB-camera toen hij je hoofd scande.
Klik Bestand> Mesh exporteren als. Selecteer in het dialoogvenster dat verschijnt Stanford Polygon Bestandsformaat (* .ply) van de Bestanden van type laten vallen:
Bewaar de resulterende PLY ergens waar u het later kunt vinden.
Het idee hier is om het 3D-bestand naar Blender te importeren, er een kopie van te maken, de kopie op te ruimen en de vertex-kleuren als een UV-kaart in kaart te brengen voor de nieuwe duplicaatversie.
Download, installeer en voer Blender uit, als u dat nog niet hebt gedaan.
Maak een nieuw project in Blender, selecteer Importeren> Stanford (.ply), selecteer vervolgens het PLY-bestand dat u net vanuit MeshLab hebt geëxporteerd:
Na het importeren ziet u dat de texturen niet zichtbaar zijn:
Als u echter overschakelt naar structuur weergave, ziet u dat de RGB-kleuren van de scan nu zijn toegewezen aan de modus Textuur:
Gebruik dit menu om over te schakelen naar structuur uitzicht.Om de kleuren goed te zien, schakelt u de weergavemodus opnieuw in - deze keer naar Materiaal. Selecteer in het rechterdeelvenster de materialen pictogram en maak vervolgens een nieuw materiaal.
In de paneeleditor instellen shading naar shadeless, en in de opties, aanzetten Vertex Color Paint. Hiermee worden de vertex-kleuren met succes ingesteld op het materiaal van het object.
Dit is voor ons nog geen werkbare mesh. Het zit vol met gaten, het is ruw, en de poly-telling is veel hoger dan we zouden willen, als we het in een spel gaan gebruiken.
We moeten een versie van deze mesh maken die we kunnen opruimen, maar deze vertex-gekleurde textuur in kaart brengen als een UV-kaart. Die versie is de versie die we Unity zullen brengen.
kiezen Object> Dubbele objecten en druk op invoeren. Beweeg uw muis niet.
Selecteer vervolgens Object> Verplaats naar laag, en selecteer vervolgens het vierkant rechts van de huidige laag (het tweede vierkant links in de bovenste rij).
Ga naar de Activabrowser en hernoem uw netten. Geef een naam Originele mesh
en de andere Tweede Maas
. Dit zal je helpen om ze uit elkaar te houden.
Selecteer de tweede mesh, selecteer de relevante laag en schakel de weergavemodus uit Materiaal naar Solide.
Klik vervolgens vanuit het rechterdeelvenster op het pictogram dat op een sleutel lijkt om een wijziging toe te voegen. We gaan het polygehalte van deze mesh verminderen en opruimen.
kiezen Hulpmiddelen> Remesh. Stel in dit dialoogvenster de Oct Tree naar tussen 7
en 8
. set mode naar Glad, en schakel aan Smooth Shading. Hierdoor verlies je de materiaaltoewijzing:
Klik Van toepassing zijn. Je hebt nu een schoner netwerk waarop je de vertex en UV-kaart kunt toepassen.
Ga in Bewerk modus op dit tweede net. Klik Selecteer> Alles selecteren.
Maak een nieuw venster en stel het in UV / afbeeldingseditor modus om de UV-kaart te bekijken.
In de 3D venster, selecteer Mesh> UV Unwrap> Smart UV Project.
In de UV-kaart venster, selecteer nieuwe om een textuur te maken. Uitschakelen Alpha. Noem de textuur de naam die u aan uw uiteindelijke model wilt geven.
Overschakelen naar Voorwerp modus. Je ziet een zwart model en een zwarte UV-kaart. Dat is goed!
Selecteer nu beide lagen met Verschuiving-erop klikken om ze allebei zichtbaar te maken.
Selecteer beide lagen ... ... en uw weergavepaneel zal er als volgt uitzien.In de Activabrowser, selecteer de originele mesh. Klik op het camerapictogram.
In de Bakken sectie, inschakelen Geselecteerd om actief te zijn. Zeker weten dat Bak naar Vertex Color is uitgeschakeld.
In de Tafereel sectie, instellen Kleurbeheer naar Geen.
In de aanwinst menu, selecteert u de Original Mesh. Houd vervolgens ingedrukt Verschuiving en selecteer de tweede mesh. (U moet het in die volgorde doen.) Zorg ervoor dat beide lagen zichtbaar zijn met het oog en de camerapictogrammen.
Klik op het camerapictogram. In de Bakken sectie, klik Bakken.
Je zou nu een textuur in kaart moeten hebben. Om dit te zien, schakelt u de eerste laag uit, zodat u alleen de laag met de tweede mesh ziet. Selecteer de structuur bekijken en je zult je mesh getextureerd zien met je UV-kaart.
Je zult wat funkiness opmerken waarbij de afbeelding ontbrekende delen van je mesh bevat:
U kunt overschakelen naar Textuurverf modus om die op te ruimen. U kunt nu ook overschakelen naar Beeldhouwen modus om ontbrekende gebieden in te vullen, evenals om op te ruimen of functies aan uw mesh toe te voegen.
Nadat je je mesh hebt opgeruimd, kun je je klaarmaken om het te exporteren:
Je model is voltooid!
U hebt in uw hoofd gescand, de polycount verminderd, het model opgeruimd en geëxporteerd als een 3D-model dat klaar is om in andere toepassingen te worden gebruikt. In een toekomstige zelfstudie importeren we dit 3D-net in Unity en kijken we hoe het in games kan worden gebruikt.
Het Intel® Software Innovator-programma ondersteunt innovatieve onafhankelijke ontwikkelaars die in staat zijn om toekomstgerichte projecten te creëren en te demonstreren. Vernieuwers profiteren van sprekerschap en demomogelijkheden tijdens evenementen en bijeenkomsten voor ontwikkelaars.
Intel® Developer Zone biedt tools en how-to-informatie voor platformonafhankelijke app-ontwikkeling, platform- en technologie-informatie, codevoorbeelden en peer-expertise om ontwikkelaars te helpen innoveren en slagen. Word lid van onze community voor de internet van dingen, Android *, Intel® RealSense ™ -technologie, Moderne code, Game ontwikkelaar en Ramen* om gereedschappen te downloaden, toegang te krijgen tot ontwikkelkits, ideeën uit te wisselen met gelijkgestemde ontwikkelaars en deel te nemen aan hackathons, wedstrijden, roadshows en lokale evenementen.