Quantcast
Channel: 平板电脑
Viewing all articles
Browse latest Browse all 500

Getting RealSense 3D Characters into Your Game Engine

$
0
0

PDF herunterladen

1. Einführung

Einige der besten Fortschritte in der Technologie geschehen, wenn wir die Kluft zwischen Mensch und Maschine schließen, Brücken schaffen, die uns erlauben mit Computern in unserer eigenen Sprache kommunizieren. In den letzten Jahren hat sich dieses in Form von Touch-Screens, Gestik und Spracherkennung, Gesichtserkennung und Fingerabdruck-Scan gezeigt, die alles nehmen, was wir in der realen Welt tun und es in etwas umwandeln, das der Computer verarbeiten kann. Die Möglichkeiten sind spannend für die Entwicklung von Spielen.


Abbildung 1:Verwenden Sie das Intel® RealSense™ SDK und scannen Sie sich welber direkt in eine Game-Engine

Eine der nächsten großen Sprünge in diesem Trend wird vollständiges Welt-Scannen, durch sein Wahrnehmungs-Computing sein, was dem Computer eine komplette 3D-Karte von seiner Umgebung und alles in ihm gibt. Wie Sie sich vorstellen, sind die Möglichkeiten endlos, wenn der Computer so viel über das weiß, was um Sie herum ist, wie Sie es tun. In der Tat ist es sehr wahrscheinlich, dass dem Computer gleichzeitig alles um Sie herum bewusst sein wird, im Vergleich zu dem menschlichen Benutzer, der den Fokus auf einer Teilmenge seiner Welt hat.

Wir sind noch nicht ganz auf der oben beschriebenen Stufe, aber wird sicherlich auf dem Weg dorthin und die Reise wird unglaubliche Chancen für Pioniere bringen, um diese Zukunft zu schaffen. In der Intel® RealSense™ SDK finden Sie eine Reihe von Beispielen, die direkt zu dieser Arbeit beitragen, wie der 3D-Objekt-Scanner und der Segment-Detektor.  Scannen und Verarbeitung dieser neuen Art von Daten ist der Ausgangspunkt, um dem Computer einen wahren Sinn für seinen Platz in der Welt zu geben.


Abbildung 2:  Ein Screenshot des 3D-Scanning-Beispiels aus der Intel RealSense SDK

Dieser Artikel wird sich der oben beschriebenen Arbeit hinzufügen, indem er beschreibt, wie Sie Ihre vorwärtsgerichtete Kamera verwenden können, um jemanden zu scannen und einen ganze 3D Figur basierend auf den gewonnenen Daten zu generieren. Wir werden diese Figur dann in eine virtuelle Welt stellen und durch den Computer steuern.

Als Voraussetzung sollten Sie eine gewisse Vertrautheit mit der grundlegenden Umwandlung von Tiefendaten in 3D-Punktwolken haben, die Sie aus meinem letzten Artikel mit dem Titel "Intel® RealSense™ Technologie und die Punktwolke" erhalten können, sowie einige Kenntnisse in 3D-Grafik-Prinzipien wie Ecken, Textur-Mapping und die Elemente, aus denen ein typisches 3D-Spiel oder eine Simulation besteht.

2. Warum ist dies wichtig

Damit der Computer Entscheidungen über die Welt um ihn herum treffen kann, muss er wissen, wie diese Welt aussieht und ein 2D-Bild wird in vielen Fällen nicht ausreichend sein. Der Computer muss sich umzuschauen und ein Gefühl von Maßstab und Kontext haben, und das kann am besten durch die Schaffung einer 3D-Darstellung dieser Welt erreicht werden.

Die Techniken, die hier erforscht werden, werden die gleichen Techniken sein, die verwendet werden, um viel von dieser 3D-Welt zu schaffen und geben Ihnen einen Vorsprung bei der Lösung der nächsten Reihe von Problemen, wenn neue Hardware auftaucht. Uns werden in Kürze auf Echtzeit rückwärts gerichtete Tiefenkameras vorgestellt werden, und wer weiß, welche Art von Technologie wir danach bekommen werden? Seien Sie versichert, dass die Zukunft in diesem Bereich spannende Fortschritte bringen wird und es beginnt alles mit dem Scannen einer einzigen Person und einbinden in eine kleine 3D-Welt.

Aus pragmatischer Sicht, wenn Sie diese Technologie untersuchen, um das Scannen von 3D-Objekten zu ermöglichen und sie in Ihre eigene Software zu bekommen, ist dieser Artikel ein guter Ausgangspunkt. Sie werden den Umfang der Intel RealSense SDK kennenlernen, und welche zusätzliche Codierung erforderlich ist, um Ihre eigenen Ziele zu erreichen. Sie werden auch etwas über 3D-Geometrie-Stitching erfahren, das angewendet werden kann, um Probleme, die hier nicht spezifisch in Angriff genommen werden, zu lösen.

Nicht jeder wird seine eigene Game-Engine schreiben, aber das Verständnis des Prozesses ermöglicht es Ihnen, über etwaige Mängel, die Sie sich da draußen in der realen Welt der Spiele-Entwicklung konfrontieren, hinwegzusehen, und Ihnen einen Vorteil zu geben, wenn es um die Lösung der schwierigeren Herausforderungen, die Ihnen vielleicht begegnen.

3. Ihr 3D Figur-Modell erstellen

Sie werden verstehen, dass eine Person, die an ihrem Desktop-Computer sitzt, der Tiefenkamera keine volle Skelettansicht der zu "virtualisierenden" Person präsentiert, und höchstens die Kopf, Schultern, Oberkörper, Arme und Hände sichtbar sein werden. Es macht dann Sinn, dass die übrigen Teile der 3D-Figur aus traditionellen Quellen kommen müssen. In unserem Fall werden wir ein ziviles zweifüßiges Figurmodell mit einem abnehmbaren Kopf verwenden.


Abbildung 3:  Diese 3D-Figur ist mit einem separaten Kopfnetz modelliert

Der Vorteil dieses Ansatzes ist, dass wir den Kopf, den der Künstler liefert, durch einen Kopf aus 3-Daten, die von der Tiefenkamera stammen, ersetzen können. In meinem Punktwolke Artikel habe ich ausführlich behandelt, wie dies von Grund auf neu durchgeführt werden kann, mit nichts als den rohen Tiefendaten, um eine genaue Echtzeit-Darstellung von dem, was vor dem Computer liegt, zu generieren.  In diesem Fall würde ein solches Ergebnis Artefakte haben, die wir nicht wollen, wie beispielsweise unbestimmte Gesichtskanten, schlechtes Haar und keinen hinteren Bereich. Dies sind Eigenschaften, die wir nicht in einer 3D-Darstellung unseres virtuellen Ichs haben wollen, also müssen wir einen alternativen Ansatz verwenden, der diese Fehler beseitigt.

Die Lösung ist, mit einem bestehenden Kopfnetz mit vorhersagbaren Bereichen der Vertex-Daten zu beginnen und diese dann so zu verändern, dass sie die Konturen der 3D-Daten, die aus der Tiefe der Kamera stammen, reflektieren. Zur gleichen Zeit weden die RGB-Farbdaten aus der Kamera auch in ein Textur-Bild umgewandelt und auf das Kopfnetz mit einer Kombination von UV-Mapping und Textur-Blending aufgebracht.  Um die besten Ergebnisse zu erzielen, ist ein ruhendes Bild viel besser als ein Live-Stream, da es Ihnen kleine Veränderungen und Verschiebungen erlaubt, um eine gute Passform zwischen dem Lager-Kopfnetz und den hoch erratischen 3D-Daten, die Sie zu bewältigen haben könnten, zu erstellen.  Die Ausgabe wird ein neues Kopfnetz und ein neues Textur-Bild, das mit dem bestehenden eigenen Kopf der 3D-Figur getauscht werden kann, um ein hybride Figur zu erzeugen.


Abbildung 4:Die Figur-Texturen würden eine Fläche für das Gesicht, Augen und Ohren reservieren

Natürlich ist dies nur der erste Schritt zur Schaffung einer Figur, die mit dem übereinstimmt, wie Sie vielleicht in einer virtuellen Welt aussehen würden, und die Tiefenkamera kann hierbei noch einmal helfen. Mit den RGB-Farbdaten von der Kamera können Sie eine Messung der Hautpigmente und auch der Farbe des Hemdes, das Sie tragen, durchführen. Diese einfache RGB-Farbprobe wird dann verwendet, um Änderungen am Rest des Figurkörpers, insbesondere Arm- und Handfarbe sowie Oberbekleidungsfarbe vorzunehmen. Da der Computer keine Möglichkeit hat, Ihre untere Hälfte zu scannen, kann die Farbe und der Stil der Hosen, Schuhe und andere Verzierungen von Hand vorgenommen werden. Diese manuelle Konfiguration der Figur ist ein ziemlich gemeinsames Merkmal der meisten RPG und vielen Drittanbieter-Spielen, und würde den Rahmen dieses Artikels sprengen.

Innerhalb des Rahmens ist jedoch die automatische Erkennung der Haut- und Hemdfarbe, die in einer Vielzahl von Möglichkeiten, von denen es die Einfachste ist, einen idealen Orientierungspunkt zu lokalisieren, von dem die Farbe des Pixels an dieser Position abgegriffen werden kann. Zum Beispiel wird die Berechnung eines Mittelpunktes zwischen dem linken Ohr und dem linken Auge einen Pixel der Haut des Gesichts lokalisieren, und die Entnahme einer Probe ein paar Zentimeter unterhalb der Stelle des Kinns, der nicht mit der zuvor abgegriffenen Hautfarbe übereinstimmt, wird Ihnen die Farbe für die Kleidung geben. Wir können für die Zwecke der Zweckmäßigkeit annehmen, dass die Farbe des Gesichts auch die Farbe der Arme, Hände und anderen entblößte Teile der 3D-Figur ist.

Sobald Sie Ihr modifiziertes Kopfnetz, Ihre Kopftextur und eine modifizierte Körperbeschaffenheit haben, sind Sie bereit, um sie alle in der virtuellen Welt zusammenzusetzen. In unserem Fall haben wir einen 3D-Figurmodell gewählt, das wurde mit einer Reihe von gemeinsamen Animationen für still stehen, gehen, laufen und andere Maßnahmen, die Sie mit Drittanbieter-Kontrollen verknüpfen, vorgefertigt ist. Von hier ab können Sie entscheiden, ob die Figur ein Avatar wäre, der die Hauptfigur des Spiels darstellt, oder eine der Figuren im Spiel, die der Spieler während der Spielgeschichte trifft.

4. Echtzeit-3D an ein vorhandenes Kofnetz stitchen

Jetzt da wir den allgemeinen Überblick über die Technik abgedeckt haben, müssen wir den spezifischen technischen Prozess, mit dem irgendwie Ihr tatsächliches Gesicht auf den Modellkopf aufgesetzt wird, ansehen, und dies ist der Punkt, an dem einige Grundkenntnisse der 3D-Programmierung von Nutzen sein werden.  Auf der Grundlage der Voraussetzung, dass Sie mit dem Punktwolke Artikel vertraut sind, können wir auf eine Ausführung des Erhalts der Echtzeit-3D-Geometrie und RGB-Textur-Farbdaten aus der Tiefenkamera verzichten und uns daraus fokussieren, wie diese Daten mit einem Kopfnetz mit fester Größe zusammengeführt werden können.


Abbildung 5:  Eine Drahtmodell-Darstellung eines typischen von einem Künstler modellierten Kopf

Wenn Sie einen Künstler bitten, eine 3D-Figur zu erstellen, wird er sich viel Mühe geben, um sicherzustellen, dass der gesamte Kopf und Köper nicht zu viele Eckpunkte hat, da dies die allgemeine Leistung des Spiels verbessert, indem weniger Polygone geendert werden müssen. Dies lässt uns mit einem Kopfnetz zurück, das nicht die Genauigkeit der 3D-Daten aufweist, die wir aus der Tiefenkamera erhalten können, die 3D-Daten mit einer Auflösung von hunderten von Eckpunkten in der Breite scannen kann. Moderne Game-Engines könnten einen Kopf mit weniger als 50 Eckpunkten bereitzustellen, das heißt, es werden eine Menge der kleineren Details, die Ihre einzigartigen Gesichtszüge ausmachen, fehlen.

Glücklicherweise hat die Spiele-Entwicklung hat eine Lösung hierfür, genannt Normal oder Bump Mapping, das eine hohe Rasterdichte von 3D-Punkten aufnehmen und in ein Texturbild umwandeln kann, das Vektoren speichert, welche die Richtung der Oberfläche speichert, die es darstellt. Mehr Informationen über Normal Mapping, komplett mit Abbildungen, kann unter dem folgenden Link auf http://www.mat.ucsb.edu/594cm/2010/adams_rp1/index.html gefunden werden. Denken Sie davon, wie von einem Tuch, dass über ein Gesicht gelegt wird, und wie der Stoff sich um die Konturen in den Gesichtszügen legt, wird der Winkel der Oberfläche relativ zur Richtung des Kopfes in einem Textur-Pixel gespeichert. In Spielen ist es oft wünschenswert, Daten mit hoher Auflösung in Texturen anstatt Geometrie zu speichern, das die Hardware optimiert ist, um die Ergebnisse viel schneller zu rendern. Dank dieser Technik können wir alle hochauflösenden 3D-Daten aus den Echtzeit-Tiefendaten erhalten und sie in eine normale Karte codieren, die mit der Textur des Kopfes verknüpft wird, obwohl die Geometrie unseres Kopfnetzes niedriger sein könnte.

Die Texturierung des Kopf ist viel einfacher, es erfordert nur, dass die RGB-Farbdaten von der Kamera mit der richtigen Stelle auf dem Kopfnetz verknüpft wird und dann mit der bestehenden Kopftextur gemischt wird, aber sie hat ein paar Komplikationen. Die Textur für das Kopfnetz wird in der Regel von einem Künstler erstellt, der Details einfügen wird, die ein einzelner Schnappschuss nicht erfassen kann, wie beispielsweise die Seite des Kopfes oder die Rückseite. Eine Technik ist es, die RGB-Textur von der Kamera in die Kopftextur zu mischen und die Kanten, an denen das Kopfnetz beginn die Seiten, oben und hinten zu umwickeln weichzuzeichnen. Der Nachteil dieser Technik ist, dass Ihr Gesicht mit der Vorderseite des Kopfes verknüpft ist, aber die Frisur, Haarfarbe, Ohren, seitlichen Locken und der Hinterkopf vollständig vom Künstler geschaffen werden und das Ergebnis wird von leicht amüsant bis völlig unangemessen reichen.


Abbildung 6:  Das Ergebnis der Verwendung einer einzigen frontalen Aufnahme um Ihren Kopf zu texturieren

Ein besserer Weg ist es, mehrere Scans des Kopfes zu machen, ähnlich wie ein Fahndungsfoto, aber mit mehr Fotos und präzise gesteuert, damit die Software alles wieder zusammenfügen kann.  Das Intel RealSense SDK hat ein Beispiel bereitgestellt, das genau dies tut und sofort aus dem Ordner der vorkompilierte Binaries ausgeführt werden kann.


Abbildung 7:  Das 3D-Objekt-Scanner-Beispiel, nach dem Scannen eines Programmierer-Kopfes

Sobald Sie diese Daten haben, und was noch wichtiger ist, die Textur auf das hergestellte Netz verknüpft ist, wird Ihre 3D-Figur alles haben, was sie braucht, um den Kopf aus jedem Blickwinkel darzustellen, nicht nur eine nach vorn weisende Haltung.  Selbstverständlich wollen Sie Ihren eigenen 3D-Scanner für Ihr Projekt erstellen, so, was folgt, ist eine Aufschlüsselung davon, wie die Technik für Sie arbeiten könnte.


Abbildung 8:  Benutzerdefinierter 3D-Kopfscanner, geschaffen um Gesichts-Stitching zu demonstrieren

Es gibt eine Reihe von Möglichkeiten, wie Sie könnten einen 3D-Kopf erstellen können, der aus verschiedenen Blickwinkeln richtig aussieht. Eine besteht darin, mit einer perfekten Kugel zu beginnen und sie wie ein Stück Ton in Form zu bringen, indem die Ausrichtung des Kopfes ausgearbeitet wird, und dann die nach vorne weisenden Tiefen von der Kamera zu scannen und die Tiefen in die Kugel zu arbeiten. Mit genügend Durchläufen, wird das Gesicht zu beginnen, Gestalt anzunehmen, und das Kugel-Objekt ein versiegeltes Objekt ist, ein komplettes 3D-Objekt für Ihr Spiel oder Ihre Anwendung zur Verfügung steht, wenn Sie den Kopf abgeschlossen haben. Der Nachteil dieser Technik ist, dass das Tracking Kopforientierung, wie normale Daten des Gesichts, die in der SDK gefunden werden, nicht perfekt sind und etwas zittern kann, was bedeutet, dass feine Details wie Augen, Nase und Mund mit wiederholtem Scannen verschwimmen und der Scan selbst kann ein wenig Zeit in Abhängigkeit von der verwendeten Methode in Anspruch nehmen.

Eine bessere Technik, wie oben angedeutet, ist es, mehrere Fahndungsaufnahmen des Kopfes zu machen, in verschiedenen Winkeln und dann herausarbeiten, wie sie miteinander verbunden werden, um ein einzelnes verwendbares Objektnetz zu bilden.  Sie könnten die Netzaufnahmen separat nehmen und dann versuchen, sie in einem provisorischen Kunstwerkzeug oder kleinen Programm manuell verbinden, aber angesichts der Tendenz, dass der Kopf Position und Abstand von der Kamera während der Scan-Sitzung verschiebt, wird dies nur zu Frustration führen .  Wenn Ihre Scans genau sind, können Sie die Netze mit dem ersten gescannten Netz mischen und Anpassungen vornehmen, wenn ein Scheitelpunkt in der Weltraummodelldaten vorhanden ist, und einen neuen Weltraumscheitelpunkt erstellen, wenn keiner vorher bestanden. Auf diese Weise können Sie Ihr Kopfnetz mehr und mehr feiner bekommen, je mehr Beispiele Sie zur Verfügung stellen, und möglicherweise kann der ganze Kopf abgebildet werden, wenn Sie einen Weg für den Benutzer finden, sich um 360 Grad drehen, während er an einem Schreibtisch sitzt.  Der Nachteil dieser Technik ist, dass das Verbleiben des Kopfes beim Scannen in einer zentralen Position und die Umwandlung dieser 3D-Daten in Weltkoordinaten einige Herausforderungen schafft.


Abbildung 9:  Bekommen Sie falsche Kopfpositionen und Sie enden mit zwei Nasen

Das Problem mit Live-3D-Scanning ist, dass dort ein Mensch am anderen Ende ist, das heißt, sie zappeln, verschieben sich in ihren Sitzen, lehnen sich zurück und bewegen sich auf subtile Weise vorwärts, und das ist nicht die Bilanzierung der subtilen Nick-, Gier- und Rollbewegungen des Kopfes selbst. 

Die perfekte Technik ist es, Signaturmarker innerhalb des abgetasteten Netzes zu erfassen, um ein 'fixen Eckpunkt' zu bekommen. Betrachten Sie das als Kartierung Ihrer Position auf dem Ozean durch Blick auf die Sterne, und unter Verwendung von Sternbildern können Sie sowohl Ihre relative Orientierung als auch Ihre Position berechnen. Dies ist besonders nützlich, wenn Sie ein zweites Netz erstellen, auf das Sie den gleichen Markierungserkennungsalgorithmus anwenden können, finden Sie das gleiche Muster und geben Sie die relative Orientierungs-, Positions- und Skalierungsverschiebung vom ersten Netz zurück. Sobald Sie diesen Offset haben, ist das Hinzufügen des zweiten in das erste Netz ist eine einfache Weltveränderungsberechnung, und dann das Hinzufügen der zusätzlichen Eckendaten in das ursprüngliche Netz. Dieser Vorgang wird wiederholt, bis es kein Netz mehr gibt, das Sie einreichen möchten, und dann fahren Sie mit dem letzten Schritt fort.

Wenn die Technik, die Sie gewählt haben, die Schichtung von Vertex-Daten auf einem einzelnen Objekt beinhaltete, werden Sie wahrscheinlich eine Menge Überschuss und überlappende Ecken haben. Diese müssen entfernt und eine neue Dreiecksliste erzeugt werden, um das Objekt und den Export in das Format Ihrer Wahl zu versiegeln.

5. Ihren 3D-Kopf exportieren und in Ihr Spiel laden

Man könnte argumentieren, die harte Arbeit sei getan worden, und die unglaublich schwierige Aufgabe der Umwandlung eines wirklichen Kopfes in einen virtuellen sei vorbei. Die letzte große Hürde ist es, sich für ein 3D-Dateiformat zu entscheiden, und eine Datei zu erstellen, die die Daten, die Sie mühsam erstellt haben, darstellt.  Zum Glück benötigen SIe kein Format, das Animation, Knochenstrukturen oder auch UV-Koordinaten unterstützt, wenn Sie Ihre Farbdaten in dem Vertex-Format selbst speichern.  Das beliebtesten 3D-Dateiformat, das auf diese Beschreibung passt, ist das Wavefront OBJ-Dateiformat, das ein textbasiertes Open-Format ist, das eine vom Menschen lesbare Sequenz von Daten erzeugt, um eine geometrische Form zu beschreiben.

Sie möchten Ihren Exporter so einfach wie möglich halten, komplexe Operationen an Werkzeuge übergeben, die sich auf die zusätzlichen Elemente spezialisieren die Sie einführen möchten, wie Knochen für Mimik.  Vielleicht kann in der Zukunft Ihr 3D-Kopfscanner die tatsächlichen Mund und Augenbewegungen erfassen und notwendige Knochenstellen bestimmen, die Animationsdaten bereitstellend, sodass Ihre Figuren mit Ausdrücken vorprogrammiert werden, die direkt mithilfe der Tiefenkamera erstellt werden.  In der Tat sind nur 10 Phonem Ausdrücke erforderlich, um eine überzeugende Mundbewegung für sprechende Figuren zu erzeugen. Wie dies getan werden kann, würde den Rahmen dieses Artikels sprengen, aber die in diesem Artikel erreichte Grundlage wird Sie vorbereiten, diesen bahnbrechenden Schritt zu machen, wenn Sie wollen.

Das Speichern der 3D-Modell-Datei erfordert lediglich die Erzeugung einer Datei und das Schreiben von ein paar Zeilen, die die Vertex- und Dreiecksdaten codieren.  Hier ist ein einfcher Asuzug aus dem OBJ-Dateiformat:

# OBJ Model File comment
# Object
o mesh1  # Mesh
g mesh  # Vertex list
v 3999.993408 999.998352 -0.000000
v 3999.993408 999.998352 -0.000000
v 3999.993408 899.998352 -0.000000
vt 0.000000 -0.000000 0.000000 -0.000000
vt 1.000000 -0.000000 0.000000 -0.000000
vt 1.000000 -1.000000 0.000000 -0.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 1.000000  # Face list
f 1/1/1 3/3/3 2/2/2
f 4/4/4 6/6/6 5/5/5
f 7/7/7 9/9/9 8/8/8

Die meisten Entwicklungswerkzeuge unterstützen den Import von OBJ 3D-Dateien und fast alle 3D-Modell-Viewer auch, somit können Sie sofort testen, ob Ihre Kreation korrekt exportiert wurde.  Wenn Sie zusätzliche Vertex-Daren exportieren wollen, wie die diffuse Komponente müssen Sie entweder Ihr eigenes 3D-Dateiformat für den Export und Import erstellen, oder eine Export-Unterstützung für eine anspruchsvollere Format implementieren. Ein solches Format ist das DirectX-Dateiformat, das es auch ermöglicht Text zu exportieren, sondern eine viel breitere Palette von Export-Attribute unterstützt, einschließlich benutzerdefinierter Vertex-Datenformate.

Es ist beim Laden des 3D-Kopf-Modell, das Sie aufgefordert werden, ihn mit dem kopflosen Körper zu verbinden, den Sie bereits in Ihre Game-Engine geladen haben. Sie oder Ihre Künstler würden einen Ankerpunkt oder Hotspot im Körper-Modell erstellt haben, das den Hals lokalisiert, und es ist diese Stelle, die den Kopf an seiner Position fixiert.  Natürlich werden Sie, wenn der Kopf befestigt ist, plötzlich feststellen, dass die Reise noch lange nicht vorbei ist.


Abbildung 10:  Ein erster Versuch, unseren 3D-Kopf auf einen realen Körper zu importieren

Wie Sie in Abbildung 10 sehen können, haben wir unseren Kopf mit dem Körper verbunden, aber es ist sofort klar, dass es herzlich wenig Details auf der Rückseite und der Oberseite gibt, die unsere Figur weit überzeugender machen würden, da unsere Scan sich nur auf die Vorderseite und die Seiten konzentrierte.

6. Hinzufügen einer Perücke

Bis wir eine universelle Möglichkeit zur Tiefenkameras haben, um um Ecken zu sehen, oder eine Methode, um den Benutzer in ihren Sitzen zu drehen, werden wir nicht in der Lage sein, die Rückseite des Kopfes einer Person mit einer einzigen Kamera zu erfassen. Wir können wunderbare neue Systeme erdenken, die vielleicht ein Tablet nutzen könnten, um alle Seiten des Kopfes zu prüfen und diese zusätzlichen Daten an die Scanner-Software zu übertragen, aber für die Zwecke dieses Artikels sind wir auf eine einzelne nach vorne gerichtete Kamera und eine sich nicht drehenden Benutzer beschränkt.

Die Lösung kommt aus einer der vielen Seiten der Spiele-Entwickler-Bibel, und eine, von der wir uns selber überzeugen können ist ein ziemlich nettes Feature im Gegensatz zu einem eher finsteren Hack. Nachdem wir festgestellt haben, dass die Ober- und Rückseite des Kopfes zwielichtige Geometrie enthält, gehen wir dazu über es mit etwas Passendem zu vertuschen. Wenn Ihr Spiel in den Weltraum gesetzt wurde, könnte es ein Raumfahrerhelm sein, oder wenn Sie Ihrem Endbenutzer die Möglichkeit geben möchten. die Figur anzupassen, dann könnten Sie eine Reihe von Haarteilen bereitstellen, die sich bequem an die Seite des Kopfes drapieren und die Ohren verstecken, die nicht vorhanden sind.


Abbildung 11:  Plötzlich wird der Charakter in die Szene gehörer, und der 3D-Kopf sieht gut aus

Es mag wie Betrug erscheinen, aber wenn man das Glück hat, einen Künstler zu haben, werden sie wahrscheinlich werden darauf bestehen, dass, um ein gute visuelles Ergebnis zu erreichen, Ihr 3D-Kopf sensibel in den Körper der Figur eingebunden ist.  Wenn Sie beginnen, die Optionen zu untersuchen, werden Sie feststellen, es gibt fast kein Szenario, in dem Ihre Spiel-Figur nicht etwas drüber tragen kann.

7. Tipps und Tricks

Was Sie tun sollten

  • Speichern der Farbdaten des Gesichts-Scan in der diffusen Komponente der Vertex-Daten ist eine praktische Methode, um die Notwendigkeit für eine Textur zu vermeiden, und bietet weitere Vorteile, wenn es um die Optimierung der Abschlussgewebe kommt
  • Wenn Sie wirklich das Hinzufügen von Hüte und Perücken zu Ihrem endgültige Spielcharakter vermeiden wollen, binden oder gelen Sie Ihr Haar zurück, bevor Sie Ihre Scans machen. Je flacher ist, desto besser wird der Scan sein. Lose Haare stören die Tiefenkamera und produzieren Streureflexionen, die nicht gut gesannt werden

Was Sie nicht tun sollten

  • Fahren Sie nicht fort die Techniken in diesem Artikel zu implementieren, bevor Sie eine gutes praktisches Verständnis von 3D-Geometrie-Codierung haben, die Bearbeitung von variabel ausgerichteten Vertex-Daten kann tückisch sein
  • Vergessen Sie nicht, die rohen Tiefendaten zu verarbeiten, um Störungen wie streunende Tiefenwerte, die nicht im Einklang mit den umliegenden Tiefe-Pixeldaten sind, zu entfernen. Tun Sie dies nicht, wird die ganze getane Arbeit, um ein gutes 3D-Kopfnetz zu erstellen vergeblich gewesen sein

8. Abschließende Gedanken

Es könnte als übermäßig viel Arbeit erscheinen, nur um die vorderen Teile des Kopfes in eine virtuelle Szene zu bekommen, aber die Techniken, die Sie in diesem Artikel gelernt haben, können auf das Scannen und Stitchting von allem angewendet werden, was Sie wollen.  In Tron Legacy der Film sahen wir, wie ein Mensch so gründlich gescannt werden konnt, dass er tatsächlich seinen Körper in eine virtuelle Welt transportierte. Die Möglichkeit, Ihre Essenz in den Computer zu scannen und Ihre Reise in eine virtuellen Landschaft fortzusetzen, beginnt hier, mit dem Scannen eines einzelnen Gesichts. Es ist nicht nur das Scannen einer Tasse oder eines Spielzeug; es ist das Scannen eines wertvollen Teil von Ihnen, und macht die Erfahrung in der Tat sehr persönlich.

Wie lange dauert es, bevor jedes Computerspiel mit der Fähigkeit daher kommt, die Infusion von Ihrer Persönlichkeit, Vorlieben und Gleichnis als gemeinsames und notwendiges Merkmal anzunehmen?  Wir könnten diese "digitale Doppelgänger"über viele Jahre herstellen, und sie in jedes Spiel mit allen Eigenschaften, die wir mit anderen teilen möchten, einfließen lassen. Stellen Sie sich vor Spiele zu spielen, in denen fast jeder den sie treffen so aussieht, sich so anhört und so reagiert wie sein menschlicher Bediener. Wie werden sich Spiele und Einstellungen zu verändern, wenn die in-game Protagonisten beginnen, wirkliche Menschen zu ähneln, die Sie in Ihrem eigenen Leben treffen könnten? Wenn Sie jemandem ein Gesicht geben können, werden sie real, und es wird interessant sein zu sehen, wie sich Spiele und die Spieler als Ergebnis ändern.

Über den Autor

Wenn er keine Artikel schreibt, ist Lee Bamber der CEO von The Game Creators, ein britisches Unternehmen, das in der Entwicklung und dem Vertrieb von Spiel-Creation-Tools spezialisiert ist. 1999 gegründet, sind die Firma und die umliegenden Community von Spieleherstellern für viele populäre Marken wie Basic, The 3D Game Maker, FPS Creator, App Game Kit (AGK) und in jüngster Zeit, Game Guru verantwortlich.

  • Intel RealSense SDK
  • Intel RealSense
  • Intel RealSense 3D Camera
  • Point Cloud
  • Lee Bamber
  • Perceptual Computing
  • 3D graphics
  • 3D Capture
  • 3D game creation
  • 开发人员
  • Microsoft Windows* 10
  • Microsoft Windows* 8.x
  • 英特尔® 实感™ 技术
  • 高级
  • 中级
  • 英特尔® 实感™ SDK
  • 英特尔® 实感™ 技术
  • 游戏开发
  • 图形
  • 笔记本电脑
  • 平板电脑
  • 桌面
  • URL
  • 英特尔® 实感™ 技术

  • Viewing all articles
    Browse latest Browse all 500

    Trending Articles



    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>