Ich bin sehr gespannt auf die Sensibilisierung des Computers: Eine Idee, bei der intelligente Dinge die Umgebung wahrnehmen, verbunden werden und dann zu einer Erweiterung des Benutzers werden. Als ein Intel Software-Evangelist (und ein bekennender Hobby-Programmierer) habe ich das Glück, diese Möglichkeiten mit der innovativen Technologie von Intel ausprobieren zu können. Zuvor hatte ich über das 3D-Scannen der Welt um Sie herum in Echtzeit und das Einfügen eines virtuellen Objekts darin geschrieben. In diesem Lernprogramm möchte ich jedoch erklären, wie das Gegenteil erreicht werden kann, indem Sie sich selbst 3D-Scans durchführen und diesen Scan dann der virtuellen Welt hinzufügen.
Genauer gesagt werden wir:
Am Ende erhalten Sie ein farbiges 3D-Netz Ihres Kopfes, das in Unity verwendet werden kann. (Im nächsten Tutorial werden wir sehen, wie man dies tatsächlich in Unity einführt und wozu man es in einem Spiel verwenden könnte.)
Du wirst brauchen:
Wechseln Sie nach der Installation des SDK zur Charm-Leiste (in Windows 8) oder zum Startmenü (in Windows 7 oder 10) und suchen Sie nach RealSense SDK-Beispielbrowser
. Suchen Sie es in der Liste, klicken Sie mit der rechten Maustaste darauf und wählen Sie Führen Sie als Administrator aus.
Im Beispielbrowser finden Sie einen Abschnitt namens Häufige Beispiele. Dies sind Beispiele, die sowohl für die Front- als auch für die Rückseite der RealSense-Kameras geeignet sind. Finden Sie das aufgerufene Beispiel 3D-Scan (C ++).
Unterlagen
Ordner als 3Dscan.obj
.Das OBJ-Format ist das Standardformat, das Sie beim Scannen erhalten. Um es in Blender (und später Unity) zu verwenden, konvertieren wir es mit einem kostenlosen Tool namens MeshLab in das PLY-Format. Laden Sie MeshLab herunter, installieren Sie es und führen Sie es aus, falls Sie dies noch nicht getan haben.
Von dem Datei Menü auswählen Einführen. Finden Sie das 3Dscan.obj
Datei, die Sie im vorherigen Abschnitt erstellt haben.
Nachdem Sie Ihr Objekt importiert haben, befindet es sich möglicherweise auf seiner Seite. Sie können mit der linken Maustaste auf den unteren Rand des Objekts klicken und es nach oben ziehen, um das Objekt zu drehen und zu untersuchen.
Sie sollten das mit Farbe strukturierte Netz sehen. Die Farbinformationen werden als gespeichert Scheitelpunktfarben, Dies bedeutet, dass jeder Scheitelpunkt mit den von der RGB-Kamera beim Scannen des Kopfs erhaltenen Pixeln farbig ist.
Klicken Datei> Netz exportieren als. Wählen Sie im angezeigten Dialogfeld Stanford-Polygon-Dateiformat (* .ply) von dem Dateien des Types Dropdown-Liste:
Speichern Sie das resultierende PLY an einem Ort, an dem Sie es später finden können.
Die Idee hierbei ist, die 3D-Datei in Blender zu importieren, eine Kopie davon zu erstellen, die Kopie zu bereinigen und die Scheitelpunktfarben als eine UV-Karte für die neue doppelte Version abzubilden.
Laden Sie Blender herunter, installieren Sie ihn und führen Sie ihn aus, falls noch nicht geschehen.
Erstellen Sie ein neues Projekt in Blender, und wählen Sie aus Importieren> Stanford (.ply), Wählen Sie dann die PLY-Datei aus, die Sie gerade aus MeshLab exportiert haben:
Nach dem Import sehen Sie, dass die Texturen nicht sichtbar sind:
Wenn Sie jedoch zu wechseln Textur sehen Sie, dass die RGB-Farben des Scans jetzt dem Textur-Modus zugeordnet sind:
In diesem Menü wechseln Sie zu Textur Aussicht.Um die Farben richtig zu sehen, schalten Sie den Ansichtsmodus erneut um - diesmal auf Material. Wählen Sie im rechten Bedienfeld die Option Materialien Symbol und erstellen Sie ein neues Material.
Legen Sie im Panel-Editor fest Schattierung zu Schattenlos, und in der Optionen, anschalten Vertex-Farbanstrich. Dadurch werden die Scheitelpunktfarben erfolgreich auf das Material des Objekts festgelegt.
Nun, das ist noch kein funktionsfähiges Netz für uns. Es ist voll von Löchern, es ist grob und die Anzahl der Polys ist viel höher als wir es uns wünschen, wenn wir es in einem Spiel verwenden wollen.
Wir müssen eine Version dieses Netzes erstellen, die wir bereinigen können, diese vertex-farbige Textur jedoch als UV-Karte abbilden. Diese Version ist die Version, die wir in Unity integrieren werden.
Wählen Objekt> Objekte duplizieren und schlagen Eingeben. Bewegen Sie die Maus nicht.
Als nächstes auswählen Objekt> In Ebene verschieben, und wähle dann das Quadrat rechts von der aktuellen Ebene (das zweite Quadrat von links in der oberen Reihe).
Gehe zum Asset Browser und benennen Sie Ihre Maschen um. Nennen Sie einen Original Mesh
und der andere Zweites Mesh
. Dies hilft Ihnen, sie voneinander zu unterscheiden.
Wählen Sie das zweite Netz aus, wählen Sie die relevante Ebene aus und wechseln Sie den Anzeigemodus von Material zu Solide.
Klicken Sie dann im rechten Bedienfeld auf das Symbol, das wie ein Schraubenschlüssel aussieht, um einen Modifikator hinzuzufügen. Wir werden die Poly-Anzahl dieses Gitters reduzieren und es aufräumen.
Wählen Extras> Remesh. Stellen Sie in diesem Dialog das ein Oktober Baum zwischen 7
und 8
. einstellen Modus zu Glatt, und einschalten Glatte Schattierung. Dadurch verlieren Sie die Materialzuordnung:
Klicken Sich bewerben. Sie haben jetzt ein saubereres Mesh, auf das Sie den Scheitelpunkt und die UV-Karte anwenden können.
Gehen in Bearbeiten Modus für dieses zweite Mesh. Klicken Wählen Sie> Alle auswählen.
Erstellen Sie ein neues Fenster und setzen Sie es auf UV / Bildeditor Modus, um die UV-Karte zu sehen.
In dem 3D Fenster auswählen Mesh> UV Unwrap> Intelligentes UV-Projekt.
In dem UV-Karte Fenster auswählen Neu eine Textur erzeugen Abschalten Alpha. Benennen Sie die Textur mit dem Namen, den Sie Ihrem endgültigen Modell geben möchten.
Wechseln zu Objekt Modus. Sie sehen ein schwarzes Modell und eine schwarze UV-Karte. Das ist okay!
Wählen Sie nun beide Ebenen mit aus Verschiebung-Klicken Sie auf sie, um beide sichtbar zu machen.
Wählen Sie beide Ebenen aus… … Und Ihr Ansichtsfenster wird so aussehen.In dem Asset Browser, Wählen Sie das ursprüngliche Netz aus. Klicken Sie auf das Kamerasymbol.
In dem Backen Abschnitt einschalten Ausgewählt zu aktiv. Stelle sicher das Backen Sie zu Vertex Color ist ausgeschaltet.
In dem Szene Abschnitt, Set Farbmanagement zu Keiner.
In dem Asset Wählen Sie im Menü Original Mesh. Halten Sie dann gedrückt Verschiebung und wählen Sie das zweite Netz aus. (Sie müssen dies in dieser Reihenfolge tun.) Stellen Sie sicher, dass beide Ebenen mit dem Auge und den Kamerasymbolen sichtbar sind.
Klicken Sie auf das Kamerasymbol. In dem Backen klicken Sie auf Backen.
Sie sollten jetzt eine Textur haben. Um dies zu sehen, deaktivieren Sie die erste Ebene, sodass Sie die Ebene nur mit dem zweiten Netz sehen. Wähle aus Textur Ansicht und Sie sehen Ihr Netz mit Ihrer UV-Karte strukturiert.
Sie werden einige Funkeln bemerken, bei denen das Bild die fehlenden Bereiche Ihres Netzes ausfüllt:
Sie können zu wechseln Textur malen Modus, um diese aufzuräumen. Sie können jetzt auch zu wechseln Skulptur Modus, um fehlende Bereiche auszufüllen sowie um Objekte zu bereinigen oder um Features zu ergänzen.
Wenn Sie Ihr Netz aufgeräumt haben, können Sie es für den Export vorbereiten:
Ihr Modell ist vollständig!
Sie haben im Kopf gescannt, die Polycount-Anzahl reduziert, das Modell aufgeräumt und als 3D-Modell exportiert, das Sie für andere Anwendungen verwenden können. In einem zukünftigen Lernprogramm werden wir dieses 3D-Netz in Unity importieren und sehen, wie es in Spielen verwendet werden kann.
Das Intel® Software Innovator-Programm unterstützt innovative unabhängige Entwickler, die die Fähigkeit besitzen, zukunftsweisende Projekte zu erstellen und zu demonstrieren. Innovatoren nutzen Vortrags- und Demo-Möglichkeiten bei Branchenveranstaltungen und Entwicklertreffen.
Intel® Developer Zone Bietet Tools und Anleitungen zur plattformübergreifenden App-Entwicklung, Plattform- und Technologiedaten, Codebeispiele und Expertenwissen, um Entwicklern bei der Innovation und dem Erfolg zu helfen. Treten Sie unseren Communitys für Internet der Dinge, Android*, Intel® RealSense ™ -Technologie, Moderner Code, Spieleentwickler und Windows * Laden Sie Tools herunter, greifen Sie auf Entwicklungskits zu, tauschen Sie sich mit gleichgesinnten Entwicklern aus und nehmen Sie an Hackathons, Wettbewerben, Roadshows und lokalen Veranstaltungen teil.