-
GEBIET DER ERFINDUNG
-
Die hierin beschriebenen Ausführungsformen beziehen sich im Allgemeinen auf die Navigation in einer virtuellen, dreidimensionalen Umgebung.
-
Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
-
HINTERGRUND DER ERFINDUNG
-
Vielezurzeit verfügbare Mobilgeräte enthalten Bewegungssensoren, z. B. einen Beschleunigungsmesser, einen Kompass und ein Gyroskop, die zum Navigieren einer virtuellen Kamera in einer dreidimensionalen Umgebung verwendet werden können. Die Sensoren geben eine Änderung bei der Position des Mobilgeräts an, wenn das Mobilgerät von einem Benutzer bewegt wird. Die Sensoren können jedoch nicht die Position des Benutzers in Bezug auf das Mobilgerät verfolgen und die Änderung bei der Position des Benutzers in Bezug auf das Mobilgerät in Kombination mit den Sensoren nutzen, um die virtuelle Kamera zu navigieren.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Die hierin beschriebenen Ausführungsformen umfassen Systeme, Verfahren und Computerspeichermedien für das Navigieren einer virtuellen Kamera in einer virtuellen, dreidimensionalen Umgebung mithilfe eines Mobilgeräts, wobei das Mobilgerät eine Bildebene der virtuellen, dreidimensionalen Umgebung aus Perspektive der virtuellen Kamera anzeigt. Eine exemplarische Methode beinhaltet den Empfang eines Hinweises, dass das Mobilgerät um eine erste Rotationsachse geschwenkt wurde, von mindestens einem Sensor am Mobilgerät. Die erste Rotationsachse ist parallel zu einer Ebene, die den Anzeigebildschirm des Mobilgeräts umfasst. Eine Änderung bei der Position eines Benutzers in Bezug auf das Mobilgerät wird verfolgt, wenn das Mobilgerät um die erste Rotationsachse geschwenkt wird. Die Änderung bei der Position des Benutzers wird aus einer Vielzahl von Bildern des Benutzers bestimmt, die von der Frontkamera des Mobilgeräts aufgenommen werden. Anschließend wird die erste Rotationsachse auf Basis der Änderung bei der Position des Benutzers in Bezug auf das Mobilgerät bestimmt. Wenn der Ort der ersten Rotationsachse in der Nähe des Mobilgeräts ist, wird eine erste Aktion zur Navigation innerhalb der dreidimensionalen Umgebung ausgeführt. Wenn der Ort der ersten Rotationsachse in der Nähe des Benutzers ist, wird jedoch eine zweite Aktion zur Navigation innerhalb der dreidimensionalen Umgebung ausgeführt.
-
Weitere Merkmale und Vorteile der hierin beschriebenen Ausführungsformen sowie die Struktur und Funktionsweise der verschiedenen Ausführungsformen sind unten in Bezug auf die begleitenden Zeichnungen genau beschrieben.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN/FIGUREN
-
Ausführungsformen werden in Bezug auf die begleitenden Zeichnungen beschrieben. In den Zeichnungen können gleiche Bezugsnummern identische oder funktionell ähnliche Elemente angeben. Die Zeichnung, in der ein Element zum ersten Mal erscheint, ist normalerweise durch die Ziffer ganz links in der entsprechenden Bezugsnummer angegeben.
-
1A ist ein Diagramm, das eine Bewegung eines Mobilgeräts veranschaulicht, das zum Navigieren einer virtuellen Kamera in einer virtuellen, dreidimensionalen Umgebung verwendet werden kann.
-
1B und 1C sind Diagramme, die eine Navigation einer virtuellen Kamera innerhalb der dreidimensionalen Umgebung veranschaulichen, wobei die Navigation auf dem Diagramm in 1A basiert.
-
2A ist ein Diagramm, das eine Bewegung eines Mobilgeräts veranschaulicht, das zum Navigieren einer virtuellen Kamera in einer virtuellen, dreidimensionalen Umgebung verwendet werden kann.
-
2B und 2C sind Diagramme, die eine Navigation einer virtuellen Kamera innerhalb der dreidimensionalen Umgebung veranschaulichen, wobei die Navigation auf dem Diagramm in 2A basiert.
-
3 veranschaulicht eine exemplarische Systemumgebung, die zum Navigieren einer virtuellen Kamera in einer virtuellen, dreidimensionalen Umgebung mithilfe eines Mobilgeräts verwendet werden kann.
-
4 ist ein Ablaufdiagramm eines exemplarischen Verfahrens, das zum Navigieren einer virtuellen Kamera in einer virtuellen, dreidimensionalen Umgebung mithilfe eines Mobilgeräts verwendet werden kann.
-
5 veranschaulicht einen exemplarischen Computer, in dem die hierin beschriebenen Ausführungsformen oder Teile davon als computerlesbarer Code implementiert sein können.
-
AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
-
Mobilgeräte, die gemäß den hierin beschriebenen Ausführungsformen konfiguriert sind, können zum Navigieren einer virtuellen Kamera in einer dreidimensionalen Umgebung verwendet werden, die auf dem Mobilgerät angezeigt wird. Die virtuelle Kamera wird auf Basis von Daten navigiert, die vom Bewegungssensor im Mobilgerät empfangen werden, und Bildern, die von der Frontkamera des Mobilgeräts gestreamt werden, während das Mobilgerät von einem Benutzer bewegt wird. Die Daten vom Bewegungssensor werden zusammen mit Änderungen bei der Position des Benutzers in Bezug auf das Mobilgerät verwendet, um eine Navigationsaktion für die virtuelle Kamera zu bestimmen. Die Änderungen bei der Position des Benutzers in Bezug auf das Mobilgerät werden durch Verfolgen des Unterschieds bestimmt, wo der Benutzer in den Bildern erscheint, die von der Frontkamera des Mobilgeräts gestreamt werden.
-
Inder folgenden detaillierten Beschreibung geben Bezugnahmen auf „eine Ausführungsform”, „eine exemplarische Ausführungsform” usw. an, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft enthalten kann. Es muss jedoch nicht jede Ausführungsform notwendigerweise dieses bestimmte Merkmal, diese bestimmte Struktur oder diese bestimmte Eigenschaft enthalten. Somit beziehen sich solche Ausdrücke nicht unbedingt auf dieselbe Ausführungsform. Wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft im Zusammenhang mit einer Ausführungsform beschrieben ist, so wird weiterhin unterstellt, dass Fachleute die Kenntnis besitzt, ein solches Merkmal, eine Struktur oder Eigenschaft im Zusammenhang mit anderen Ausführungsformen zu bewirken, unabhängig davon, ob sie ausführlich beschrieben sind oder nicht.
-
Die folgende detaillierte Beschreibung erwähnt den Begriff „in der Nähe von”. Dieser Begriff wird verwendet, um eine Rotationsachse zu beschreiben, die sich ungefähr am gleichen Ort wie ein Objekt befindet. Die Rotationsachse ist in der Nähe des Objekts, wenn die Rotationsachse mindestens einen Teil des Objekts schneidet. Wenn ein Objekt zum Beispiel um Rotationsachse rotiert, ist die Rotationsachse in der Nähe des Objekts.
-
Die folgende detaillierte Beschreibung bezieht sich auf die begleitenden Zeichnungen, die exemplarische Ausführungsformen veranschaulichen. Andere Ausführungsformen sind möglich und es können Änderungen an den Ausführungsformen innerhalb des Geists und Umfangs dieser Beschreibung vorgenommen werden. Fachleute mit Zugang zu hierin angegebenen Anleitungen werden zusätzliche Änderungen, Anwendungen und Ausführungen innerhalb des Umfangs und zusätzliche Felder erkennen, in denen die Ausführungsformen von erheblicher Nützlichkeit wären. Daher soll die detaillierte Beschreibung die unten beschriebenen Ausführungsformen nicht begrenzen.
-
Die folgende detaillierte Beschreibung ist in Abschnitte aufgeteilt. Der erste Abschnitt beschreibt exemplarische Bewegungen und Navigationen, die durch hierin beschriebene Ausführungsformen genutzt werden können. Der zweite und dritte Abschnitt beschreiben exemplarische Ausführungsformen von Systemen bzw. Verfahren, die verwendet werden können, um eine virtuelle Kamera in einer virtuellen, dreidimensionalen Umgebung zu navigieren. Der vierte Abschnitt beschreibt ein exemplarisches Computersystem, das zur Implementierung der hierin beschriebenen Ausführungsformen verwendet werden kann.
-
Beispielhafte Bewegungen und Navigationen
-
1A ist ein Diagramm 100, das eine Bewegung eines Mobilgeräts veranschaulicht, das zum Navigieren einer virtuellen Kamera in einer virtuellen, dreidimensionalen Umgebung verwendet werden kann. Diagramm 100 beinhaltet einen Benutzer 102, ein Mobilgerät 104 und eine Rotationsachse 106. Diagramm 100 wird von Benutzer 102 durchgeführt, der ein Mobilgerät 104 um eine erste Rotationsachse 106 schwenkt. Während Benutzer 102 das Mobilgerät 104 schwenkt, ist das Mobilgerät 104 so konfiguriert, dass es den Ort der Rotationsachse 106 bestimmt. Der Ort der Rotationsachse 106 wird mithilfe von Daten bestimmt, die von den Sensoren am Mobilgerät 104 empfangen werden, und Bildern, die von der/den Kamera(s) des Mobilgeräts 104 gestreamt werden, die ein Bild des Benutzers aufnehmen kann/können, wenn der Benutzer auf das Display des Geräts blickt. Die Kamera, die in Richtung Benutzer zeigt, kann zum Beispiel eine „Frontkamera” sein, die ein oder mehrere Bildgebungssensoren enthält, die am oder im Mobilgerät 104 so positioniert sind, dass sich der Benutzer im Sichtfeld der Kamera befindet, wenn der Benutzer auf das Display des Geräts blickt. Auch wenn hier eine Frontkamera erörtert wird, kann in einigen Implementierungen der/die Bildgebungssensor(en) in eine andere Richtung weisen, wobei optische Elemente (z. B. Spiegel) verwendet werden, damit der/die Sensor(en) Bilder des Benutzers aufnehmen kann/können. In diesem Beispiel befindet sich Rotationsachse 106 in der Nähe des Mobilgeräts 104, d. h. die Rotationsachse ist dem Mobilgerät näher als dem Benutzer.
-
1B ist ein Diagramm 150, das eine Navigation einer virtuellen Kamera innerhalb der dreidimensionalen Umgebung veranschaulicht, wobei die Navigation als Reaktion auf die Rotation erfolgt, die dargestellt ist in Diagramm 100 in 1A basiert. 1B zeigt die Navigation der virtuellen Kamera von der Seite, während 1C eine Ansicht entlang der Rotationsachse 156 zeigt. Diagramm 150 beinhaltet die virtuelle Kamera 152, das Sichtfeld 154, die Rotationsachse 156, die dreidimensionale Umgebung 158 und die Bildebene 160. Bildebene 160 wird auf dem Display des Mobilgeräts 104 angezeigt. Bildebene 160 nimmt die dreidimensionale Umgebung 158 aus der Perspektive der virtuellen Kamera 152 auf Basis des Sichtfelds 154 der virtuellen Kamera 152 auf. Ein Benutzer 102 führt eine Bewegung 100 aus, eine erste Navigationsaktion wird ausgeführt, sodass die virtuelle Kamera 152 in der dreidimensionalen Umgebung 158 durch Schwenken der virtuellen Kamera 152 um die Rotationsachse 156 navigiert wird. Hier befindet sich die Rotationsachse 156 in einem Abstand zwischen der Bildebene 160 und der Szene, die in der dreidimensionalen Umgebung 158 dargestellt wird.
-
Wie in 1C dargestellt, dreht sich die virtuelle Kamera 152 um die Achse 156 von einer ersten Position mit Sichtfeld 154 und entsprechender Bildebene 160 zu einer zweiten Position 152' mit Sichtfeld 154' und entsprechender Bildebene 160'. Wie in diesem Beispiel dargestellt, bleibt ein Objekt O bei oder in der Nähe der Rotationsachse 156 nach der Rotation im Blick, während andere Merkmale der dreidimensionalen Umgebung (nicht dargestellt) aufgrund der Rotation im Vordergrund und/oder Hintergrund sichtbar sein können. Objekt O könnte selbstverständlich jedes Merkmal in der dreidimensionalen Umgebung sein, z. B. (unter anderem) ein Gelände, ein Gebäude usw.
-
2A ist ein Diagramm 200, das eine Bewegung eines Mobilgeräts veranschaulicht, das zum Navigieren einer virtuellen Kamera in einer virtuellen, dreidimensionalen Umgebung verwendet werden kann. Wie Diagramm 100 enthält Diagramm 200 Benutzer 102 und Mobilgerät 104. Diagramm 200 stellt jedoch eine erste Rotationsachse 206 dar, die dem Benutzer näher ist als dem Mobilgerät 104, anders als Rotationsachse 106 (die in 1A dem Gerät 104 näher als dem Benutzer war). Als Folge wählt Mobilgerät 104 eineandere Navigationsaktion.
-
2B ist ein Diagramm 250, das ein Beispiel einer Navigation einer virtuellen Kamera innerhalb der dreidimensionalen Umgebung als Reaktion auf die Reaktion, die veranschaulicht ist in 2A basiert. 2B zeigt die Navigation von der Seite, während 2C eine Ansicht entlang der Rotationsachse (256) zeigt. Wie Diagramm 150 beinhaltet Diagramm 250 die virtuelle Kamera 152, das Sichtfeld 154, die dreidimensionale Umgebung 158 und die Bildebene 160. Diagramm 250 beinhaltet jedoch Rotationsachse 256 statt Rotationsachse 156. Während Benutzer 102 die Rotation in Diagramm 200 ausführt, wird die virtuelle Kamera 152 in der dreidimensionalen Umgebung 158 durch Schwenken der virtuellen Kamera 152 um die Rotationsachse 256 navigiert. Hier ist Rotationsachse 256 in der Nähe der virtuellen Kamera 152.
-
Wie in 2C dargestellt, dreht sich die virtuelle Kamera 152 um die Achse 256 von einer ersten Position 152 mit Sichtfeld 154 und entsprechender Bildebene 160 zu einer zweiten Position 152'' mit Sichtfeld 154'' und entsprechender Bildebene 160''. Wie in diesem Beispiel dargestellt, ist ein Objekt O, das im Sichtfeld 154 war, nach der Rotation um Achse 256 nicht mehr sichtbar. Stattdessen können andere Objekte (nicht dargestellt) im Teil der dreidimensionalen Umgebung, der Sichtfeld 154'' entspricht, sichtbar sein. Somit kann durch Vergleichen der Beispiele von 1C und 2C gesehen werden, dass die verschiedenen Navigationsaktionen es einem Benutzer ermöglichen können, die Kamera am Ort der dreidimensionalen Umgebung (2C) zu drehen oder um eine Achse zu drehen, um einen Teil der dreidimensionalen Umgebung zu „umfahren” (1C) (z. B. um verschiedene Seiten von Objekt O zu sehen).
-
Ausführungsformen können zwischen den Bewegungen unterscheiden, die in den Diagrammen 100 und 200 veranschaulicht sind, indem sie einen Bildsensor verwenden, um die Position des Benutzers in Bezug auf das Mobilgerät zu verfolgen. Durch Unterscheidung zwischen den beiden Bewegungen können Ausführungsformen eine erste Aktion – zum Beispiel die in Diagramm 150 veranschaulichte Navigation – als Reaktion auf die in Diagramm 100 veranschaulichte Bewegung auslösen, und eine zweite Aktion – zum Beispiel die in Diagramm 250 veranschaulichte Navigation – als Reaktion auf die in Diagramm 200 veranschaulichte Bewegung. Die in Diagramm 100 dargestellte Bewegung ist zumindest teilweise durch das Analysieren von Bildmaterial für den Benutzer und Bestimmung, dass sich die Position des Benutzers in Bezug auf die Frontkamera geändert hat, identifizierbar. Andererseits bewegt sich der Benutzer in der in Diagramm 200 dargestellten Bewegung (im Großen und Ganzen) mit dem Gerät 104 und demgemäß bleibt die Position des Benutzers in Bezug auf die Frontkamera im Allgemeinen unverändert.
-
Diagramme 100, 150, 200 und 250 werden als Beispiele bereitgestellt und sollen die hierin beschriebenen Ausführungsformen nicht begrenzen.
-
Beispielhafte System ausführungsformen
-
3 veranschaulicht eine exemplarische Systemumgebung, die zum Navigieren einer virtuellen Kamera in einer virtuellen, dreidimensionalen Umgebung mithilfe eines Mobilgeräts verwendet werden kann. System 300 beinhaltet ein Mobilgerät 302. In einigen Ausführungsformen kann System 300 auch Netzwerk 330 und GIS-Server 340 beinhalten. Mobilgerät 302 beinhaltet Bewegungserkennungsmodul 304, Benutzerverfolgungsmodul 306, Rotationsachsensuchmodul 308, Navigationsmodul 310 und Benutzerschnittstellenmodul 312, Frontkamera 314 und Bewegungssensoren 320. Die Bewegungssensoren 320 können zum Beispiel Kompass 322, Beschleunigungsmesser 324 oder Gyroskop 326 beinhalten.
-
Netzwerk 330 kann jedes beliebige Netzwerk oder jede Kombination von Netzwerken beinhalten, die Datenkommunikation übertragen können. Diese Netzwerke können z. B. ein Local Area Network (LAN) oder ein Wide Area Network (WAN), zum Beispiel das Internet, beinhalten. LAN- und WAN-Netzwerke können jede Kombination kabelgebundener (z. B. Ethernet) oder drahtloser (z. B. Wi-Fi, 3G oder 4G) Netzwerkkomponenten beinhalten.
-
GIS-Server 340 kann jedes geografische Informationssystem beinhalten, das Daten mit geografischem Bezug zur Verfügung stellen kann, die eine virtuelle, dreidimensionale Umgebung beinhalten. Die Daten mit geografischem Bezug können zum Beispiel Karten, Satellitenbilder, Informationsebenen, Geländedaten, dreidimensionale Globen und andere Arten geographischer Daten beinhalten. GIS-Server 340 kann aus einem einzigen Serversystem oder einem verteilten Netzwerk von Servern bestehen.
-
A. Mobilgerät
-
Mobilgerät 302 kann auf jedem Computergerät implementiert sein. Mobilgerät 302 kann zum Beispiel ein mobiles Computergerät (z. B. ein Mobiltelefon, ein Smartphone, ein Personal Digital Assistant (PDA), ein Navigationsgerät, ein Tablet oder ein anderes mobiles Computergerät) beinhalten. Computer können außerdem u. a. eine Zentraleinheit, eine anwendungsspezifische integrierte Schaltung, einen Computer, eine Workstation, ein verteiltes Computersystem, ein Computercluster, ein eingebettetes System, ein eigenständiges elektronisches Gerät, ein vernetztes Gerät, einen Rackserver, eine Settop-Box oder jede andere Art von Computersystem mit mindestens einem Prozessor und Speicher beinhalten. Ein von einer geclusterten Computerumgebung oder Serverfarm ausgeführter Rechenvorgang kann auf mehreren Prozessoren ausgeführt werden, die sich am selben oder an verschiedenen Orten befinden. Hardware kann u. a. einen Prozessor, einen Speicher und eine Benutzeroberflächenanzeige beinhalten. In einigen Ausführungsformen kann Mobilgerät 302 auch Computergeräte beinhalten, die mit einem GIS kommunizieren und eine virtuelle, dreidimensionale Umgebung wiedergeben können, die vom GIS erhalten wird.
-
Mobilgerät 302 ist so konfiguriert, dass es eine Bildebene einer virtuellen, dreidimensionalen Umgebung anzeigt. Die Bildebene ist einem fotografischen Bild eines physischen Raums, das von einer Kamera aufgenommen wurde, ähnlich. Die Bildebene wird aus der Perspektive einer virtuellen Kamera aufgenommen, während die virtuelle Kamera in der dreidimensionalen Umgebung navigiert wird. Die Bildebene wird auf dem Mobilgerät zum Beispiel mithilfe des Benutzeroberflächenmoduls 312 angezeigt.
-
Die vom Mobilgerät 302 angezeigte virtuelle, dreidimensionale Umgebung kann zum Beispiel vom GIS-Server 340 oder einem anderen Computerprozess oder System bereitgestellt werden, der/das so konfiguriert wird, dass er/es eine dreidimensionale Umgebung bereitstellt, wie zum Beispiel dreidimensionale Computerspiele oder virtuelle Simulatoren.
-
1. Bewegungserkennungsmodul
-
Mobilgerät 302 beinhaltet Bewegungserkennungsmodul 304. Bewegungserkennungsmodul 304 ist so konfiguriert, dass es einen Hinweis empfängt, dass Mobilgerät 302 um eine Rotationsachse geschwenkt wurde. Die Rotationsachse ist eine Achse, die parallel zu einer Ebene ist, die den Anzeigebildschirm des Mobilgeräts 302 umfasst. Wenn ein Benutzer zum Beispiel Mobilgerät 302 so hält, dass das Display im Wesentlich parallel zur Richtung der Schwerkraft ist, ist die Rotationsachse im Wesentlichen parallel zur Richtung der Schwerkraft.
-
Die Bewegungssensoren 320 können verwendet werden, um zu bestimmen, ob Mobilgerät 302 um die Rotationsachse geschwenkt wurde. Die Bewegungssensoren 320 können zum Beispiel Kompass 322, Beschleunigungsmesser 324 oder Gyroskop 326 beinhalten. In einigen Ausführungsformen wird Kompass 322 verwendet, um zu bestimmen, ob Mobilgerät 302 um die Rotationsachse geschwenkt wird. Kompass 322 ist so konfiguriert, dass er die Ausrichtung von Mobilgerät 302 auf Basis einer Reihe von Gradwerten in Bezug auf den magnetischen Norden bestimmt. Die Reihe von Gradwerten in Bezug auf den magnetischen Norden ändert sich, wenn Mobilgerät 302 um die Rotationsachse geschwenkt wird. Die Änderung bei der Reihe von Gradwerten kann verwendet werden, um zu bestimmen, ob Mobilgerät 302 um die Rotationsachse geschwenkt wird, und die Rate, mit der Mobilgerät 302 geschwenkt wird.
-
Ineinigen Ausführungsformen wird Beschleunigungsmesser 324 verwendet, um zu bestimmen, ob Mobilgerät 302 um die Rotationsachse geschwenkt wird. Beschleunigungsmesser 324 ist so konfiguriert, dass es die richtige Beschleunigung (z. B. Gravitationskraft) von Mobilgerät 302 bestimmt. Während Mobilgerät 302 von einem Benutzer in bestimmten Winkeln in Bezug auf die Schwerkraft gehalten wird, bestimmt Beschleunigungsmesser 324 die Richtung (und möglicherweise die Größe) der Gravitationskraft, die auf Mobilgerät 302 wirkt. Die Änderung bei der Gravitationskraft, die auf Mobilgerät 302 wirkt, kann verwendet werden, um zu bestimmen, ob Mobilgerät 302 um die Rotationsachse geschwenkt wird.
-
Ineinigen Ausführungsformen wird Gyroskop 326 verwendet, um zu bestimmen, ob Mobilgerät 302 um die Rotationsachse geschwenkt wird. Gyroskop 326 ist so konfiguriert, dass es die Bewegung von Mobilgerät 302 in drei Richtungen bestimmt. Während Mobilgerät 302 von einem Benutzer geschwenkt wird, gibt Gyroskop 326 die Rate und Richtung der Bewegung von Mobilgerät 302 an. Die Bewegungsrichtung kann verwendet werden, um zu bestimmen, ob Mobilgerät 302 um die Rotationsachse geschwenkt wird.
-
In einigen Ausführungsformen wird eine Kombination aus Kompass 322 und Beschleunigungsmesser 324 verwendet, um zu bestimmen, ob Mobilgerät 302 um die Rotationsachse geschwenkt wird. Zum Beispiel gibt, während der Benutzer Mobilgerät 302 um die Rotationsachse schwenkt, Kompass 322 die Änderung bei der Ausrichtung des Mobilgeräts 302 auf den magnetischen Norden an und Beschleunigungsmesser 324 gibt die Änderung bei der Gravitationskraft an, die auf Mobilgerät 302 wirkt. Eine Kombination dieser Daten kann dann verwendet werden, um zu bestimmen, ob Mobilgerät 302 um die Rotationsachse geschwenkt wird, und die Rate, mit der Mobilgerät 302 geschwenkt wird.
-
2. Benutzerverfolgungsmodul
-
Mobilgerät 302 beinhaltet außerdem Benutzerverfolgungsmodul 306. Benutzerverfolgungsmodul 306 ist so konfiguriert, dass es eine Änderung bei der Position eines Benutzers in Bezug auf Mobilgerät 302 erkennt, während Mobilgerät 302 um die Rotationsachse geschwenkt wird. Die Änderung bei der Position des Benutzers wird aus einer Vielzahl von Bildern des Benutzers bestimmt, die von der Frontkamera 314 aufgenommen werden. Während zum Beispiel Mobilgerät 302 um die Rotationsachse geschwenkt wird, streamt Frontkamera 314 eine Vielzahl von Bildern. Benutzerverfolgungsmodul 306 analysiert dann die Bilder, um eine Änderung bei der Position des Benutzers zwischen den Bildern zu bestimmen.
-
Ineinigen Ausführungsformen ist Benutzerverfolgungsmodul 306 außerdem so konfiguriert, dass es eine Änderung bei der Position des Benutzers auf Basis der Position des Gesichts des Benutzers in der Vielzahl der Bilder bestimmt, die von der Frontkamera 314 gestreamt werden. Wenn Mobilgerät 302 zum Beispiel um die Rotationsachse geschwenkt wird, erkennt Benutzerverfolgungsmodul 306 eine Position des Gesichts des Benutzers in jedem Bild und bestimmt den Umfang der Änderung bei der Position des Gesichts des Benutzers in Bezug auf Mobilgerät 302. In einigen Ausführungsformen bestimmt Benutzerverfolgungsmodul 306 die Änderung auf Basis der Position der Augen des Benutzers in Bezug auf Mobilgerät 302. Der Vorgang der Verfolgung des Benutzers kann eine gewisse Filterung oder Festlegung von Schwellenwerten beinhalten, um der Tatsache Rechnung zu tragen, dass der Benutzer in Bezug auf das Mobilgerät relativ unbeweglich bleibt. Ein bestimmter Umfang von Bewegung im Bild kann trotzdem erfolgen.
-
3. Rotationsachsensuchmodul
-
Mobilgerät 302 beinhaltet außerdem Rotationsachsensuchmodul 308. Rotationsachsensuchmodul 308 ist so konfiguriert, dass es einen Ort der Rotationsachse auf Basis des Umfangs der Änderung bei der Position des Benutzers in Bezug auf Mobilgerät 302 bestimmt. Wenn sich zum Beispiel die Position des Benutzers in Bezug auf Mobilgerät 302 erheblich ändert, während Mobilgerät 302 um die Rotationsachse geschwenkt wird, bestimmt Rotationsachsensuchmodul 308 den Ort der Rotationsachse als in der Nähe von Mobilgerät 302. Wenn sich die Position des Benutzers in Bezug auf Mobilgerät 302 nicht erheblich ändert, während Mobilgerät 302 um die Rotationsachse geschwenkt wird, bestimmt Rotationsachsensuchmodul 308 den Ort der Rotationsachse als in der Nähe des Benutzers.
-
Ineinigen Ausführungsformen kann der Ort der Rotationsachse als irgendwo zwischen dem Benutzer und Mobilgerät 302 bestimmt werden. Wenn die Rotationsachse dem Benutzer näher ist als Mobilgerät 302, bestimmt Rotationsachsensuchmodul 308 die Rotationsachse als in der Nähe des Benutzers befindlich. Wenn die Rotationsachse Mobilgerät 302 näher ist als dem Benutzer, bestimmt Rotationsachsensuchmodul 308 die Rotationsachse als in der Nähe von Mobilgerät 302 befindlich.
-
4. Navigationsmodul
-
Mobilgerät 302 beinhaltet außerdem Navigationsmodul 310. Navigationsmodul 310 ist so konfiguriert, dass es eine erste Aktion ausführt, wenn der Ort der ersten Rotationsachse in der Nähe von Mobilgerät 302 ist. Navigationsmodul 310 ist außerdem so konfiguriert, dass es eine zweite Aktion ausführt, wenn der Ort der Rotationsachse in der Nähe des Benutzers ist. Die erste und zweite Aktion navigieren beide die virtuelle Kamera innerhalb der dreidimensionalen Umgebung, aber auf verschiedene Weise. In einigen Ausführungsformen schwenkt zum Beispiel die erste Aktion die virtuelle Kamera um eine Rotationsachse, die sich in einem Abstand von der virtuellen Kamera entfernt befindet. Der Ort der Rotationsachse kann zum Beispiel zwischen der Bildebene und einem Objekt sein, das in der dreidimensionalen Umgebung dargestellt ist. Die zweite Aktion schwenkt dagegen die virtuelle Kamera um eine Rotationsachse, die in der Nähe der virtuellen Kamera in der dreidimensionalen Umgebung ist.
-
Ineinigen Ausführungsformen entspricht die Geschwindigkeit, mit der die virtuelle Kamera um ihre Rotationsachse in der dreidimensionalen Umgebung geschwenkt wird, einer Geschwindigkeit, mit der Mobilgerät 302 um seine Rotationsachse geschwenkt wird. Während zum Beispiel Mobilgerät 302 um seine Rotationsachse geschwenkt wird, kann Bewegungserkennungsmodul 304 die Rate verfolgen, mit der Mobilgerät 302 geschwenkt wird. Die Schwenkrate von Mobilgerät 302 kann in eine Schwenkgeschwindigkeit übersetzt werden, die verwendet werden kann, um die Geschwindigkeit zu bestimmen, mit der die virtuelle Kamera geschwenkt wird. Die Geschwindigkeit, mit der die virtuelle Kamera geschwenkt wird, kann zum Beispiel auf Basis eines Zoomgrads skaliert werden, der zum Anzeigen der dreidimensionalen Umgebung verwendet wird, oder einer Benutzervoreinstellung.
-
Verschiedene Aspekte der hierin beschriebenen Ausführungsformen können durch Software, Hardware oder eine Kombination davon implementiert werden. Die Ausführungsformen oder Teile davon können außerdem als computerlesbarer Code implementiert werden. Die Ausführungsform in System 300 ist in keinster Weise als einschränkend gedacht.
-
Beispielhafte Verfahrensausführungsformen
-
4 ist ein Ablaufdiagramm eines exemplarischen Verfahrens 400, das zum Navigieren einer virtuellen Kamera in einer virtuellen dreidimensionalen Umgebung mithilfe eines Mobilgeräts verwendet werden kann. Das Mobilgerät ist so konfiguriert, dass es eine Bildebene der Umgebung aus der Perspektive der virtuellen Kamera anzeigt. Auch wenn Verfahren 400 in Bezug auf eine Ausführungsform beschrieben ist, ist Verfahren 400 nicht als einschränkend gedacht und kann in anderen Anwendungen verwendet werden. Außerdem kann Verfahren 400 zum Beispiel von System 300 ausgeführt werden.
-
Verfahren 400 empfängt von mindestens einem Sensor am Mobilgerät einen Hinweis, dass das Mobilgerät um eine erste Rotationsachse geschwenkt wurde (Phase 410). Die erste Rotationsachse ist parallel zu einer Ebene, die den Anzeigebildschirm des Mobilgeräts umfasst. Die erste Rotationsachse kann außerdem entlang der Y-Achse des Displays positioniert sein. Ob das Mobilgerät um die erste Rotationsachse geschwenkt wurde, kann mithilfe von Bewegungssensoren bestimmt werden, zum Beispiel einem digitalen Kompass, einem digitalen Beschleunigungsmesser oder einem digitalen Gyroskop. Phase 410 kann zum Beispiel von Bewegungserkennungsmodul 304 ausgeführt werden, das in System 300 verkörpert ist.
-
Verfahren 400 verfolgt außerdem eine Änderung bei der Position eines Benutzers in Bezug auf das Mobilgerät, wenn das Mobilgerät um die erste Rotationsachse geschwenkt wird (Phase 420). Die Änderung bei der Position des Benutzers wird aus einer Vielzahl von Bildern des Benutzers bestimmt, die von der Frontkamera des Mobilgeräts aufgenommen werden. Die Vielzahl von Bildern kann direkt von der Frontkamera gestreamt werden und muss nicht auf dem Mobilgerät gespeichert werden. Die Änderung bei der Position des Benutzers kann zum Beispiel durch Verfolgung der Position der Gesichtsmerkmale des Benutzers (z. B. Augen) in Bezug auf das Mobilgerät bestimmt werden. Phase 420 kann zum Beispiel von Benutzerverfolgungsmodul 306 ausgeführt werden, das in System 300 verkörpert ist.
-
Verfahren 400 bestimmt dann einen Ort der ersten Rotationsachse auf Basis der Änderung bei der Position des Benutzers in Bezug auf das Mobilgerät (Phase 430). Wenn die Position des Benutzers sich zwischen der Vielzahl der Bilder erheblich ändert, wird der Ort der Positionsachse als in der Nähe des Geräts befindlich bestimmt. Wenn die Position des Benutzers sich zwischen der Vielzahl der Bilder nicht erheblich ändert, wird der Ort der Positionsachse als in der Nähe des Benutzers befindlich bestimmt. Phase 430 kann zum Beispiel von Rotationsachsensuchmodul 308 ausgeführt werden, das in System 300 verkörpert ist.
-
Wenn der Ort der ersten Rotationsachse in der Nähe des Mobilgeräts ist, führt Verfahren 400 eine erste Aktion zur Navigation innerhalb der dreidimensionalen Umgebung aus (Phase 440). Die erste Aktion kann zum Beispiel das Schwenken der virtuellen Kamera in der dreidimensionalen Umgebung um eine zweite Rotationsachse beinhalten, die sich zwischen der virtuellen Kamera und einem Objekt befindet, das in der dreidimensionalen Umgebung dargestellt ist. Phase 440 kann zum Beispiel von Navigationsmodul 310 ausgeführt werden, das in System 300 verkörpert ist.
-
Wenn der Ort der ersten Rotationsachse in der Nähe des Benutzers ist, führt Verfahren 400 eine zweite Aktion zur Navigation innerhalb der dreidimensionalen Umgebung aus (Phase 450). Die zweite Aktion kann zum Beispiel ebenfalls das Schwenken der virtuellen Kamera in der dreidimensionalen Umgebung um eine zweite Rotationsachse beinhalten, aber statt dass die zweite Rotationsachse sich zwischen der virtuellen Kamera und einem Objekt befindet, das in der dreidimensionalen Umgebung dargestellt ist, befindet sich die zweite Rotationsachse in der Nähe der virtuellen Kamera. Phase 450 kann zum Beispiel von Navigationsmodul 310 ausgeführt werden, das in System 300 verkörpert ist.
-
Beispielhaftes Computersystem
-
5 veranschaulicht einen exemplarischen Computer 500, in dem die hierin beschriebenen Ausführungsformen oder Teile davon als computerlesbarer Code implementiert sein können. Zum Beispiel können Bewegungserkennungsmodul 304, Benutzerverfolgungsmodul 306, Rotationsachsensuchmodul 308 und Navigationsmodul 310 in einem oder mehreren Computersystemen 500 mithilfe von Hardware, Software, Firmware, computerlesbaren Speichermedien, auf denen Anweisungen gespeichert sind, oder einer Kombination davon implementiert sein.
-
Fachleute wissen, dass Ausführungsformen des offenbarten Gegenstands mit verschiedenen Computersystemkonfigurationen umgesetzt werden können, z. B. Mehrkern-Multiprozessor-Systeme, Minicomputer, Mainframe-Computer, verknüpfte oder geclusterte Computer mit verteilten Funktionen sowie allgegenwärtige oder Mini-Computer, die in praktisch jedem Gerät eingebettet sein können.
-
Zum Beispiel kann ein Computergerät mit mindestens einem Prozessorgerät und einem Speicher zur Implementierung der oben beschriebenen Ausführungsformen verwendet werden. Ein Prozessorgerät kann ein einzelner Prozessor, eine Vielzahl von Prozessoren oder eine Kombination davon sein. Prozessorgeräte können einen oder mehrere Prozessor-„Kerne” haben.
-
Verschiedene Ausführungsformen sind in Bezug auf dieses Beispiel-Computersystem 500 beschrieben. Nach Lesen dieser Beschreibung wird für eine in der relevanten Technik fachkundigen Person offensichtlich, wie die Erfindung mithilfe anderer Computersysteme und/oder Computerarchitekturen implementiert wird. Auch wenn Vorgänge als aufeinanderfolgender Prozess beschrieben werden können, können einige der Vorgänge in der Tat parallel, gleichzeitig und/oder in einer verteilten Umgebung und mit Programmcode ausgeführt werden, der lokal oder remote für den Zugriff durch eine Ein- oder Mehrprozessor-Maschine gespeichert ist. Außerdem kann in einigen Ausführungsformen die Reihenfolge der Vorgänge neu geordnet sein, ohne vom Geist des offenbarten Gegenstands abzuweichen.
-
Wie für Fachleute offensichtlich, kann Prozessorgerät 504 ein einzelner Prozessor in einem Mehrkern-/Multiprozessor-System sein, zum Beispiel einem System, das allein betrieben wird, oder in einem Cluster von Computergeräten, die in einem Cluster oder einer Serverfarm betrieben werden. Prozessorgerät 504 ist mit einer Kommunikationsinfrastruktur 506 verbunden, zum Beispiel einem Bus, einer Nachrichtenwarteschlange, einem Netzwerk oder einem Mehrkern-Nachrichtenübermittlungsschema. Computersystem 500 kann außerdem Displayschnittstelle 502 und Displaygerät 530 beinhalten.
-
Computersystem 500 beinhaltet außerdem einen Hauptspeicher 508, zum Beispiel Random Access Memory (RAM), und kann außerdem einen sekundären Speicher 510 beinhalten. Der sekundäre Speicher 510 kann außerdem zum Beispiel ein Festplattenlaufwerk 512 und ein Wechselspeicherlaufwerk 514 enthalten. Wechselspeicherlaufwerk 514 kann ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein Laufwerk für optische Datenträger, ein Flash-Speicher-Laufwerk oder ähnliches sein. Das Wechselspeicherlaufwerk 514 liest von einem und/oder schreibt auf ein Wechselspeichergerät 518 auf bekannte Weise. Wechselspeicherlaufwerk 518 kann eine Diskette, ein Magnetband, einen optischen Datenträger, ein Flash-Speicher-Laufwerk usw. beinhalten, von der/dem Wechselspeicherlaufwerk 514 liest und auf die/das/den es schreibt. Wie für Fachleute offensichtlich, beinhaltet Wechselspeichergerät 518 ein computerlesbares Speichermedium, auf dem Computersoftware und/oder Daten gespeichert sind.
-
In alternativen Implementierungen kann der sekundäre Speicher 510 andere ähnliche Mittel enthalten, die das Laden von Computerprogrammen oder anderen Anweisungen in Computersystem 500 ermöglichen. Solche Mittel können zum Beispiel ein Wechselspeichergerät 522 und einen Schnittstelle 520 umfassen. Beispiele solcher Mittel können ein Programmmodul und eine Modulschnittstelle (wie z. B. in Videospielgeräten zu finden), ein Wechselspeicher-Chip (z. B. ein EPROM oder PROM) und dazugehörige Anschlüsse und andere Wechselspeichergeräte 522 und Schnittstellen 520 beinhalten, die die Übertragung von Software und Daten vom Wechselspeichergerät 522 zum Computersystem 500 ermöglichen.
-
Computersystem 500 kann außerdem eine Kommunikationsschnittstelle beinhalten 524. Kommunikationsschnittelle 524 ermöglicht die Übertragung von Software und Daten zwischen Computersystem 500 und externen Geräten. Kommunikationsschnittelle 524 kann ein Modem, eine Netzwerkschnittstelle (zum Beispiel eine Ethernet-Karte), einen Kommunikationsanschluss, einen PCMCIA-Steckplatz mit Karte oder ähnliches beinhalten. Software und Daten, die über die Kommunikationsschnittstelle 524 übertragen werden, können in Form von Signalen sein, die elektronische, elektromagnetische, optische oder andere Signale sein können, die von Kommunikationsschnittstelle 524 empfangen werden können. Diese Signale können der Kommunikationsschnittstelle 524 über einen Kommunikationspfad 526 bereitgestellt werden. Kommunikationspfad 526 überträgt Signale und kann mithilfe von Draht oder Kabel, Glasfaser, eine Telefonleitung, eine Mobiltelefonverbindung, eine RF-Verbindung oder andere Kommunikationskanäle implementiert werden.
-
In diesem Dokument werden die Begriffe „Computerspeichermedium” und „computerlesbares Speichermedium” im Allgemeinen verwendet, um Medien, wie Wechselspeichergerät 518, Wechselspeichergerät 522 und eine Festplatte, die in Festplattenlaufwerk 512 installiert ist, zu bezeichnen. Computerspeichermedium und computerlesbares Speichermedium können sich außerdem auf Speicher, z. B. Hauptspeicher 508 und sekundärer Speicher 510, beziehen, die Speicherhalbleiter (z. B. DRAMs usw.) sein können.
-
Computerprogramme (auch Computersteuerlogik genannt) werden in Hauptspeicher 508 und/oder im sekundären Speicher 510 gespeichert. Computerprogramme können außerdem über Kommunikationsschnittstelle 524 empfangen werden. Wenn sie ausgeführt werden, ermöglichen es solche Computerprogramme Computersystem 500, die hierin beschriebenen Ausführungsformen zu implementieren. Insbesondere ermöglichen es die Computerprogramme, wenn sie ausgeführt werden, Prozessorgerät 504, die Prozesse der Ausführungsformen zu implementieren, zum Beispiel die Phasen in den Verfahren, die durch Ablaufdiagramm 400 von 4, wie oben erörtert, veranschaulicht sind. Demgemäß stellen solche Computerprogramme Steuerungen von Computersystem 500 dar. Wenn eine Ausführungsform mithilfe von Software implementiert ist, kann die Software in einem Computerspeichermedium gespeichert und in ein Computersystem 500 mithilfe von Wechselspeicherlaufwerk 514, Schnittstelle 520 und Festplattenlaufwerk 512 oder Kommunikationsschnittstelle 524 geladen werden.
-
Ausführungsformender Erfindung können auch auf Computerprogrammprodukte gerichtet sein, z. B. Software, die auf einem computerlesbaren Speichermedium gespeichert ist. Solche Software führt, wenn sie in einem oder mehreren Datenverarbeitungsgeräten ausgeführt wird, dazu, dass das/die Datenverarbeitungsgerät(e), wie hierin beschrieben, funktionieren. Beispiele computerlesbarer Speichermedium beinhalten u. a. primäre Speichergeräte (z. B. alle Arten von Random Access Memory) und sekundäre Speichergeräte (z. B. Festplatten, Disketten, CD ROMS, ZIP-Datenträger, Bänder, Magnetspeichergeräte und optische Speichergeräte, MEMS, Nanotechnologie-Speichergeräte usw.).
-
Schlussfolgerung
-
Die Zusammenfassungs- und Kurzfassungsabschnitte können eine oder mehrere, aber nicht alle exemplarischen Ausführungsformen, wie von den Erfindern betrachtet, erweitern und sollen daher die vorliegende Erfindung und die angehängten Ansprüche in keinster Weise einschränken.
-
Die vorstehende Beschreibung der spezifischen Ausführungsformen zeigt somit die allgemeine Natur der Erfindung vollständig, die andere durch Anwendung von Wissen nach fachgerechter Beurteilung problemlos ändern und/oder für verschiedene Anwendungen solcher spezifischer Ausführungsformen anpassen können, ohne unangemessenes Experimentieren und ohne vom allgemeinen Konzept der vorliegenden Erfindung abzuweichen. Daher sind solche Anpassungen und Modifikationen auf Basis der hierin präsentierten Lehre und Anleitung als innerhalb der Bedeutungen des Bereichs der Äquivalente der offenbarten Ausführungsformen zu betrachten. Es versteht sich, dass die hierin enthaltene Phraseologie oder Terminologie dem Zweck der Beschreibung und nicht der Einschränkung dient, sodass die Terminologie oder Phraseologie der vorliegenden Spezifikation von Fachleuten angesichts der Lehren und Anleitung zu interpretieren ist.
-
Die Breite und der Umfang der vorliegenden Erfindung sollen durch keinerlei der vorstehend beschriebenen exemplarischen Ausführungsformen eingeschränkt sein.