-
TECHNISCHES GEBIET
-
Diese Beschreibung bezieht sich allgemein auf Verfahren und Vorrichtungen zum Skalieren, Drehen und anderweitigem Manipulieren von Objekten in einer Umgebung einer virtuellen Realität (VR-Umgebung). Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind, 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
-
Objekt- und Formmanipulationstechniken können dafür konfiguriert werden, an einem bestimmten Objekt zu arbeiten oder alternativ an einer Umgebung zu arbeiten, die das bestimmte Objekt umgibt. Solche Techniken können das Verformen und Verziehen von Objekten oder Umgebungen, um eine Änderung dessen zu bewirken, wie das Objekt oder die Umgebung erscheint, enthalten. Das Manipulieren von Objekten in einer Umgebung einer virtuellen Realität kann eine Anzahl technischer Probleme stellen, die inhärent für die Nutzerwahrnehmung der Betrachtung solcher Objekte und des Interagierens mit ihnen sind.
-
ZUSAMMENFASSUNG
-
Ein System eines oder mehrerer Computer kann dafür konfiguriert sein, mittels Software, Firmware, Hardware oder einer Kombination von ihnen, die in dem System installiert sind, bestimmte Operationen oder Aktionen auszuführen, die im Betrieb veranlassen, dass das System die Aktionen ausführt. Ein oder mehrere Computerprogramme können dafür konfiguriert sein, mittels dessen, dass sie Anweisungen enthalten, die, wenn sie durch ein Datenverarbeitungsgerät ausgeführt werden, veranlassen, dass das Gerät die Aktionen ausführt, bestimmte Operationen oder Aktionen ausführen. Ein allgemeiner Aspekt enthält ein computerimplementiertes Verfahren, das das Erzeugen einer virtuellen Umgebung, die innerhalb einer in einer Head-Mounted-Display-Vorrichtung bereitgestellten Nutzerschnittstelle wenigstens ein dreidimensionales Objekt enthält, und das Detektieren eines ersten Interaktionsmusters enthält. Das erste Interaktionsmuster kann eine Angabe zum Ändern eines ersten virtuellen Merkmals, das dem dreidimensionalen virtuellen Objekt zugeordnet ist, enthalten. Außerdem kann das Verfahren das Detektieren eines zweiten Interaktionsmusters enthalten, wobei das zweite Interaktionsmuster eine Orientierung und eine Bewegung, die einer Änderung entsprechen, die an einem dem dreidimensionalen virtuellen Objekt zugeordneten zweiten virtuellen Merkmal ausgeführt werden soll, enthält. In Ansprechen auf das Detektieren des zweiten Interaktionsmusters kann das Verfahren das Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster und das Bereitstellen der geänderten Version des dreidimensionalen virtuellen Objekts in der Nutzerschnittstelle in der Head-Mounted-Display-Vorrichtung enthalten. Andere Ausführungsformen dieses Aspekts enthalten entsprechende Computersysteme, Geräte und Computerprogramme, die in einer oder mehreren Computerspeichervorrichtungen, die jeweils dafür konfiguriert sind, die Aktionen der Verfahren auszuführen, aufgezeichnet sind.
-
Implementierungen können ein oder mehrere der folgenden Merkmale enthalten. In dem Verfahren wird die geänderte Version des dreidimensionalen virtuellen Objekts in der virtuellen Umgebung erzeugt und gerendert, während die Bewegung auftritt. In dem Verfahren definiert das erste Interaktionsmuster einen Ort, an dem mit dem Ändern des ersten virtuellen Merkmals begonnen werden soll, definiert das zweite Interaktionsmuster eine Richtung und Orientierung, die von dem zweiten virtuellen Merkmal entfernt sind, und enthält die geänderte Version des dreidimensionalen virtuellen Objekts eine skalierte Version des dreidimensionalen virtuellen Objekts. Die skalierte Version kann von dem ersten virtuellen Merkmal zu dem zweiten virtuellen Merkmal skaliert werden. In dem Verfahren wird die geänderte Version des dreidimensionalen virtuellen Objekts von dem ersten virtuellen Merkmal zu einer neuen Position, Orientierung und Skale des dreidimensionalen virtuellen Objekts eingestellt und von dem zweiten virtuellen Merkmal zu einer neuen Position, Orientierung und Skale des dreidimensionalen virtuellen Objekts eingestellt. Die geänderte Version kann innerhalb eines Nutzerblickfelds in der virtuellen Umgebung liegen.
-
Implementierungen können außerdem das Ermöglichen einer Betriebsart der gleichförmigen Skalierung in Ansprechen auf das Detektieren, dass das erste Interaktionsmuster in derselben Achse der drei Dimensionen wie das zweite Interaktionsmuster ausgeführt wird, enthalten. Die Betriebsart der gleichförmigen Skalierung kann dafür konfiguriert sein, das dreidimensionale virtuelle Objekt in Übereinstimmung mit dem ersten und dem zweiten Interaktionsmuster in drei Dimensionen gleichmäßig zu skalieren.
-
Außerdem kann das Verfahren das Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster durch Dehnen und Verdrehen des dreidimensionalen virtuellen Objekts enthalten. Das Dehnen kann das Definieren eines ersten Ankerpunkts und eines zweiten Ankerpunkts an dem dreidimensionalen virtuellen Objekt und das Dehnen in einer zwischen dem ersten Ankerpunkt und dem zweiten Ankerpunkt gebildeten Ebene enthalten. Das Verdrehen des dreidimensionalen virtuellen Objekts kann das Drehen des dreidimensionalen virtuellen Objekts im 3D-Raum bei dem ersten virtuellen Merkmal in einer ersten Eingangsebene enthalten und das Drehen des dreidimensionalen virtuellen Objekts enthält das Drehen des dreidimensionalen virtuellen Objekts im 3D-Raum bei dem zweiten virtuellen Merkmal aus einer zweiten Eingangsebene in eine dritte Eingangsebene. Die erste Eingangsebene entspricht einer x-y-Koordinatenebene, die zweite Eingangsebene entspricht einer y-z-Koordinatenebene und die dritte Eingangsebene entspricht einer x-z-Koordinatenebene, wobei jede Ebene eine eines dreidimensionalen Koordinatenraums sein kann.
-
Das Detektieren des ersten Interaktionsmusters kann das Detektieren einer ersten Eingabe, die einer ersten nachgeführten Vorrichtung zugeordnet ist, enthalten und das Detektieren des zweiten Interaktionsmusters enthält das Detektieren einer zweiten Eingabe, die einer zweiten nachgeführten Vorrichtung zugeordnet ist. Außerdem enthält das Verfahren das Erzeugen eines ersten Schnittpunkts bei dem ersten virtuellen Merkmal wenigstens teilweise auf der Grundlage des Detektierens einer ersten nachgeführten Handbewegung, die durch eine linke Hand des Nutzers, der auf die virtuelle Umgebung zugreift, ausgeführt wird, und das Erzeugen eines zweiten Schnittpunkts bei dem zweiten virtuellen Merkmal wenigstens teilweise auf der Grundlage des Detektierens einer zweiten nachgeführten Handbewegung, die durch eine rechte Hand des Nutzers, der auf die virtuelle Umgebung zugreift, ausgeführt wird. Außerdem kann das Verfahren das Ändern des dreidimensionalen virtuellen Objekts in Übereinstimmung mit dem ersten und mit dem zweiten Interaktionsmuster enthalten. Das Ändern kann wenigstens teilweise auf der Bestimmung, dass wenigstens eine in der ersten oder in der zweiten nachgeführten Handbewegung ausgeführte Geste eine Änderung der Orientierung ist, die dem dreidimensionalen virtuellen Objekt zugeordnet ist, und auf dem Ausführen der wenigstens einen Geste, während das dreidimensionale Objekt in Übereinstimmung mit einer anderen Geste geändert wird, beruhen.
-
Außerdem kann das Verfahren das Erzeugen eines Ankerpunkts, der dafür konfiguriert ist, einen Abschnitt des dreidimensionalen virtuellen Objekts bei dem ersten Schnittpunkt im dreidimensionalen Raum einzufrieren, während das dreidimensionale Objekt bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster geändert wird, enthalten. Das Erzeugen eines Ankerpunkts enthält das Definieren wenigstens eines Orts an dem dreidimensionalen virtuellen Objekt als einen wählbaren Skalierungsort, wobei der wählbare Skalierungsort zum Empfangen einer nutzerinitiierten Eingabe betreibbar ist, wobei die nutzerinitiierte Eingabe wenigstens eine Geste enthält, die Anweisungen zum Skalieren des dreidimensionalen virtuellen Objekts angibt. Außerdem kann das Verfahren das Ermöglichen einer Betriebsart der gleichförmigen Skalierung in Ansprechen auf das Detektieren, dass die erste elektronische Vorrichtung der zweiten elektronischen Vorrichtung gegenüberliegend orientiert ist, enthalten. Die Betriebsart der gleichförmigen Skalierung kann dafür konfiguriert sein, das dreidimensionale virtuelle Objekt in Übereinstimmung mit dem ersten Interaktionsmuster und mit dem zweiten Interaktionsmuster in drei Dimensionen gleichmäßig zu skalieren.
-
Außerdem kann das Verfahren enthalten, dass das Detektieren, dass die erste elektronische Vorrichtung der zweiten elektronischen Vorrichtung gegenüberliegend orientiert ist, enthält: Detektieren einer Anfangsposition und Anfangsorientierung der zweiten elektronischen Vorrichtung relativ zu der ersten elektronischen Vorrichtung. Außerdem kann das Verfahren das Nachführen wenigstens einer durch die zweite elektronische Vorrichtung relativ zu der ersten elektronischen Vorrichtung ausgeführten Geste und das Detektieren einer Ausrichtung der zweiten elektronischen Vorrichtung auf die erste elektronische Vorrichtung durch Vergleichen der Anfangsposition und der Anfangsorientierung der zweiten elektronischen Vorrichtung relativ zu der ersten elektronischen Vorrichtung mit einer detektierten aktualisierten Position und Orientierung der ersten oder zweiten elektronischen Vorrichtung enthalten. Die detektierte aktualisierte Position kann auf der wenigstens einen Geste beruhen. Das Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal enthält das Bereitstellen einer Sichtangabe in der virtuellen Umgebung und die an dem dreidimensionalen virtuellen Objekt befestigt ist, wobei die Sichtangabe mehrere Ankerpunkte enthält, die Einschnapprahmen definieren, die dafür konfiguriert sind, wenigstens ein Koordinatensystem auszuwählen, in dem das virtuelle Objekt in drei Dimensionen verschoben und gedreht werden soll. Das Verfahren kann das Definieren eines Drehwegs zum Drehen des dreidimensionalen virtuellen Objekts um einen dem ersten virtuellen Merkmal zugeordneten Ort in Ansprechen auf das Detektieren des zweiten Interaktionsmusters enthalten.
-
Ein anderer allgemeiner Aspekt enthält ein computerimplementiertes Verfahren, das das Detektieren eines ersten Interaktionsmusters, das durch eine erste elektronische Vorrichtung ausgeführt wird, in einer dreidimensionalen virtuellen Umgebung enthält, wobei das erste Interaktionsmuster eine Angabe zum Andern eines ersten virtuellen Merkmals, das einem dreidimensionalen virtuellen Objekt zugeordnet ist, das in der virtuellen Umgebung gerendert wird, enthält. Außerdem enthält das Verfahren das Detektieren eines zweiten Interaktionsmusters, das durch eine zweite elektronische Vorrichtung ausgeführt wird, in der dreidimensionalen virtuellen Umgebung, wobei das zweite Interaktionsmuster eine Orientierung und eine Bewegung, die einer Änderung entsprechen, die an einem dem dreidimensionalen virtuellen Objekt zugeordneten zweiten virtuellen Merkmal ausgeführt werden soll, enthält. In Ansprechen auf das Detektieren des zweiten Interaktionsmusters wird bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster eine geänderte Version des dreidimensionalen virtuellen Objekts erzeugt. Außerdem enthält das Verfahren das Rendern der geänderten Version des dreidimensionalen virtuellen Objekts in Übereinstimmung mit dem ersten Interaktionsmuster und mit dem zweiten Interaktionsmuster in einer Nutzerschnittstelle einer Head-Mounted-Display-Vorrichtung. Andere Ausführungsformen dieses Aspekts enthalten entsprechende Computersysteme, Geräte und Computerprogramme, die auf einer oder mehreren Computerspeichervorrichtungen aufgezeichnet sind, die jeweils dafür konfiguriert sind, die Aktionen der Verfahren auszuführen.
-
Implementierungen können ein oder mehrere der folgenden Merkmale enthalten. Außerdem kann das Verfahren das Ermöglichen einer Betriebsart der gleichförmigen Skalierung in Ansprechen auf das Detektieren, dass die erste elektronische Vorrichtung der zweiten elektronischen Vorrichtung gegenüberliegend orientiert ist, enthalten. Die Betriebsart der gleichförmigen Skalierung kann dafür konfiguriert sein, das dreidimensionale virtuelle Objekt in Übereinstimmung mit dem ersten Interaktionsmuster und mit dem zweiten Interaktionsmuster in drei Dimensionen gleichmäßig zu skalieren. Das Detektieren, dass die erste elektronische Vorrichtung der zweiten elektronischen Vorrichtung gegenüberliegend orientiert ist, kann das Detektieren einer Anfangsposition und Anfangsorientierung der zweiten elektronischen Vorrichtung relativ zu der ersten elektronischen Vorrichtung enthalten.
-
Außerdem kann das Verfahren das Nachführen wenigstens einer durch die zweite elektronische Vorrichtung ausgeführten Geste relativ zu der ersten elektronischen Vorrichtung und das Detektieren einer Ausrichtung der zweiten elektronischen Vorrichtung auf die erste elektronische Vorrichtung durch Vergleichen der Anfangsposition und Anfangsorientierung der zweiten elektronischen Vorrichtung relativ zu der ersten elektronischen Vorrichtung mit einer detektierten aktualisierten Position und Orientierung der ersten oder der zweiten elektronischen Vorrichtung enthalten. Die detektierte aktualisierte Position kann auf der wenigstens einen Geste beruhen. Das Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal kann das Bereitstellen einer Sichtangabe in der virtuellen Umgebung und die an dem dreidimensionalen virtuellen Objekt befestigt ist enthalten. Die Sichtangabe kann mehrere Ankerpunkte enthalten, die Einschnapprahmen definieren, die dafür konfiguriert sind, wenigstens ein Koordinatensystem auszuwählen, in dem das virtuelle Objekt in drei Dimensionen verschoben und gedreht werden soll. Das Verfahren kann das Definieren eines Drehwegs zum Drehen des dreidimensionalen virtuellen Objekts um einen dem ersten virtuellen Merkmal zugeordneten Ort in Ansprechen auf das Detektieren des zweiten Interaktionsmusters enthalten. Die dem virtuellen Objekt zugeordneten Charakteristiken enthalten eine Planarität und/oder eine Dimension und/oder eine Fläche und/oder eine Orientierung und/oder eine Ecke und/oder eine Begrenzung und/oder eine Kontur und/oder eine Oberflächentextur für das virtuelle Objekt.
-
Das Verfahren kann das Erzeugen einer Umgebung einer virtuellen Realität, die das dreidimensionale virtuelle Modell des virtuellen Objekts in der Umgebung einer virtuellen Realität enthält, und das automatische Skalieren des virtuellen Objekts, während das virtuelle Objekt in der erzeugten Umgebung einer virtuellen Realität in drei Dimensionen gedreht wird, auf der Grundlage einer zweihändigen Interaktion, die durch einen Nutzer ausgeführt wird, und mehrerer detektierter Charakteristiken, die dem virtuellen Objekt zugeordnet sind, enthalten. Implementierungen der beschriebenen Techniken können Hardware, ein Verfahren oder einen Prozess oder Computersoftware in einem Medium, auf das ein Computer zugreifen kann, enthalten.
-
In einem anderen allgemeinen Aspekt wird ein System beschrieben, das wenigstens eine Computervorrichtung enthält, die zum Erzeugen einer virtuellen Umgebung konfiguriert ist. Die wenigstens eine Computervorrichtung kann enthalten: einen Datenspeicher, der ausführbare Anweisungen speichert, und einen Prozessor, der dafür konfiguriert ist, die Anweisungen auszuführen, um zu veranlassen, dass die wenigstens eine Computervorrichtung eine virtuelle Umgebung erzeugt, die innerhalb einer in einer Head-Mounted-Display-Vorrichtung bereitgestellten Nutzerschnittstelle wenigstens ein dreidimensionales virtuelles Objekt enthält, ein erstes Interaktionsmuster detektiert, wobei das erste Interaktionsmuster eine Angabe zum Ändern eines ersten virtuellen Merkmals, das dem dreidimensionalen virtuellen Objekt zugeordnet ist, enthält, ein zweites Interaktionsmuster detektiert, wobei das zweite Interaktionsmuster eine Orientierung und eine Bewegung, die einer Änderung entsprechen, die an einem dem dreidimensionalen virtuellen Objekt zugeordneten zweiten virtuellen Merkmal ausgeführt werden soll, enthält, und in Ansprechen auf das Detektieren des zweiten Interaktionsmusters bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster eine geänderte Version des dreidimensionalen virtuellen Objekts erzeugt. Die geänderte Version kann in der Nutzerschnittstelle in der Head-Mounted-Display-Vorrichtung bereitgestellt werden. Andere Ausführungsformen dieses Aspekts enthalten entsprechende Computersysteme, Geräte und Computerprogramme, die in einer oder mehreren Computerspeichervorrichtungen aufgezeichnet sind, die jeweils dafür konfiguriert sind, die Aktionen der Verfahren auszuführen.
-
Implementierungen können ein oder mehrere der folgenden Merkmale enthalten. In dem System wird die geänderte Version des dreidimensionalen virtuellen Objekts in der virtuellen Umgebung erzeugt und gerendert, während die Bewegung stattfindet. In dem System definiert das erste Interaktionsmuster einen Ort, an dem das Ändern des ersten virtuellen Merkmals beginnen soll. Das zweite Interaktionsmuster kann eine Richtung und eine Orientierung, die von dem zweiten virtuellen Merkmal entfernt sind, definieren und die geänderte Version des dreidimensionalen virtuellen Objekts enthält eine skalierte Version des dreidimensionalen virtuellen Objekts, wobei die skalierte Version von dem ersten virtuellen Merkmal zu dem zweiten virtuellen Merkmal skaliert wird. In dem System wird die geänderte Version des dreidimensionalen virtuellen Objekts von dem ersten virtuellen Merkmal zu einer neuen Position, Orientierung und Skale des dreidimensionalen virtuellen Objekts eingestellt und von dem zweiten virtuellen Merkmal zu einer neuen Position, Orientierung und Skale des dreidimensionalen virtuellen Objekts eingestellt, wobei die geänderte Version innerhalb eines Nutzerblickfelds in der virtuellen Umgebung liegt.
-
Außerdem kann das System in Ansprechen auf das Detektieren, dass das erste Interaktionsmuster in einer Ebene mit einer gemeinsamen Achse mit dem zweiten Interaktionsmuster ausgeführt wird, eine Betriebsart der gleichförmigen Skalierung ermöglichen, wobei die Betriebsart der gleichförmigen Skalierung dafür konfiguriert ist, das dreidimensionale virtuelle Objekt in Übereinstimmung mit dem ersten und mit dem zweiten Interaktionsmuster in drei Dimensionen gleichmäßig zu skalieren.
-
In einem anderen allgemeinen Aspekt wird ein Verfahren beschrieben, das das Erhalten mehrerer Charakteristiken eines virtuellen Objekts mit einem oder mit mehreren optischen Sensoren einer Computervorrichtung, das Erzeugen eines dreidimensionalen virtuellen Modells des virtuellen Objekts auf der Grundlage der mehreren Charakteristiken durch einen Prozessor der Computervorrichtung und das Verarbeiten der mehreren Charakteristiken und des dreidimensionalen virtuellen Modells, um in dem dreidimensionalen virtuellen Modell mehrere Ankerpunkte zu definieren, durch den Prozessor enthält. Die mehreren Ankerpunkte können jeweils mehreren wählbaren Gebieten an dem virtuellen Objekt zugeordnet werden. Das Verfahren kann das Korrelieren der Eingabe für jedes Gebiet in den mehreren Gebieten in Ansprechen auf den Empfang einer Eingabe, die wenigstens zwei der mehreren Gebiete auswählt, das Ändern einer Größe und Orientierung des virtuellen Objekts auf der Grundlage der Korrelation und der mehreren dem virtuellen Objekt zugeordneten Charakteristiken, das Rendern und Anzeigen eines geänderten virtuellen Objekts in dem dreidimensionalen virtuellen Modell enthalten. In einigen Implementierungen enthalten die mehreren dem virtuellen Objekt zugeordneten Charakteristiken eine Planarität und/oder eine Dimension und/oder eine Fläche und/oder eine Orientierung und/oder eine Ecke und/oder eine Begrenzung und/oder eine Kontur und/oder eine Oberflächentextur für das virtuelle Objekt.
-
In einigen Implementierungen kann das Verfahren enthalten: Erzeugen einer Umgebung einer virtuellen Realität, die das dreidimensionale virtuelle Modell des virtuellen Objekts in der Umgebung einer virtuellen Realität enthält, und automatisches Skalieren des virtuellen Objekts, während das virtuelle Objekt in der erzeugten Umgebung einer virtuellen Realität in drei Dimensionen gedreht wird, auf der Grundlage einer zweihändigen Interaktion, die durch einen Nutzer ausgeführt wird, und mehrerer detektierter Charakteristiken, die dem virtuellen Objekt zugeordnet sind.
-
In den beigefügten Zeichnungen und in der folgenden Beschreibung sind die Einzelheiten einer oder mehrerer Implementierungen dargelegt. Weitere Merkmale gehen aus der Beschreibung und aus den Zeichnungen sowie aus den Ansprüchen hervor.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockschaltplan eines beispielhaften Systems zum Manipulieren von 2D- und 3D-Inhalt in einem Raum einer virtuellen Realität (VR-Raum).
-
2 ist ein Blockschaltplan, der Controller zeigt, die mit einer HMD-Vorrichtung in einem VR-Raum kommunikationsfähig gekoppelt sind.
-
3A–3B stellen einen Nutzer dar, der auf einen VR-Raum zugreift, um Manipulationen virtueller Objekte auszuführen.
-
4 ist ein Blockschaltplan, der ein Beispiel des Einschnappens virtueller Objekte an Orten zeigt.
-
5A–C stellen Beispiele eines Nutzers dar, der auf einen VR-Raum zugreift, um Manipulationen virtueller Objekte auszuführen.
-
6 ist ein Ablaufplan, der schematisch eine Ausführungsform eines Prozesses, um zu ermöglichen, dass ein Nutzer Inhalt in einem VR-Raum manipuliert, zeigt.
-
7 ist ein Ablaufplan, schematisch eine Ausführungsform eines anderen Prozesses zum Ändern von 3D-Bildinhalt in einem VR-Raum zeigt.
-
8 ist ein Ablaufplan, der schematisch eine Ausführungsform eines Prozesses zum Erzeugen eines Modells eines virtuellen Objekts zeigt.
-
9 zeigt ein Beispiel einer Computervorrichtung und einer Mobilcomputervorrichtung, die zum Implementieren der hier beschriebenen Techniken verwendet werden können.
-
Gleiche Bezugszeichen in den verschiedenen Zeichnungen bezeichnen gleiche Elemente.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ein in eine virtuelle 3D-Umgebung vertiefter Nutzer, der ein VR-Headset oder eine Head-Mounted-Display-Vorrichtung (HMD-Vorrichtung) trägt, kann die virtuelle 3D-Umgebung/einen 3D-VR-Raum untersuchen und durch verschiedene Arten von Eingaben mit Inhalt und Objekten in dem VR-Raum interagieren. Diese Eingaben können z. B. physikalische Interaktionen enthalten, die unter Verwendung der hier beschriebenen Verfahren und Systeme in den VR-Raum übersetzt werden. Die physikalischen Interaktionen können Manipulationen einer oder mehrerer Controllervorrichtungen, die von der HMD-Vorrichtung getrennt sind, und/oder über Hand-/Armgesten, Kopfbewegungen, Augenblickrichtung und dergleichen enthalten. Allgemein können die Hand-/Armgesten und Controllervorrichtungsbewegungen nachgeführt oder auf andere Weise erfasst werden, um Positionen, Orte, Orientierungen und Bewegungen der Hände und/oder Arme eines Nutzers, der auf eine HMD-Vorrichtung in dem VR-Raum zugreift, zu bestimmen. Diese Gesten und Bewegungen können definiert werden, um zu ermöglichen, dass Nutzer virtuelle Objekte auf intuitive Weise manipulieren. Die Hände und Arme des Nutzers können nachgeführt und visuell in dem VR-Raum dargestellt werden, um dem Nutzer hinsichtlich der Bewegungen und/oder Manipulationen virtueller Objekte eine visuelle Rückkopplung anzugeben. In einigen Implementierungen kann der Nutzer nachgeführt werden und kann in dem VR-Raum eine Vollkörperdarstellung des Nutzers visuell dargestellt werden.
-
Den Interaktionen und Manipulationen mit virtuellen Objekten können Hand-, Arm- oder controllergestützte Gesten des Nutzers zugeordnet sein. Die Zuordnung zwischen den virtuellen Objekten und Hand-, Arm- oder controllergestützten Gesten des Nutzers kann verwendet werden, um zu bestimmen, dass ein Nutzer bestimmte virtuelle Objekte auf spezifische Weise ändern möchte. Zum Beispiel können die in dieser Offenbarung beschriebenen Systeme und Verfahren die Datenkorrelation und Austausche zwischen zwei Händen eines Nutzers oder zwei durch den Nutzer durch Nachführung betriebenen Controllern in drei Dimensionen ermöglichen, um zu ermöglichen, dass der Nutzer virtuelle Objekte in dem VR-Raum ergreift und diese Objekte ändert. Die Datenkorrelation und Datenaustausche zwischen zwei Händen oder zwei Controllern können überwacht, nachgeführt und analysiert werden, um bestimmte Bewegungen, bestimmte Positionen, bestimmte Drehungen, eine bestimmte Geschwindigkeit, eine bestimmte Orientierung oder eine bestimmte andere Bewegung innerhalb sechs oder mehr Freiheitsgraden in Bezug auf Hand- oder Controllerbewegungen und in dem VR-Raum gezeigte virtuelle Objekte zu bestimmen. Die Datenkorrelationen und Datenaustausche können ermöglichen, dass Nutzer auf ähnliche Weise, wie sie solche Aktionen in der physikalischen Welt ausführen, nach virtuellen Objekten greifen, sie ergreifen und berühren oder auf andere Weise mit ihnen interagieren.
-
Zum Beispiel können Nutzer beim Halten eines virtuellen Objekts an einem oder an zwei Orten das virtuelle Objekt durch Drehen, Dehnen, Skalieren, Verdrehen oder Manipulieren des Objekts auf andere Weise unter Verwendung von Handgesten/Handinteraktionen, die für die Handhabung und Arbeit mit einem physikalischen Objekt üblich sind, bewegen. In einigen Implementierungen kann das virtuelle Objekt in dem VR-Raum an Abschnitten des Nutzers (z. B. Händen, Controllern) befestigt zu sein scheinen, um für den Nutzer unter Verwendung graphischer Angaben, die folgern, dass irgendeine Bewegung das virtuelle Objekt in derselben Weise bewegen kann, wie sich die Hände/Controller bewegen, während zusätzliche graphische Effekte ausgeführt werden, um das Erscheinen oder Verhalten des virtuellen Objekts zu ändern, das sehende Verständnis ermöglichen.
-
Durch Nachführen von Controller- oder Handbewegungen in dem VR-Raum können Informationen erhoben werden. Die Informationen können verwendet werden, um zu bestimmen, welche Geste durch Nutzer ausgeführt wird. Die Gestenbestimmung kann verwendet werden, um auf irgendeine Anzahl von Arten visuelle Manipulationen an den Objekten auszuführen.
-
Zum Beispiel können die in dieser Offenbarung beschriebenen Systeme und Verfahren Bewegungen einer ersten Hand eines Nutzers mit Bewegungen einer zweiten Hand des Nutzers korrelieren. Als nicht einschränkendes Beispiel können die hier beschriebenen Systeme folgern, dass der Nutzer ein virtuelles Objekt, das der Nutzer mit beiden Händen greifen kann, dehnen und/oder an es heranzoomen möchte, falls der Nutzer seine beiden Hände nach außen bewegt, während er die Fäuste ballt.
-
Nun in 1 ist ein Blockschaltplan eines beispielhaften Systems 100 zum Bereitstellen und Manipulieren von 2D- und 3D-Inhalt in einem VR-Raum gezeigt. Allgemein kann das System 100 unter Verwendung der hier beschriebenen Verfahren, Komponenten und Techniken einen 3D-VR-Raum und 3D-VR-Inhalt bereitstellen. Insbesondere kann das System 100 für einen Nutzer eine Anzahl von Optionen bereitstellen, um virtuelle Objekte innerhalb des VR-Raums zu manipulieren.
-
Das beispielhafte System 100 enthält mehrere Computervorrichtungen, die Daten über ein Netz 101 austauschen können. Die Vorrichtungen können Clients oder Server repräsentieren und können über das Netz 101 oder über ein anderes Netz kommunizieren. In einigen Implementierungen können die Client-Vorrichtungen eine oder mehrere Spielevorrichtungen oder Spielecontroller, eine Mobilvorrichtung, ein elektronisches Tablet, einen Laptop, eine Kamera, eine VR-Brille oder eine andere solche elektronische Vorrichtung, die zum Zugreifen auf VR-Inhalt verwendet werden kann, enthalten.
-
Wie in 1 gezeigt ist, enthält das System 100 eine Mobilvorrichtung 102, eine Laptopcomputervorrichtung 104, ein VR-Headset und/oder eine Head-Mounted-Display-Vorrichtung (HMD-Vorrichtung) 106 und ein VR-System 108. Die Vorrichtungen 102, 104 und 106 können Client-Vorrichtungen repräsentieren. Die Mobilvorrichtung 102, die Computervorrichtung 104 und die HMD-Vorrichtung 106 können einen oder mehrere Prozessoren und eine oder mehrere Datenspeichervorrichtungen enthalten. Die Vorrichtungen 102–106 können ein Client-Betriebssystem und eine oder mehrere Client-Anwendungen, die auf VR-Inhalt auf einer in jeder jeweiligen Vorrichtung enthaltenen Anzeigevorrichtung oder in einer verbundenen Vorrichtung zugreifen, ihn steuern und/oder anzeigen können, ausführen.
-
Das VR-System 108 kann eine Servervorrichtung repräsentieren. Allgemein kann ein VR-System 108 irgendeine Anzahl von Ablagen enthalten, die Inhalt und/oder Softwaremodule virtueller Realität, die Szenen der virtuellen Realität erzeugen, ändern oder ausführen können, speichern können. In dem gezeigten Beispiel enthält das VR-System 108 eine VR-Anwendung 110, die auf Inhalt und/oder Steuerungen für das System 108 zugreifen und sie darstellen kann. In einigen Implementierungen kann die VR-Anwendung 110 in einer oder mehreren der Vorrichtungen 102–106 lokal ausgeführt werden. Die VR-Anwendung 110 kann dafür konfiguriert sein, in den Vorrichtungen 102, 104, 106 und 108 einzeln oder insgesamt ausgeführt zu werden und z. B. unter Verwendung der Controller 112 oder 114 gesteuert oder betrieben zu werden.
-
Bestimmte in dieser Offenbarung beschriebene Implementierungen können ermöglichen, dass ein Nutzer einen oder mehrere Controller verwendet, um mit dem VR-Raum zu interagieren. Zum Beispiel kann der Nutzer einen ersten Controller 112 und einen zweiten Controller 114 halten, um virtuelle Objekte in 3D in dem VR-Raum auszuwählen und zu manipulieren. In einigen Implementierungen können die Controller 112 und 114 dieselbe Bauart und dasselbe Modell sein. In anderen Implementierungen können die Controller 112 und 114 unterschiedliche Bauarten und Modelle sein. Unabhängig von der Art des Controllers können beide Controller 112 und 114 in dem System gesehen 100 und/oder nachgeführt werden, um die Interaktion in dem VR-Raum zu ermöglichen.
-
Die beispielhaften Controller 112 und 114 können jeweils ein Gehäuse, in dem interne Komponenten der Controllervorrichtung aufgenommen sind, und eine Nutzerschnittstelle (nicht gezeigt) auf einer Außenseite des Gehäuses, auf die der Nutzer zugreifen kann, enthalten. Die Nutzerschnittstelle kann mehrere verschiedene Arten von Manipulationsvorrichtungen (in 1 nicht ausführlich gezeigt), einschließlich z. B. einer oder mehrerer berührungsempfindlicher Oberflächen, die dafür konfiguriert sind, Nutzerberührungseingaben zu empfangen, Schaltflächen, Knöpfe, Joysticks, Umschalter, Schiebeschalter und andere solche Manipulationsvorrichtungen enthalten.
-
An dem Controller 112 und/oder an dem Controller 114 können ein oder mehrere Sensoren enthalten sein. Die Sensoren können z. B. dadurch, dass Nutzer auf die Controller 112 und/oder 114 und auf die HMD-Vorrichtung 106 zugreifen, ausgelöst werden, um eine Eingabe in den VR-Raum bereitzustellen. Die Sensoren können Berührungsbildschirmsensoren, Beschleunigungsmesser, Gyroskope, Drucksensoren, biometrische Sensoren, Temperatursensoren, Feuchtigkeitssensoren und Umgebungslichtsensoren enthalten, sind darauf aber nicht beschränkt. Die Controller 112 und 114 können die Sensoren verwenden, um eine absolute Position und/oder eine detektierte Drehung der Controller 112 und 114 in dem VR-Raum zu bestimmen. Die Positionen und Drehungen können daraufhin als Eingabe in den VR-Raum verwendet werden. In einem nicht einschränkenden Beispiel können die Controller 112 und 114 als ein Mobiltelephon, als ein Pinsel, als ein Bleistift oder Stift, als ein Zeichenhilfsmittel, als ein Controller, als eine Fernbedienung, als ein Laserpointer oder als ein anderes Objekt usw. in dem VR-Raum enthalten sein. Die Positionierung der Controller 112 und 114 durch den Nutzer, wenn sie in dem VR-Raum enthalten (oder dargestellt) sind, kann ermöglichen, dass der Nutzer bestimmte virtuelle Objekte positioniert sowie ein Mobiltelephon, einen Pinsel, einen Bleistift oder Stift, ein Zeichenhilfsmittel, einen Controller, eine Fernbedingung, einen Laserpointer oder ein anderes Objekt in dem VR-Raum positioniert. In einigen Implementierungen kann eine solche Positionierung als Auslöser zum Manipulieren von Objekten unter Verwendung von Ankerpunkten verwendet werden.
-
Die HMD-Vorrichtung 106 kann ein Virtual-Reality-Headset, eine Virtual-Reality-Brille, ein Virtual-Reality-Okular oder eine andere tragbare Virtual-Reality-Vorrichtung, die Inhalt der virtuellen Realität anzeigen kann, repräsentieren. Im Betrieb kann die HMD-Vorrichtung 106 eine VR-Anwendung wie etwa die Wiedergabe empfangener und/oder verarbeiteter Bilder für einen Nutzer über eine Anzeige (nicht gezeigt) in der HMD-Vorrichtung 106 ausführen. In einigen Implementierungen kann die VR-Anwendung 110 durch eine oder mehrere der wie in 1 gezeigten Vorrichtungen 102, 104, 106 oder 108 gehostet werden.
-
In einigen Implementierungen kann die beispielhafte HMD-Vorrichtung 106 ein mit einem Rahmen gekoppeltes Gehäuse mit einer Audioausgabevorrichtung, die z. B. in einem Kopfhörer montierte Lautsprecher enthält, enthalten. In der beispielhaften HMD-Vorrichtung 106 kann auf einer nach innen weisenden Seite des vorderen Abschnitts des Gehäuses eine Anzeige (nicht gezeigt) montiert sein. Zwischen den Augen des Nutzers und der Anzeige können in dem Gehäuse Linsen montiert sein. In einigen Implementierungen kann die HMD-Vorrichtung 106 ein Erfassungssystem 160 enthalten, das verschiedene Sensoren wie etwa z. B. einen oder mehrere Audiosensoren, einen oder mehrere Bild-/Lichtsensoren, Positionssensoren (z. B. eine Trägheitsmesseinheit einschließlich eines Gyroskops und eines Beschleunigungsmessers) und dergleichen enthält. Außerdem kann die HMD-Vorrichtung 106 ein Steuersystem enthalten, das Prozessoren und verschiedene Steuersystemvorrichtungen enthält, um den Betrieb der HMD-Vorrichtung 106 zu ermöglichen.
-
In einigen Implementierungen kann die HMD-Vorrichtung 106 eine oder mehrere Kameras (nicht gezeigt) enthalten, um Standbilder und Bewegtbilder aufzunehmen. Die durch diese Kameras aufgenommenen Bilder können verwendet werden, um eine physikalische Position des Nutzers und/oder der Controller 112 oder 114 in der realen Welt oder in der physikalischen Umgebung relativ zu dem VR-Raum nachführen zu helfen, und/oder können dem Nutzer auf der Anzeige in einer Durchgangsbetriebsart angezeigt werden, was ermöglicht, dass der Nutzer die virtuelle Umgebung vorübergehend verlässt und in die physikalische Umgebung zurückkehrt, ohne die HMD-Vorrichtung 106 zu entfernen oder die Konfiguration der HMD-Vorrichtung 106 auf andere Weise zu ändern.
-
In einigen Implementierungen kann die Mobilvorrichtung 102 innerhalb der HMD-Vorrichtung 106 angeordnet sein und/oder sich befinden. Die Mobilvorrichtung 102 kann eine Anzeigevorrichtung enthalten, die als der Bildschirm für die HMD-Vorrichtung 106 verwendet werden kann. Die Mobilvorrichtung 102 kann Hardware und/oder Software zum Ausführen der VR-Anwendung 110 enthalten. In einigen Implementierungen kann die HMD-Vorrichtung 106 eine volle Nachführung des Orts und von Nutzerbewegungen innerhalb von sechs Freiheitsgraden bereitstellen. Die Nachführung kann auf Nutzerhandbewegungen, Nutzerkopfbewegungen, Nutzeraugenbewegungen oder auf der Nachführung von Controllern, die sich auf der Grundlage einer Nutzereingabe bewegen, beruhen.
-
Es sind zusätzliche Vorrichtungen möglich, wobei solche Vorrichtungen dafür konfiguriert sein können, durcheinander ersetzt zu werden. In einigen Implementierungen können die Vorrichtungen 102, 104, 106 und 108 Laptop- oder Desktopcomputer, Smartphones, Personal Digital Assistants, tragbare Medienplayer, Tablet-Computer, Spielevorrichtungen oder andere geeignete Computervorrichtungen, die unter Verwendung des Netzes 101 mit anderen Computervorrichtungen oder Computersystemen kommunizieren können, sein.
-
In dem beispielhaften System 100 kann die HMD-Vorrichtung 106 mit der Vorrichtung 102 oder mit der Vorrichtung 104 verbunden sein, um z. B. auf VR-Inhalt in dem VR-System 108 zuzugreifen. Die Vorrichtung 102 oder 104 kann (verdrahtet oder drahtlos) mit der HMD-Vorrichtung 106 verbunden sein, die VR-Inhalt für die Anzeige bereitstellen kann.
-
In einigen Implementierungen können ein oder mehrere Inhaltsserver (z. B. das VR-System 108) und ein oder mehrere computerlesbare Speichervorrichtungen unter Verwendung des Netzes 101 mit den Computervorrichtungen 102, 104, 106 kommunizieren, um für die Vorrichtungen 102–106 VR-Inhalt bereitzustellen. In einigen Implementierungen kann das Netz 101 ein öffentliches Kommunikationsnetz (z. B. das Internet, ein Zellendatennetz, Wählmodems über ein Telephonnetz) oder ein privates Kommunikationsnetz (z. B. ein privates LAN, Mietleitungen) sein. In einigen Implementierungen können die Computervorrichtungen 102–108 unter Verwendung eines oder mehrerer verdrahteter und/oder drahtloser Hochgeschwindigkeitskommunikationsprotokolle (z. B. Varianten von 802.11, Wi-Fi, Bluetooth, Übertragungssteuerprotokoll/Internetprotokoll (TPC/IP), Ethernet, IEEE 802.3 usw.) mit dem Netz 101 kommunizieren.
-
In einigen Implementierungen kann die Mobilvorrichtung 102 die VR-Anwendung 110 ausführen und den Inhalt für die VR-Umgebung bereitstellen. In einigen Implementierungen kann die Laptopcomputervorrichtung die VR-Anwendung 110 ausführen und Inhalt von einem oder von mehreren Inhaltsservern (z. B. von dem VR-System 108) bereitstellen. Der eine oder die mehreren Inhaltsserver und die eine oder die mehreren computerlesbaren Speichervorrichtungen können unter Verwendung des Netzes 101 mit der Mobilvorrichtung 102, mit der Laptopcomputervorrichtung 104 und/oder mit den Controllern 112 oder 114 kommunizieren, um Inhalt für die Anzeige in der HMD-Vorrichtung 106 bereitzustellen.
-
Wie in 1 gezeigt ist, enthält die VR-Anwendung 110 ein Nachführungsmodul 116, ein Orientierungsmodul 118, einen Ankerpunktgenerator 120 und ein Ortseinschnappmodul 122. Das Nachführungsmodul 116 kann auf Lichtsensoren, auf Audiosensoren, auf Bildsensoren, auf Entfernungs-/Näherungssensoren, auf Positionssensoren und/oder auf andere Sensoren zugreifen, um eine physikalische Position des Nutzers und/oder des Controllers 112 oder 114 in der realen Welt oder in der physikalischen Umgebung relativ zu der virtuellen Umgebung nachzuführen. Das Orientierungsmodul 118 kann auf irgendeine Anzahl von Datenspeichern und/oder Sensoren, die hier beschrieben sind, zugreifen, um bestimmte Orientierungen von Controllern, Nutzern, virtuellen Objekten und Flächen, die bewegten Objekten innerhalb des VR-Raums zugeordnet sind, zu bestimmen.
-
Der Ankerpunktgenerator 120 kann dafür konfiguriert sein, Ankerpunkte zu identifizieren und/oder zu definieren, die einem oder mehreren Orten entsprechen, in denen ein bestimmtes virtuelles Objekt skaliert oder auf andere Weise manipuliert werden kann. Die Ankerpunkte können Orte und/oder Orientierungen betreffen, in denen virtuelle Objekte skaliert, ein- oder ausgezoomt, befestigt, bewegt, verdreht, geneigt, gefaltet, gedehnt, geschrumpft, angebracht oder auf andere Weise in Bezug auf einen weiteren anderen oder feste Ankerpunkte manipuliert werden können. Die Objektmanipulationen können in einer von dem Nutzer getragenen HMD-Vorrichtung so gezeigt werden, als ob der Nutzer das an diesen Ankerpunkten befestigte virtuelle Objekt an einem oder an mehreren Ankerpunkten halten und manipulieren sollte. In einigen Implementierungen können die Ankerpunkte ermöglichen, dass ein VR-Regisseur oder VR-Nutzer Orte definiert, die Manipulationen oder Bewegungen, die die Form, die Orientierung, die Position und/oder die Skale eines bestimmten virtuellen Objekts in dem VR-Raum ändern können, zugeordnet sind. Allgemein kann das Ermöglichen von Manipulationen virtueller Objekte mit zweihändigen Interaktionen das Bestimmen/Definieren einer Anzahl nutzerwählbarer Ankerpunkte (z. B. Orte innerhalb des VR-Raums), auf denen eine Bewegung und/oder Manipulation virtueller Objekte beruhen soll, enthalten.
-
In einigen Implementierungen können Ankerpunkte als Orte identifiziert und/oder definiert werden, in denen ein bestimmtes virtuelles Objekt skaliert wird. In einigen Implementierungen können zwei Ankerpunkte an einem virtuellen Objekt verwendet werden, um einen Mittelpunkt zwischen beiden Ankerpunkten zu definieren, in denen die Orientierung und die Skale des Objekts in Übereinstimmung mit einer dem Mittelpunkt zugeordneten Achse oder Ebene konfiguriert werden können. Dementsprechend kann der Ankerpunktgenerator 120 ermöglichen, dass ein Nutzer in einem VR-Raum die Position, die Orientierung und die Skale virtueller Objekte gleichzeitig ändert, während der Nutzer einen oder mehrere Ankerpunkte hält (oder auf andere Weise auswählt). Der Nutzer kann das Halten und Ändern der Position, der Orientierung und/oder der Skale des virtuellen Objekts als eine Illusion betrachten, die den einen oder die mehreren Ankerpunkte als an dem virtuellen Objekt befestigt anzeigt, während irgendwelche Handbewegungen ein Skalieren oder eine Bewegung des Objekts im Raum veranlassen können. Eine solche Skalierung oder solche Bewegungen können die Form, die Orientierung, die Position und/oder die Skale des virtuellen Objekts ändern, wobei diese Änderungen in einer Nutzerschnittstelle in einer Anzeige einer HMD-Vorrichtung bereitgestellt werden können.
-
In einigen Implementierungen können das Nachführungsmodul 116 und/oder das Orientierungsmodul 118 Mehrfachberührungs- oder Mehrhandinteraktionen mit virtuellen Objekten detektieren. Die Mehrfachberührungsinteraktionen oder Mehrhandinteraktionen können als physikalische Gesten interpretiert werden, die an den virtuellen Objekten ausgeführt werden sollen. Falls ein Nutzer z. B. mit einer Hand einen Abschnitt eines virtuellen Objekts, das ein Handtuch repräsentiert, und mit der anderen Hand einen Abschnitt desselben Handtuchs ergreift, kann der Nutzer eine Geste zum Verdrehen oder Auswringen des Handtuchs ausführen, wobei die hier beschriebenen Systeme und Verfahren die Verdrehungsbewegung zeigen können, die an dem virtuellen Objekt/Handtuch ausgeführt wird. Solche Bewegungen können mit 6 Bewegungsfreiheitsgraden ausgeführt und gezeigt werden.
-
Das Ortseinschnappmodul 122 kann dafür konfiguriert sein, eine Ortseinschnappfunktion bereitzustellen, die ermöglicht, dass ein Nutzer bestimmte Flächen eines virtuellen Objekts zum Befestigen (oder Einschnappen) an dem Ort intuitiv auswählt, während er in der Lage ist, andere Aspekte des virtuellen Objekts zu dehnen oder auf andere Weise zu manipulieren. Das Modul 122 kann z. B. den Winkel oder die Position beider Hände eines Nutzers detektieren und bestimmen, ob bestimmte Winkel oder Positionen (innerhalb von sechs Freiheitsgraden) eine Ortseinschnappbetriebsart auslösen. Das Ortseinschnappmodul 122 kann dafür konfiguriert sein, eine 3D-Ortseinschnappfunktion zu implementieren, die ermöglicht, dass der Nutzer bestimmte Flächen eines virtuellen Objekts, das in der richtigen Stellung befestigt (oder eingeschnappt werden soll) intuitiv auswählt, während er Manipulationen des virtuellen Objekts ausführen kann. Die Ortseinschnappfunktion kann dadurch ausgeführt werden, dass ein Winkel oder eine Position beider Hände (oder Controller), die einem Nutzer zugeordnet sind, der auf einen VR-Raum zugreift, detektiert wird und eine solche Detektion mit einer Anzahl vordefinierter Regeln, um welche Winkel oder Positionen der Hände (oder Controller) Ortseinschnappeffekte, die den virtuellen Objekten zugeordnet sind, ausgelöst werden sollen, verwendet wird. Zusätzliche Beispiele werden im Folgenden ausführlich beschrieben.
-
In einigen Implementierungen kann das VR-System 108 verschiedene ein- oder zweihändige Gesten, die durch den Nutzer (mit den Händen oder Controllern) ausgeführt werden, extrapolieren und auf das virtuelle Objekt eine vordefinierte oder gefolgerte Geste anwenden. Falls die Nutzerbewegung in einem nicht einschränkenden Beispiel durch das Nachführungsmodul 116 nachgeführt wird und die Nachführung angibt, dass der Nutzer ein virtuelles Objekt ergreift und beide Hände in einer Kreisbewegung nach rechts bewegt, kann das Orientierungsmodul 118 folgern, dass der Nutzer das virtuelle Objekt innerhalb des VR-Raums aus einer ersten Position in eine Position nach rechts kippen möchte. Die Bewegung kann auslösen, dass das VR-System 108 das virtuelle Objekt in Echtzeit bewegt, während der Nutzer das virtuelle Objekt greift und nach rechts dreht. Natürlich sind andere Winkel, Richtungen, Bewegungen und Manipulationen möglich und werden im Folgenden beschrieben.
-
In einem anderen nicht einschränkenden Beispiel kann ein Nutzer, der auf eine VR-Umgebung/einen VR-Raum zugreift, in einem virtuellen Zimmer mit einem gerahmten Kunstwerk an der Wand sein. Der Nutzer kann zu einem Stück des Kunstwerks (d. h., das in diesem Beispiel ein virtuelles Objekt sein kann) hinlaufen und seine rechte Hand in der rechten unteren Ecke des Kunstwerks anordnen und seine linke Hand in der linken unteren Ecke des Kunstwerks anordnen. Wenn die Hände angeordnet sind, können das Orientierungsmodul 118 und das Ortseinschnappmodul 122 für den Nutzer auf der Grundlage der Nachführung der Hände und auf der Grundlage der Nachführung zusätzlicher Bewegungen in Bezug auf das Kunstwerk (d. h. das virtuelle Objekt) zusätzliche Aktionsmöglichkeiten bereitstellen. Zum Beispiel können die Module 118 und 122 ermöglichen, dass der Nutzer das Kunstwerk in irgendeiner Richtung, in der die Hände bewegt werden können, umformt, verformt, schrumpft, vergrößert oder auf andere Weise manipuliert. Insbesondere kann das Kunstwerk in der der rechten Hand entsprechenden Richtung vergrößert oder gedehnt werden, falls der Nutzer die linke Hand feststehend hält und die rechte Hand nach rechts oder nach unten oder in beide Richtungen bewegt. In einigen Implementierungen kann dies das Manipulieren des Kunstwerks in drei Dimensionen mit sechs oder mehr Freiheitsgraden enthalten. Zum Beispiel kann der Nutzer in einer x-y-Ebene arbeiten, um das Kunstwerk in der Weise zu vergrößern, dass das Kunstwerk nach rechts und/oder unten zusätzlichen Wandraum bedecken würde. Bei Abschluss der Vergrößerung kann der Nutzer beide Hände in einer Bogenbewegung in einer z-Ebenen-Richtung nach innen ziehen, um das Kunstwerk in der z-Ebenen-Richtung nach innen zu krümmen. Alternativ kann das Ziehen beider Hände in Richtung des Nutzers als Entfernen des Kunstwerks von der Wand, z. B. in Vorbereitung auf das Bewegen des Kunstwerks an eine andere Wand, interpretiert werden.
-
2 ist ein Blockschaltplan, der Controller zeigt, die mit einer HMD-Vorrichtung in einem VR-Raum kommunikationsfähig gekoppelt sind. Im Betrieb kann das System 100 dafür konfiguriert sein, einen VR-Raum bereitzustellen, der irgendeine Anzahl virtueller Objekte aufnimmt, die mit den in 2 gezeigten Vorrichtungen manipuliert werden können. Die Controller 112 und 114 können über eine Schnittstelle mit der HMD-Vorrichtung 106 verbunden sein, um eine immersive virtuelle Umgebung zu erzeugen. Der Controller 112 und der Controller 114 können mit der HMD-Vorrichtung 106 gepaart werden, um z. B. eine Kommunikation zwischen den Vorrichtungen aufzubauen und um die Nutzerinteraktion mit dem immersiven VR-Raum zu ermöglichen. In einigen Implementierungen wird keiner der Controller 112 und 114 mit der HMD-Vorrichtung 106 gepaart, stattdessen aber jeder durch das Nachführungsmodul 116 in der VR-Anwendung 110 oder durch eine andere externe Nachführungsvorrichtung nachgeführt.
-
Wie in 2 gezeigt ist, enthält der Controller 112 ein Erfassungssystem 260 und ein Steuersystem 270. Das Erfassungssystem 260 kann einen oder mehrere verschiedene Typen von Sensoren, einschließlich z. B. eines Lichtsensors, eines Audiosensors, eines Bildsensors, eines Entfernungs-/Näherungssensors, eines Positionssensors (z. B. einer Trägheitsmesseinheit (IMU), die ein Gyroskop und einen Beschleunigungsmesser enthält) und/oder anderer Sensoren und/oder einer oder mehrerer anderer Kombinationen von Sensoren, einschließlich z. B. eines Bildsensors, der zum Detektieren und Nachführen eines Blicks der Augen, der einem Nutzer zugeordnet ist, positioniert ist, enthalten. Das Steuersystem 270 kann z. B. eine Leistung/Pause-Steuervorrichtung, Audio- und Videosteuervorrichtungen, eine optische Steuervorrichtung, eine Übergangssteuervorrichtung und/oder andere solche Vorrichtungen und/oder eine oder mehrere andere Kombinationen von Vorrichtungen enthalten. In Abhängigkeit von einer bestimmten Implementierung können das Erfassungssystem 260 und/oder das Steuersystem 270 mehr oder weniger Vorrichtungen enthalten.
-
Außerdem kann der Controller 112 wenigstens einen Prozessor 290 in Kommunikation mit dem Erfassungssystem 260 und mit dem Steuersystem 270, einen Datenspeicher 280 und ein Kommunikationsmodul 250, das eine Kommunikation zwischen dem Controller 112 und einer anderen, externen Vorrichtung wie etwa z. B. dem Controller 114 und/oder der HMD-Vorrichtung 106 bereitstellt, enthalten.
-
Der Controller 114 kann ein Kommunikationsmodul 206 enthalten, das eine Kommunikation zwischen dem Controller 112 und einer anderen, externen Vorrichtung wie etwa z. B. der HMD-Vorrichtung 106 bereitstellt. Außer der Bereitstellung des Austauschs von Daten zwischen dem Controller 112 und dem Controller 114 und der HMD-Vorrichtung 106 kann das Kommunikationsmodul 206 ebenfalls dafür konfiguriert sein, eine Anzahl anderer elektronischer Vorrichtungen, Computer und/oder Controller, auf die der VR-Raum und das System 100 zugreifen können, zu verbinden und/oder mit ihnen zu kommunizieren.
-
Der Controller 114 kann ein Erfassungssystem 204 enthalten, das einen Bildsensor und einen Audiosensor, wie sie z. B. etwa in einer Kamera und in einem Mikrofon enthalten sind, eine IMU, einen Berührungssensor, wie er etwa in einer berührungsempfindlichen Oberfläche eines Controllers oder Smartphones enthalten ist, und andere solche Sensoren und/oder eine oder mehrere andere Kombinationen von Sensoren enthält. Wenigstens ein Prozessor 209 kann mit dem Erfassungssystem 204 und mit einem Steuersystem 205 in Kommunikation stehen. Das Steuersystem 205 kann Zugriff auf einen Speicher 208 haben und den Gesamtbetrieb des Controllers 114 steuern.
-
Ähnlich dem Controller 112 kann das Steuersystem 205 des Controllers 114 z. B. eine Leistung/Pause-Steuervorrichtung, Audio- und Videosteuervorrichtungen, eine optische Steuervorrichtung, eine Übergangssteuervorrichtung und/oder andere solche Vorrichtungen und/oder eine oder mehrere andere Kombinationen von Vorrichtungen enthalten. Allgemein können die in dieser Offenbarung beschriebenen Systeme und Verfahren Nutzerhände oder Controller 112 und 114 nachführen und Nutzerinteraktionsmuster und Nutzerinteraktionsgesten analysieren, die diesen Händen und/oder Controllern 112 und 114 in dem VR-Raum zugeordnet sind, um die Absicht dieser Interaktionsmuster und Interaktionsgesten zu bestimmen.
-
Die 3A–3B stellen einen Nutzer dar, der auf einen VR-Raum zugreift, um Manipulationen virtueller Objekte auszuführen. Die in den 3A–B gezeigte beispielhafte Implementierung wird in Bezug auf einen Nutzer beschrieben, der eine HMD-Vorrichtung trägt, die die Umgebung im Wesentlichen verdeckt, so dass die HMD-Vorrichtung eine virtuelle Umgebung erzeugt, wobei das Blickfeld des Nutzers auf den durch die HMD-Vorrichtung erzeugten VR-Raum beschränkt ist. Allerdings können die im Folgenden anhand der 3A–B beschriebenen Konzepte und Merkmale ebenfalls auf andere Typen von HMD-Vorrichtungen und auf andere Typen von Umgebungen der virtuellen Realität und Umgebungen der erweiterten Realität angewendet werden. Außerdem enthalten die in den 3A–B gezeigten Beispiele eine linke Seite jeder Figur, die eine Ansicht des Nutzers, der die HMD-Vorrichtung 304 trägt und die Controller 308 und 310 hält, durch eine dritte Person darstellt, und die rechte Seite jeder Figur, die eine Ansicht dessen, was durch den Nutzer 302 in der durch die HMD-Vorrichtung 304 erzeugten virtuellen Umgebung gesehen werden kann, durch eine erste Person darstellt. Insbesondere ist rechts oben in 3A–B eine Anfangsansicht des VR-Raums gezeigt, während rechts unten eine aktualisierte, geänderte Ansicht des VR-Raums gezeigt ist. In einigen Implementierungen sind den Beispielen in den 3A–3B die Controller 308 und 310 nicht zugeordnet und können für die Controllereingabe stattdessen nachgeführte Finger, nachgeführte Daumen, nachgeführte Hände, nachgeführte Füße, der nachgeführte Kopf oder ein anderes nachgeführtes Körperteil ersetzt sein.
-
In dem in 3A gezeigten Beispiel ist der Nutzer 302, der eine HMD-Vorrichtung 304 trägt, einem Raum, der die aktuelle Umgebung/den aktuellen VR-Raum des Nutzers definiert (durch die Ansicht 306a gezeigt) oder der einen aktuellen Raum der tatsächlichen Welt definiert, zugewandt. Die HMD-Vorrichtung 304 kann Bilder erfassen und/oder Informationen, die Merkmale in dem VR-Raum definieren, erheben. Die durch die HMD-Vorrichtung 304 (oder durch einen oder mehrere Controller 308 oder 310) erhobenen Bilder und Informationen können daraufhin durch die HMD-Vorrichtung 304 verarbeitet werden, um ein 3D-Modell des VR-Raums und irgendeiner Anzahl von Modellen virtueller Objekte zu rendern und anzuzeigen. In einigen Implementierungen kann dieses gerenderte 3D-Modell des VR-Raums repräsentativ für die tatsächliche Umgebung sein, aber nicht notwendig eine genaue Reproduktion der tatsächlichen Umgebung sein (wie es z. B. wäre, falls ein Durchgangsbild von einer Durchgangskamera anstelle eines gerenderten 3D-Modellbilds angezeigt würde).
-
Die HMD-Vorrichtung 304 kann erfasste Bilder einer Umgebung verarbeiten, um verschiedene Merkmale der Umgebung wie etwa z. B. Ecken, Ränder, Konturen, flache Gebiete, Texturen, Gitterorte, Ortseinschnappflächen, Ankerpunkte und dergleichen, von diesen identifizierten Merkmale, andere Charakteristiken der Umgebung wie etwa z. B. eine relative Fläche, der identifizierte Charakteristiken oder Objekte zugeordnet sind, eine Orientierung identifizierter Charakteristiken oder Objekte (z. B. horizontal, vertikal, angewinkelt) usw. zu definieren und/oder zu identifizieren.
-
In einigen Implementierungen kann ein zuvor erzeugtes 3D-Modell eines bekannten VR-Raums gespeichert sein und kann der bekannte VR-Raum durch das System erkannt werden. Auf das gespeicherte 3D-Modell des VR-Raums kann zur Verwendung in einer neuen VR-Sitzung zugegriffen werden. In einigen Implementierungen kann auf das zuvor gespeicherte 3D-Modell des bekannten VR-Raums wie beschrieben zugegriffen werden und kann es mit einer aktuellen Abtastung des VR-Raums verglichen werden, so dass das 3D-Modell aktualisiert werden kann, um irgendwelche Änderungen in dem bekannten VR-Raum wie etwa z. B. Änderungen der Möbelanordnung, andere Hindernisse in der Umgebung und dergleichen, die die Bewegung des Nutzers in dem VR-Raum versperren können und die Fähigkeit des Nutzers, die Anwesenheit aufrecht zu erhalten, beeinträchtigen können, zu widerspiegeln. Daraufhin kann das aktualisierte 3D-Modell für den Zugriff während einer späteren Sitzung gespeichert werden.
-
In dem Beispiel in 3A kann der Nutzer 302 auf den VR-Raum zugreifen und ein virtuelles Objekt wie etwa einen Globus 312a in der Ansicht 306a betrachten. Obwohl der Nutzer 302 in der Ansicht 306a außerhalb des VR-Raums gezeigt ist, kann der Nutzer 302 im Betrieb in dem VR-Raum sein und in der Lage sein, seine Hände, seine Arme, seinen Körper zu sehen, während er mit dem Inhalt in dem VR-Raum interagiert.
-
An einem bestimmten Punkt kann der Nutzer 302 entscheiden, das virtuelle Objekt (z. B. den Globus 312a) dadurch, dass er nach ihm greift, aufzunehmen, um sich mit Abschnitten des Globus 312a zu verbinden/mit ihnen zusammenzustoßen. Zum Beispiel kann der Nutzer 302 nach dem Controller 308 greifen und ihn beim Punkt 316a anordnen oder dorthin lenken und den Controller 310 beim Punkt 314a anordnen oder ihn dorthin lenken. Auf ähnliche Weise kann der Nutzer einfach seine Hände verwenden, um nach Abschnitten des Globus 312a zu greifen und sie mit ihnen zu verbinden/mit ihnen zusammenzustoßen. Unabhängig davon, ob der Nutzer Controller oder Hände nutzt, kann das System 100 die Bewegung, die Orientierung und die Position eines oder beider nachführen. Das Nachführen kann fortgesetzt werden, während der Nutzer 302 nach dem Globus 312a greift, um ihn zu erhalten oder auf andere Weise zu handhaben, und während irgendeiner Manipulation des Globus 312a. Zum Beispiel kann der Nutzer 302, während er seine Controller bei 314a und 314b anordnet, den Globus 312a zu kippen und zu dehnen beginnen, indem er beide Controller 308 und 310 ergreift und seine linke Hand zu einer durch den Controller 310a gezeigten Position bewegt, wobei die Bewegung durch die Pfeile 318 und 320 angegeben ist. Gleichzeitig oder kurz bevor oder nachdem der Nutzer seine linke Hand bewegt, kann er seine rechte Hand zu einer durch den Controller 308a gezeigten Position bewegen, wobei die Bewegung davon durch den Pfeil 320 angegeben ist. Die Bewegung ist hier für beide Hände eine Bewegung nach außen, die für das System 100 angibt, dass der Nutzer den Globus 316a dehnen oder vergrößern möchte, während er den Globus 312a zur Seite kippt oder dreht. In der Ansicht 306b ist das Ergebnis der Bewegungen gezeigt. In diesem Beispiel können die Hände des Nutzers beim Punkt 314b und 316b geendet haben und zeigt eine resultierende aktualisierte Ansicht 306b den Globus 312b als größer und in Richtung der durch den Nutzer 302 ausgeführten Bewegung gekippt. Im Betrieb kann der Nutzer 302 jede Zwischenansicht des bewegten Globus 312a sehen, bis der Nutzer das Manipulieren des Globus anhält und der Globus, wie durch die Ansicht 306b gezeigt ist, zur Ruhe kommt.
-
3B zeigt, dass der Nutzer 302 an dem virtuellen Objekt/Globus 312b zusätzliche Änderungen vornimmt. In diesem Beispiel hat sich der Nutzer entschieden, den Globus 312b beim Punkt 314c und 316c zu ergreifen und den Globus nach außen zu dehnen, was durch den Pfeil 322 gezeigt ist, um den Globus abzuflachen, wie es bei dem Globus 312c in der Ansicht 306c gezeigt ist. In diesem Beispiel hat der Nutzer 302 den Controller 308a an eine bei dem Controller 308b gezeigte Position bewegt, während er die Position seines Controllers 310b aufrechterhalten hat. Es können zusätzliche Manipulationen virtueller Objekte und des umgebenden VR-Raums ausgeführt werden.
-
In einigen Implementierungen können die Controller 308a und 310b und in einigen Fällen ebenfalls die Hände des Nutzers detektiert werden und kann die Bewegung der detektierten Controller (und Hände) durch das System 100 nachgeführt werden. Dies kann ermöglichen, dass ein Bild der detektierten Controller 308a und 310b (und Hände) gerendert wird, während sich die Controller in Richtung des Globus bewegen.
-
In einige Implementierungen stellen die in dieser Offenbarung beschriebenen Systeme und Verfahren eine Ortseinschnappfunktion bereit, die ermöglicht, dass ein Nutzer bestimmte Flächen eines virtuellen Objekts intuitiv dafür auswählt, sie an der richtigen Stelle zu befestigen (oder einzuschnappen), während andere Aspekte des virtuellen Objekts gedehnt oder auf andere Weise manipuliert werden können. Das System 100 kann z. B. den Winkel oder die Position beider Hände eines Nutzers detektieren und bestimmen, ob bestimmte Winkel oder Positionen (innerhalb von sechs Freiheitsgraden) eine Ortseinschnappbetriebsart auslösen. Falls das System 100 z. B. detektiert, dass jede Hand mit beiden Daumen nach innen zeigend positioniert ist, während sie ein virtuelles Objekt hält, kann eine Folgerung gezogen werden, den Abschnitt des virtuellen Objekts auf einer Seite, die der Anordnung der Hände an dem Objekt gegenüberliegt, an dem Ort einzuschnappen. Die Folgerung kann dadurch gezogen werden, dass bestimmte Einzelheiten über das Objekt erhalten werden und bestimmte durch den Nutzer während der Handnachführung ausgeführte Gesten detektiert werden. Ähnlich kann das System 100 ähnliche Informationen durch Nachführen der unter Verwendung der Controller ausgeführten Gesten erhalten, falls der Nutzer einen Controller hält oder in jeder Hand einen Controller hält.
-
In einem nicht einschränkenden Beispiel kann ein Nutzer, der auf einen VR-Raum zugreift, ein dreidimensionales virtuelles Objekt mit einer oder mit beiden Händen aufnehmen und das Objekt in irgendeiner Weise bewegen, um eine von vielen Arten auszuwählen, in der das Objekt orientiert werden kann, während beide Hände (oder Controller) verwendet werden, um durch Gesten auf spezifische Weise an einen Ort einzuschnappen. Eine beispielhafte Geste kann das Parallelhalten beider Hände (oder beider Controller), während das Objekt gedreht und skaliert wird, enthalten. Die parallele Geste kann angeben, dass der Nutzer während einer Operation/Geste, die durch die Hände (oder Controller) des Nutzers ausgeführt wird, um das Objekt zu schrumpfen oder zu dehnen, eine Mitte des virtuellen Objekts festhalten möchte, während er das Objekt um den Mittelpunkt dreht. In einigen Implementierungen kann das System 100 eine oder mehrere Eigenschaften des virtuellen Objekts, die geändert werden sollen, auf der Grundlage irgendeiner Kombination aus Nutzergeste, Hand-/Controllernachführung und/oder vordefinierten Objekteigenschaften auswählen.
-
In einigen Implementierungen kann das System 100 bestimmen, in welcher Richtung ein Objekt durch eine linke und eine rechte Hand des Nutzers gehalten ist. Zum Beispiel kann das Nachführungsmodul 116 eine Position jeder Hand detektieren, während das Orientierungsmodul 118 die Orientierung jeder Hand detektieren kann. Diese Informationen können von dem Ankerpunktgenerator 120 verwendet werden, um einen oder mehrere Ankerpunkte zu erzeugen, in denen das Objekt bewegt werden soll. Falls eine bestimmte Orientierung oder Geste detektiert wird, kann das Ortseinschnappmodul 122 einen Abschnitt des Objekts an einem Ort in dem VR-Raum fixieren. Falls das System 100 z. B. detektiert, dass die Finger des Nutzers alle einander gegenüberliegen, kann eine einzige Achse, die parallel zu den Händen verläuft, für Drehungen, zum Einschnappen an Orten, für Wachstum oder Schrumpfung entlang der gewählten Achse oder entlang einer bestimmten Dimension oder Ebene in Bezug auf die gewählte Achse gewählt werden.
-
In Ansprechen auf Nutzergesten, die in einem VR-Raum detektiert werden, können durch das System 100 die folgenden nicht einschränkenden Beispiele ausgeführt werden. Solchen Gesten können irgendeine Anzahl von Koordinatensystemen, Gittern oder anderen Metriken, die auf virtuelle Objekte angewendet werden können, zugeordnet sein. In einigen Implementierungen kann das Ortseinschnappmodul 122 bestimmte Objektkoordinaten durch Runden eines Orts eines virtuellen Objekts zu einem nächsten Gitterort berechnen.
-
In einigen Implementierungen kann der Ankerpunktgenerator 120 irgendeine Anzahl von Ankerpunkten an einem virtuellen Objekt konfigurieren. Das Ortseinschnappmodul 122 kann diese Ankerpunkte verwenden, um Einschnapporte an dem virtuellen Objekt zu definieren. In einem nicht einschränkenden Beispiel kann das Ortseinschnappmodul 122 definierte Ankerpunkte verwenden, um Drehungen des virtuellen Objekts auf 90-Grad-Orientierungen einzuschnappen. Zum Beispiel kann das Modul 122 für ein bestimmtes virtuelles Objekt bis zu vierundzwanzig 90-Grad-Ortseinschnapporientierungen definieren. Eine solche Definition kann während Objektbewegungen, die an Orte eingeschnappt sind, eine Sechs-Freiheitsgrad-Steuerung ermöglichen.
-
In einigen Implementierungen kann das Ortseinschnappmodul 122 eine Hystereseeinschnappfunktion aufrufen, in der das System 100 die Nutzerbewegung in Bezug auf ein virtuelles Objekt nachführen kann, um zu bestimmen, wann eine bestimmte Begrenzung überquert wird. Wenn die Begrenzung überquert wird, kann das Ortseinschnappmodul 122 das Objekt an einen für das virtuelle Objekt konfigurierten Ort einschnappen. Allgemein kann das Ortseinschnappmodul 122 eine bestimmte Geometrie eines virtuellen 3D-Objekts definieren oder auslesen und ein oder mehrere Einschnappzentren definieren. Die Einschnappzentren können Einschnapprahmen sein, die ein Koordinatensystem mit einer Translation (3D) und einer Drehung (Quaternion) definieren.
-
In einem nicht einschränkenden Beispiel kann ein Nutzer, der auf den VR-Raum zugreift, nach einem virtuellen Objekt mit einer Hand an einem ersten Ort an dem virtuellen Objekt zu greifen beginnen oder auf andere Weise mit ihm zu interagieren beginnen. Das System 100 kann den ersten Ort im 3D-Raum definieren, indem es eine Quaternion definiert, die Orientierungen und Drehungen des virtuellen Objekts repräsentiert. Insbesondere kann eine Vorwärtsachse eine Drehungskomponente aufweisen, die definiert, wie sich das virtuelle Objekt um die Vorwärtsachse dreht. Eine solche Definition kann die anderen zwei Achsen festsetzen (oder beschränken). Wenn der Nutzer nach einem zweiten Ort an dem virtuellen Objekt greift oder ihn berührt, kann das System 100 in Übereinstimmung mit den beschränkten Achsen einen Drehweg um den definierten ersten Ort definieren. In einem anderen Beispiel kann das System 100 einfach unter Verwendung eines Vektors, der zwischen beiden Ankerpunkten des Objekts als die zu beschränkende Achse erzeugt wird, Beschränkungen definieren und die Achse als Grundlage zur freien Drehung des virtuellen Objekts verwenden, falls der Nutzer nach dem ersten Ort (d. h. Ankerpunkt) und nach dem zweiten Ort (d. h. Ankerpunkt) an dem Objekt greift und sie berührt.
-
Der Ankerpunktgenerator 120 und/oder das Ortseinschnappmodul 122 können Einschnapprahmen verwenden, um eine Anzahl von Schritten, um Einschnappfunktionen zu ermöglichen, einschließlich, aber nicht beschränkt auf, einer Hystereseeinschnappfunktion für ein virtuelles Objekt, zu implementieren. Die Schritte können das Bestimmen einer längsten Komponente eines bestimmten nach vorn weisenden Vektors (z. B. Einheitsvektors) in Bezug auf einen an dem Objekt definierten Rahmen enthalten. Ein solcher Rahmen kann mit Koordinaten und Orten konfiguriert sein, an denen das Einschnappen von Abschnitten virtueller Objekte herbeigeführt werden kann. Das Ortseinschnappmodul 122 kann die bestimmte längste Komponente des Vektors als eins zuweisen, während die zwei anderen Komponenten des Vektors null zugewiesen werden können. Nachfolgend kann das Modul 122 eine längste Komponente eines rechten Vektors (z. B. Einheitsvektors), der dem Rahmen zugeordnet ist, bestimmen und diesen Vektor eins zuordnen, während die anderen zugeordneten Vektoren nullgesetzt werden. Beim Zuweisen der beiden obigen Vektoren kann das Gittereinschnappmodul 122 aus dem Kreuzprodukt der zwei ersten Vektoren einen dritten Vektor berechnen und somit eine neue Einschnappquaternion bestimmen, in der eine Ortseinschnappaktivität durch einen Nutzer zugelassen ist. In einigen Implementierungen kann die Hystereseoption für dieses Verfahren durch Definieren eines bestimmten Längenschwellenwerts für den vor dem Einschnappen zu kreuzenden Vektor erhalten werden, anstatt die längste Komponente zu definieren.
-
Die obigen Quaternionendefinitionen können verwendet werden, um zu ermöglichen, dass ein Nutzer mit virtuellen Objekten in dem VR-Raum in einer Weise interagiert, um das Einschnappen (z. B. Festsetzen) von Objekten an Orten innerhalb des VR-Raums zu ermöglichen. Zum Beispiel können eine vertikale und eine horizontale Mittellinie für ein virtuelles Objekt wie etwa ein Regal vorkonfiguriert sein. Falls ein oder beide Controller oder Hände, die das Objekt handhaben, die Mittellinien von vorn nach hinten, von hinten nach vorn oder von einer Seite zur anderen Seite schneiden, kann das System 100 folgen, dass der Nutzer z. B. das Regal mit der virtuellen Wand verbinden oder von ihr abnehmen möchte, und an dem virtuellen Objekt (z. B. Regal) Sichtanzeiger bereitstellen, um dem Nutzer zu signalisieren, dass das Objekt an einem Ort entlang einer Linie oder Fläche von Sichtanzeigern eingeschnappt werden kann.
-
In einigen Implementierungen kann ein virtuelles Objekt in dem VR-Raum an einem bestimmten Ort in die richtige Stellung eingeschnappt gezeigt sein, während ein durchsichtiger Umriss (d. h. oder ein anderer visuell unterschiedener graphischer Effekt) des virtuellen Objekts gezeigt sein kann, um zu ermöglichen, dass der Nutzer den Zustand des VR-Raums in Bezug auf ein bewegliches virtuelles Objekt besser versteht. Dies kann enthalten, dass virtuelle Objekte wie ähnlich geformte nicht eingeschnappte Objekte auf visuell unterschiedliche Weise gezeigt sind, um zu ermöglichen, dass der Nutzer versteht, dass das eingeschnappte Objekt auf eine bestimmte Weise ausgeschnappt sein kann.
-
In einem Beispiel kann das System 100 bestimmte Abschnitte virtueller Objekte und/oder Ankerpunkte, die virtuellen Objekten zugeordnet sind, mit Sichtanzeigern definieren. Die Anzeiger können in dem VR-Raum graphisch bereitgestellt werden, z. B. eine durchsichtige Kugel oder ein durchsichtiger Strahl, der das Objekt schneidet. Diese Sichtanzeiger können Mechanismen sein, die eine visuelle Rückkopplung bereitstellen, so dass der Nutzer auslösen kann, dass ein Objekt gewählt wird oder damit interagiert wird. Falls der Nutzer z. B. nach einem virtuellen Objekt greift und das Objekt ergreift, kann das System 100 dies detektieren und einen Sichtanzeiger bereitstellen, der für den Nutzer angibt, dass er ausgelöst hat, dass das Objekt auf bestimmte Weise manipuliert wird. Das Detektieren kann z. B. durch das Nachführungsmodul 116 ausgeführt werden. Wenn der Auslöser auftritt, kann der Nutzer in Übereinstimmung mit den an dem Objekt definierten Ankerpunkten das Objekt ziehen oder bewegen sowie das Objekt skalieren und drehen. Somit kann das virtuelle Objekt passend folgen und in Übereinstimmung mit der geänderten Orientierung oder Position geändert werden, wenn der Nutzer eine Orientierung oder Position von Hand (oder Controller) ändert. Außerdem kann der Nutzer seine Hände (oder seinen Controller) verwenden, um eine Skale des virtuellen Objekts zu ändern, während die Orientierung, die Position oder beide geändert werden.
-
In einigen Implementierungen kann das Gittereinschnappmodul 122 das Einschnappen virtueller Objekte unter Verwendung von Bounding-Boxes ermöglichen, um Translationen zuzulassen. Solche Translationen können z. B. acht Translationsankerpunkte eines dreidimensionalen virtuellen Objekts enthalten. Insbesondere können der VR-Raum und/oder virtuelle Objekte mit Ankerpunkten definiert werden, die eine Translation und ein Ortseinschnappen gegen ein Gitter oder gegen eine angrenzende Bounding-Box/einen angrenzenden Ankerpunkt eines anderen virtuellen Objekts zulassen. Es kann ein Schwellenwert definiert werden, um eine Entfernung zu bestimmen, in der ein Bounding-Box-Punkt mit einem anderen Bounding-Box-Punkt (z. B. ein Ankerpunkt mit einem anderen Ankerpunkt) von selbst in Eingriff gelangt. Zum Beispiel kann das Modul 122 dafür konfiguriert sein, bestimmte Ankerpunkte in Übereinstimmung mit einer minimalen Entfernung zwischen zwei sich nähernden Ankerpunkten von selbst einzuschnappen. Die Ankerpunkte können z. B. sich zu nähern beginnen, falls ein Nutzer zwei virtuelle Objekte oder zwei Ankerpunkte an demselben virtuellen Objekt eng zusammenbringt. Die minimale Nähe, bevor ein Einschnappen auftritt, kann durch die minimale Entfernung definiert werden.
-
Außer dem Definieren von Einschnapporten an Begrenzungen virtueller Objekte (z. B. an Bounding-Boxes) kann das Ortseinschnappmodul 122 eine Anzahl von Einschnapporten innerhalb virtueller Objekte definieren. Zum Beispiel stellt 4 ein beispielhaftes rechteckiges Bodenstück 402 mit einem aus dem Boden 402 vorstehenden Rohrende 404 dar. Im Zentrum des Rohrendes 404 ist ein Einschnapprahmen 406 gezeigt. Der Einschnapprahmen 406 ist dafür konfiguriert, das Einschnappen von Rohrmodulen wie etwa des Moduls 408 zu ermöglichen. Das Rohrmodul 408 enthält einen weiteren Einschnapprahmen 410, in dem einem Nutzer angegeben werden soll, dass der Einschnapprahmen 406 mit einer anderen Komponente eingeschnappt werden kann. In einigen Implementierungen kann das Einschnappen an einen bestimmten Rahmen, an ein bestimmtes Gitter, an einen bestimmten Punkt, an einen bestimmten Ankerpunkt usw. verwendet werden, um außerdem einen Ursprung zu definieren, in dem ein virtuelles Objekt skaliert oder gedreht werden soll. In dem Beispiel in 4 kann ein Rohr 408 an den Einschnapprahmen 406 eingeschnappt werden und daraufhin skaliert oder in irgendeiner Richtung nach innen gedreht werden.
-
In einigen Implementierungen kann das Ortseinschnappmodul 122 das Einschnappen mehrerer Punkte an einem oder mehreren virtuellen Objekten gleichzeitig ermöglichen. Solche Einschnapppunkte können dafür konfiguriert sein, in Ansprechen darauf, dass das System 100 detektiert, dass ein Einschnapppunkt in irgendeiner Anzahl korrelierter Einschnapppunkte z. B. durch einen Nutzer miteinander verbunden worden ist, entlang einer Naht, eines Rands oder einer anderen Begrenzung verbunden zu werden.
-
Allgemein kann ein Einschnapprahmen innerhalb eines Koordinatensystems, das virtuellen Objekten oder einem virtuellen Raum, die bzw. der die virtuellen Objekte umgeben, entspricht, irgendeine Form, Größe oder Fläche annehmen. Der Rahmen kann definiert und dem VR-Raum, bestimmten Nutzern, bestimmten virtuellen Objekten oder bestimmten Begrenzungen innerhalb des VR-Raums oder Nutzern, die auf den VR-Raum zugreifen, zugeordnet werden.
-
In einem anderen Beispiel kann das Ortseinschnappmodul 122 verwendet werden, um bestimmte Anziehungspunkte oder wie magnetisierte Punkte zu definieren, in denen Ankerpunkte von einer Anzahl verschiedener virtueller Objekte zusammenschnappen. In einem nicht einschränkenden Beispiel kann eine erste Ecke einer rechteckigen Kachel mit vier Ecken auf der Grundlage einer definierten Anziehung zwischen den Ecken jedes jeweiligen Objekts mit einer anderen Ecke einer anderen rechteckigen Kachel mit vier Ecken zusammengeschnappt werden. Es können zusätzliche Anziehungspunkte definiert werden und diese Punkte können durch einen oder mehrere Punkte, die in irgendeiner Form angeordnet sind, definiert werden.
-
Die 5A–C stellen Beispiele eines Nutzers dar, der auf einen VR-Raum zugreift, um Manipulationen virtueller Objekte auszuführen. Allgemein kann das System 100 Nutzerinteraktionen in dem VR-Raum analysieren, um auf der Grundlage der detektierten Nutzerinteraktionen zu bestimmen, wie ein bestimmtes virtuelles Objekt manipuliert werden soll. Die Bestimmung kann verwendet werden, um für den Nutzer eine Antwort bereitzustellen, die auf eine gewünschte Objektmanipulation gerichtet ist, die durch den Nutzer über die detektierte Nutzerinteraktion/Nutzergeste angefordert wird. Wenn der Nutzer z. B. ein virtuelles Objekt mit seiner Hand zu ergreifen versucht (z. B. danach greift), beginnt sich die Hand einer Nutzerschnittstellenoberfläche anzunähern, die in einer Anzahl verschiedener Arten reagieren kann. Das System 100 kann bestimmen, welche (VR-Raum-basierte) Reaktion zu der Absicht des Nutzers passt, und kann in Übereinstimmung mit Informationen, die Eigenschaften der virtuellen Objekte und des VR-Raums zugeordnet sind, reagieren.
-
In einem nicht einschränkenden Beispiel in 5A ist ein VR-Raum 500A mit einem Nutzer 502, der mit einer Anzahl virtueller Objekte interagiert, gezeigt. Insbesondere ergreift der Nutzer 502 mit seiner ersten Hand 504 und mit seiner zweiten Hand 506 zwei Punkte eines virtuellen Regals 508a. Das zweihändige Ergreifen kann Merkmale, die dem virtuellen Regal 508a zugeordnet sind, auszulösen beginnen. Zum Beispiel kann das System 100 bestimmen, dass das zweihändige Ergreifen auf einer Seite des Regals angibt, dass der Nutzer ein gegenüberliegendes Ende des Regals an vorhandenen Objekten in dem VR-Raum befestigen möchte. Zum Beispiel kann das System 100 folgen, dass die nachgeführte Hand 504 mit dem virtuellen Regal 508a zu interagieren beabsichtigt, während es bestimmt, dass die nachgeführte Hand 506 das Regal 508 ergreift, um dasselbe zu tun. Zusätzlich kann das zweihändige Ergreifen auslösen, dass ein oder mehrere graphische Anzeiger eine oder mehrere Arten, bestimmte virtuelle Objekte zu ändern oder zu bewegen, an den Nutzer übermitteln. Zum Beispiel kann beim Detektieren des zweihändigen Ergreifens an dem virtuellen Regal 508a ein Sichtanzeiger 510 angezeigt werden. Der Anzeiger 510 zeigt, dass das Regal an dem Wandraum 512 befestigt werden kann. In einigen Implementierungen können andere Sicht- und/oder Höranzeiger und Aktionen gezeigt sein, um den Nutzer auf eine mögliche Interaktion in dem VR-Raum aufmerksam zu machen. Im Betrieb kann das System 100 warten, um zusätzliche Gesten oder Bewegungen, die durch den Nutzer ausgeführt werden, zu detektieren, und kann es an Inhalt in dem VR-Raum in Übereinstimmung mit den Gesten oder Bewegungen graphische Objektänderungen implementieren.
-
In dem gezeigten Beispiel kann der Nutzer, wie durch den Pfeil 514 gezeigt ist, seine rechte Hand 506 nach oben bewegen und seine linke Hand 504 nach unten bewegen, was das Regal 508a in die an dem Ort 510 an der Wand 512 oder an einem anderen Ort entlang der Wand 512 zu montierende Position zu bewegen beginnen kann, da der Ort 510 einfach ein graphischer Anzeiger ist, um den Benutzer über eine Aktivität des Anordnens des Regals an der Wand zu benachrichtigen.
-
In einigen Implementierungen kann das System 100 folgern, dass die nachgeführte Hand 504 mit dem virtuellen Regal 508 zu interagieren beabsichtigt, während es bestimmt, dass die nachgeführte Hand 506 das Regal 508a in einer selben Ebene ergreift. Falls das System 100 detektiert, dass beide Hände (oder beide Controller, falls der Nutzer Controller verwenden würde) in derselben Bezugsachse oder Bezugsebene sind, kann das System 100 eine Betriebsart der gleichförmigen Skalierung auslösen, um ein virtuelles Objekt gleichförmig zu bewegen und/oder zu skalieren. In dem gezeigten Beispiel aus 5B ergreift der Nutzer 502 das virtuelle Regal 508a (aus 5A) mit beiden Händen 504 und 506 in derselben Ebene. In Ansprechen darauf kann das System 100 die Betriebsart der gleichförmigen Skalierung auslösen, um zu ermöglichen, dass der Nutzer das virtuelle Regal 508a in Übereinstimmung mit durch den Nutzer ausgeführten Gesten, die durch die Pfeile 514 und 516 angegeben sind, in das bei 508b gezeigte Regal zu skalieren beginnt. Insbesondere kann das System 100 auf der Grundlage nachgeführter Nutzerbewegungen bestimmen, dass der Nutzer das Regal 508a gleichförmig skalieren/dehnen möchte, um die durch das Regal 508b gezeigte Regalgröße zu erhalten. Die durch den Pfeil 516 angegebene Nutzerbewegung zeigt eine Dehnung des Regals nach oben, die ebenfalls ein gleichförmiges Wachstum des gesamten Regals in Richtung der Wand 518 auslöst. Wie durch den Pfeil 514 angegeben ist, der die rechte Hand 506 des Nutzers, die nach oben verdreht wird, zeigt, wird außerdem gleichzeitig mit der Skalierung eine Drehung ausgeführt. Um dem Nutzer zu übermitteln, dass eine bestimmte Betriebsart ausgelöst worden ist, können Sicht-, Hör- oder Tastanzeiger vorgesehen sein. Zum Beispiel kann der Anzeiger 520 das Auslösen einer Betriebsart der gleichförmigen Skalierung angeben.
-
Anhand von 5C ist ein weiteres Beispiel gezeigt, in dem der Nutzer 502 ein virtuelles Regal 508c handhabt. In diesem Beispiel kann das System 100 nachgeführte Hände oder Controller, virtuelle Objekte und Eigenschaften dieser Objekte identifizieren. Eine beispielhafte Eigenschaft eines virtuellen Objekts kann definierte Ankerpunkte enthalten, in denen die Ortseinschnappfunktionalität für Objekte und Inhalt innerhalb des VR-Raums verwendet werden soll. Das System 100 kann hier einen oder mehrere Ankerpunkte an dem virtuellen Regal 508c identifizieren. Die Ankerpunkte können verwendet werden, um dem Nutzer anzugeben, ob irgendwelche Einschnapppunkte innerhalb der Reichweite des virtuellen Regals 508c liegen. Wie gezeigt ist, detektiert das System 100, dass das Regal 508c zwei Ankerpunkte enthält, die natürlich zu zwei anderen Ankerpunkten an Ecken, die dem Regalabschnitt 522 zugeordnet sind, passen können. Insbesondere können Sichtanzeiger 524 und 526 gezeigt werden, um dem Nutzer zu verstehen zu geben, dass eine Ortseinschnappfunktion verfügbar ist. Die Anzeiger können z. B. beim Detektieren, dass sich das virtuelle Regal 508c auf der Grundlage einer vom Nutzer ausgeführten Aktion, an der das virtuelle Regal 508c beteiligt ist, dem Regalabschnitt 522 annähert, sichtbar werden. Auf diese Weise wird ein Nutzer dabei unterstützt, das virtuelle Regal mit hoher Genauigkeit in dem Abschnitt 522 in dem virtuellen Raum zu positionieren.
-
Auf ähnliche Weise können Ankerpunkte visuell in der Nähe des Regals 528 gezeigt werden, um anzugeben, dass zusätzliche Regalkomponenten zu dem Regal 528 hinzugefügt werden können. Solche Sichtanzeiger können für den Nutzer z. B. erst bereitgestellt werden, wenn sich der Nutzer der Wand 518 annähert und innerhalb einer vorgegebenen Nähe oder eines vorgegebenen Umkreises um das Regal 528 liegt. Zusätzliche Einzelheiten hinsichtlich des Ortseinschnappens sind oben beschrieben.
-
6 ist ein schematischer Ablaufplan einer Ausführungsform eines Prozesses 600, um zu ermöglichen, dass ein Nutzer Inhalt in einem VR-Raum manipuliert. Im Block 602 kann das System 100 eine virtuelle Umgebung erzeugen, die innerhalb einer in einer Head-Mounted-Display-Vorrichtung bereitgestellten Nutzerschnittstelle wenigstens ein dreidimensionales virtuelles Objekt enthält. Zum Beispiel kann das VR-System 108 einen VR-Raum mit irgendeiner Anzahl virtueller Objekte erzeugen, die durch Nutzerhandbewegungen oder Controllerbewegungen manipuliert werden können. Das System 108 kann Darstellungen von Nutzern, Objekten und Controllern erzeugen und kann diese Dinge auf der Grundlage von Bewegungen und Gesten, die in der physikalischen Welt ausgeführt werden, für die Übersetzung in den VR-Raum nachführen.
-
Im Block 604 kann das System 100 ein erstes Interaktionsmuster detektieren. Zum Beispiel kann ein Nutzer, der auf die Controller 112 oder 114 zugreift, eine Eingabe in Form eines ersten Interaktionsmusters wie etwa des tatsächlichen Ergreifens eines virtuellen Objekts oder des Simulierens des Ergreifens unter Verwendung eines Controllers 112 oder 114 bereitstellen. In einigen Implementierungen wird das erste Interaktionsmuster mit einer Hand, einem Arm, einem Blick der Augen, einem Bein, einem Fuß oder einem anderen Teil des Nutzers, der eine Interaktion in dem VR-Raum auslösen kann, ausgeführt. Die Anordnung und Richtung des Ergreifens kann als ein Muster detektiert werden, das eine Absicht zum Ändern eines ersten virtuellen Merkmals, das dem dreidimensionalen virtuellen Objekt, das ergriffen wird, zugeordnet ist, angibt. Zum Beispiel kann das Muster ein Ergreifen und Ziehen, um das virtuelle Objekt dem Nutzer näher zu bringen, sein. In einigen Implementierungen definiert das erste Interaktionsmuster einen Ort, an dem mit dem Ändern des ersten virtuellen Merkmals begonnen werden soll, definiert das zweite Interaktionsmuster eine Richtung und eine Orientierung, die von dem zweiten virtuellen Merkmal entfernt sind, und enthält die geänderte Version des dreidimensionalen virtuellen Objekts eine skalierte Version des dreidimensionalen virtuellen Objekts. In einigen Implementierungen kann die skalierte Version von dem ersten virtuellen Merkmal zu dem zweiten virtuellen Merkmal skaliert werden. Das Skalieren kann durch die Vorrichtung 104, durch die Vorrichtung 108 oder durch eine andere Vorrichtung, die in Ansprechen auf den Empfang einer Bewegungseingabe virtuellen Inhalt in dem VR-Raum ändern kann, ausgeführt werden.
-
In einigen Implementierungen kann das Detektieren des ersten Interaktionsmusters das Detektieren einer ersten Eingabe, die einer ersten nachgeführten Vorrichtung zugeordnet ist, enthalten und enthält das Detektieren des zweiten Interaktionsmusters das Detektieren einer zweiten Eingabe, die einer zweiten nachgeführten Vorrichtung zugeordnet ist. Insbesondere kann die erste nachgeführte Vorrichtung der Controller 112 sein, während die zweite nachgeführte Vorrichtung der Controller 114 sein kann.
-
Im Block 606 kann das System 100 ein zweites Interaktionsmuster wie etwa ein zweites Hand- oder Controller-basiertes Ergreifen an dem virtuellen Objekt detektieren. Das zweite Interaktionsmuster kann eine Orientierung und eine Bewegung enthalten, die einer Änderung entsprechen, die an einem dem dreidimensionalen virtuellen Objekt zugeordneten zweiten virtuellen Merkmal ausgeführt werden soll. Zum Beispiel kann das zweite Interaktionsmuster das Ergreifen des virtuellen Objekts an einem zweiten Ort enthalten und kann das Muster eine Verdrehung, eine Drehung, ein Ziehen, ein Schieben oder eine andere Objektmanipulationsbewegung sein. Um das zweite Interaktionsmuster auszuführen, können ähnliche Vorrichtungen oder Nutzerkörperteile verwendet werden.
-
In Ansprechen auf das Detektieren des zweiten Interaktionsmusters kann das System 100 bei dem Block 608 bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster eine geänderte Version des dreidimensionalen virtuellen Objekts erzeugen. Zum Beispiel kann das System 100 die vom Nutzer empfangenen Interaktionen auf der Grundlage von Greiforten, Objekteinzelheiten usw. ausführen.
-
Im Block 610 kann das System 100 in der Nutzerschnittstelle in der Head-Mounted-Display-Vorrichtung die geänderte Version des dreidimensionalen virtuellen Objekts bereitstellen. In einigen Implementierungen wird die geänderte Version des dreidimensionalen virtuellen Objekts in der virtuellen Umgebung erzeugt und gerendert, während die Bewegung stattfindet. In einigen Implementierungen wird die geänderte Version des dreidimensionalen virtuellen Objekts von dem ersten virtuellen Merkmal an eine neue Position, Orientierung und Skale des dreidimensionalen virtuellen Objekts eingestellt und von dem zweiten virtuellen Merkmal an eine neue Position, Orientierung und Skale des dreidimensionalen virtuellen Objekts eingestellt. Die geänderte Version kann innerhalb eines Nutzerblickfelds in der virtuellen Umgebung angezeigt werden. Allgemein können die Änderungen durch das VR-System 108 innerhalb der VR-Anwendung 110 auf der Grundlage einer detektierten Eingabe von anderer Hardware, die mit dem System 108 und/oder mit der Anwendung 110 über eine Schnittstelle verbunden ist, ausgeführt werden.
-
In einigen Implementierungen kann das Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster das Dehnen und Verdrehen des dreidimensionalen virtuellen Objekts enthalten. Das Dehnen kann z. B. das Definieren eines ersten Ankerpunkts und eines zweiten Ankerpunkts an dem dreidimensionalen virtuellen Objekt und das Dehnen in einer zwischen dem ersten Ankerpunkt und dem zweiten Ankerpunkt gebildeten Ebene enthalten. In einigen Implementierungen enthält das Verdrehen des dreidimensionalen virtuellen Objekts das Drehen des dreidimensionalen virtuellen Objekts im 3D-Raum bei dem ersten virtuellen Merkmal in einer ersten Eingangsebene und enthält das Drehen des dreidimensionalen virtuellen Objekts das Drehen des dreidimensionalen virtuellen Objekts im 3D-Raum bei dem zweiten virtuellen Merkmal von einer zweiten Eingangsebene in eine dritte Eingangsebene. Allgemein kann die erste Eingangsebene einer x-y-Koordinatenebene entsprechen, kann die zweite Eingangsebene einer y-z-Koordinatenebene entsprechen und kann die dritte Eingangsebene einer x-z-Koordinatenebene entsprechen. Jede Ebene kann ein dreidimensionaler Koordinatenraum sein.
-
In einigen Implementierungen kann der Prozess 600 das Erzeugen eines ersten Schnittpunkts bei dem ersten virtuellen Merkmal wenigstens teilweise auf der Grundlage der Detektion einer ersten nachgeführten Handbewegung, die durch eine linke Hand des Nutzers, die auf die virtuelle Umgebung zugreift, ausgeführt wird, enthalten. Falls der Nutzer z. B. mit seiner linken Hand danach greift, um ein virtuelles Objekt in dem VR-Raum zu ergreifen, kann das System 100 einen Schnitt der Hand und des virtuellen Objekts bestimmen und einen Schnittpunkt erzeugen. Der Schnittpunkt kann an dem virtuellen Objekt gezeigt oder auf andere Weise angegeben werden (z. B. Audiorückkopplung, Tastrückkopplung usw.). In einigen Implementierungen wird der Schnittpunkt zur Verwendung in anderen Berechnungen und Operationen, die der Nutzer an dem virtuellen Objekt ausführen kann, berechnet. Ähnlich kann das System 100 wenigstens teilweise auf der Grundlage der Detektion einer zweiten nachgeführten Handbewegung, die durch eine rechte Hand des Nutzers, der auf einen VR-Raum zugreift, ausgeführt wird, einen zweiten Schnittpunkt bei einem zweiten virtuellen Merkmal erzeugen. Zum Beispiel kann die zweite nachgeführte Handbewegung betreffen, dass der Nutzer dasselbe virtuelle Objekt, das seine linke Hand ergreift, ergreift. Nachdem beide Schnittpunkte erzeugt worden sind, kann das System 100 das dreidimensionale virtuelle Objekt in Übereinstimmung mit dem ersten und mit dem zweiten Interaktionsmuster ändern. Die Änderungen können wenigstens teilweise auf der Bestimmung beruhen, dass wenigstens eine in der ersten oder zweiten nachgeführten Handbewegung ausgeführte Geste eine Änderung der Orientierung ist, die dem dreidimensionalen virtuellen Objekt zugeordnet ist. Daraufhin kann das System 100 die wenigstens eine Geste ausführen, während es das dreidimensionale Objekt in Übereinstimmung mit einer anderen Geste ändert. Zum Beispiel kann das System 100 eine Drehänderung an dem virtuellen Objekt ausführen, während es ebenfalls den Ort, die Größe und/oder die Form des virtuellen Objekts ändert, falls die Nutzereingabe (z. B. Handbewegungen, Gesten, Controllergesten) angibt, dies zu tun.
-
In einigen Implementierungen kann der Prozess 600 das Erzeugen eines Ankerpunkts, der dafür konfiguriert ist, einen Abschnitt des dreidimensionalen virtuellen Objekts bei dem ersten Schnittpunkt im dreidimensionalen Raum einzufrieren, enthalten, während das dreidimensionale Objekt bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster geändert wird. Zum Beispiel kann das System 100 einen Abschnitt des virtuellen Objekts einfrieren oder isolieren, um das Objekt an dem Abschnitt zu befestigen, während es andere Abschnitte des Objekts ändert. Die Änderungen können z. B. die Form, die Skale, die Orientierung betreffen. Dieses Merkmal kann dafür fungieren, einen Abschnitt des virtuellen Objekts in der richtigen Stellung zu halten, während der Nutzer mit einer oder beiden Händen interagiert, um andere visuelle Änderungen oder Effekte an dem Objekt auszuführen.
-
In einigen Implementierungen enthält das Erzeugen eines Ankerpunkts das Definieren wenigstens eines Orts an dem dreidimensionalen virtuellen Objekt als einen wählbaren Skalierungsort. Der wählbare Skalierungsort kann dafür betreibbar sein, eine nutzerinitiierte Eingabe zu empfangen, die wenigstens eine Geste enthält, die Anweisungen zum Skalieren des dreidimensionalen virtuellen Objekts angibt.
-
In einigen Implementierungen kann der Prozess 600 das Ermöglichen einer Betriebsart der gleichförmigen Skalierung in Ansprechen auf das Detektieren, dass das erste Interaktionsmuster in derselben Achse der drei Dimensionen wie das zweite Interaktionsmuster ausgeführt wird, enthalten. Die Betriebsart der gleichförmigen Skalierung kann dafür konfiguriert sein, das dreidimensionale virtuelle Objekt in Übereinstimmung mit dem ersten und mit dem zweiten Interaktionsmuster in drei Dimensionen gleichmäßig zu skalieren.
-
7 ist ein Ablaufplan, der schematisch eine Ausführungsform eines Prozesses 700 zum Ändern von 3D-Bildinhalt in einem VR-Raum zeigt. Im Block 702 kann das System 100 in einer dreidimensionalen virtuellen Umgebung ein erstes Interaktionsmuster, das durch eine erste elektronische Vorrichtung ausgeführt wird, detektieren. Die elektronische Vorrichtung kann z. B. ein Controller oder eine Mobilvorrichtung und dergleichen sein. Das erste Interaktionsmuster kann eine Angabe zum Ändern eines ersten virtuellen Musters, das einem dreidimensionalen virtuellen Objekt, das in der virtuellen Umgebung gerendert wird, zugeordnet ist, enthalten. Das virtuelle Merkmal kann Abschnitte des virtuellen Objekts und/oder Abschnitte der Umgebung, die das virtuelle Objekt umgeben, einzeln oder insgesamt betreffen. Ähnlich dem Prozess 600 können die Vorrichtungen Controller 112 oder 114, eine Mobilvorrichtung 102 oder eine andere detektierbare und nachführbare Vorrichtung, die zur Verwendung in einem VR-Raum konfiguriert ist, betreffen.
-
Im Block 704 kann der Prozess 700 in der dreidimensionalen virtuellen Umgebung ein zweites Interaktionsmuster, das durch eine zweite elektronische Vorrichtung ausgeführt wird, detektieren. Die zweite elektronische Vorrichtung kann ein ähnlicher oder ein anderer Vorrichtungstyp als die erste elektronische Vorrichtung sein. Das zweite Interaktionsmuster kann eine Orientierung und eine Bewegung enthalten, die einer Änderung entsprechen, die an einem dem dreidimensionalen virtuellen Objekt zugeordneten zweiten virtuellen Merkmal ausgeführt werden soll. Zum Beispiel kann das zweite Interaktionsmuster eine Verdrehung und Kippung, eine Schwenkung, ein Vollkreis, ein Herumschwenken oder eine andere Geste, die durch einen Nutzer, der eine elektronische Vorrichtung handhabt, ausgeführt werden kann, sein.
-
In Ansprechen auf das Detektieren des zweiten Interaktionsmusters kann der Prozess 700 im Block 706 das Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster enthalten. Zum Beispiel kann das System 100 eine oder mehrere Gesten an dem virtuellen Objekt ausführen, um die geänderte Version des Objekts zu erzeugen.
-
Im Block 708 kann das System 100 in einer Nutzerschnittstelle einer Head-Mounted-Display-Vorrichtung die geänderte Version des dreidimensionalen virtuellen Objekts in Übereinstimmung mit dem detektierten ersten Interaktionsmuster und mit dem detektierten zweiten Interaktionsmuster rendern. Das Rendern kann ausgeführt werden, während die Änderungen an dem Objekt ausgeführt werden. Dementsprechend kann der Nutzer seine Eingabe sehen, während die Änderungen an der virtuellen Vorrichtung auf der Grundlage der durch Hände (Controller) vorgenommenen Interaktionsmusterbewegungen ausgeführt werden.
-
In einigen Implementierungen kann der Prozess 700 das Ermöglichen einer Betriebsart der gleichförmigen Skalierung in Ansprechen auf das Detektieren, dass die erste elektronische Vorrichtung der zweiten elektronischen Vorrichtung gegenüberliegend orientiert ist, enthalten. Zum Beispiel kann das System 100 detektieren, dass irgendwelche der nachgeführten Controller, Hände, Finger, Daumen ausgerichtet sind, um die Betriebsart der gleichförmigen Skalierung auszulösen. Diese Betriebsart kann eine Skalierungsbetriebsart sein, die dafür konfiguriert ist, das dreidimensionale virtuelle Objekt in Übereinstimmung mit dem detektierten ersten Interaktionsmuster und mit dem detektierten zweiten Interaktionsmuster in drei Dimensionen gleichmäßig zu skalieren. In einigen Implementierungen können mit diesem Merkmal alle sechs Freiheitsgrade ermöglicht werden.
-
Allgemein kann das Detektieren, dass die erste elektronische Vorrichtung der zweiten elektronischen Vorrichtung gegenüberliegend orientiert ist, das Detektieren einer Anfangsposition und Anfangsorientierung der zweiten elektronischen Vorrichtung relativ zu der ersten elektronischen Vorrichtung, das Nachführen wenigstens einer durch die zweite elektronische Vorrichtung relativ zu der ersten elektronischen Vorrichtung ausgeführten Geste und das Detektieren einer Ausrichtung der zweiten elektronischen Vorrichtung auf die erste elektronische Vorrichtung enthalten. Das Detektieren der Ausrichtung kann das Ausführen eines Vergleichs der Anfangsposition und Anfangsorientierung der zweiten elektronischen Vorrichtung relativ zu der ersten elektronischen Vorrichtung mit einer detektierten aktualisierten Position und Orientierung der ersten oder der zweiten elektronischen Vorrichtung enthalten. Die detektierte aktualisierte Position kann auf der wenigstens einen Geste beruhen.
-
In einigen Implementierungen enthält das Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal das Bereitstellen einer Sichtangabe in der virtuellen Umgebung und die an dem dreidimensionalen virtuellen Objekt befestigt ist. Die Sichtangabe kann einen oder mehrere Ankerpunkte, die Einschnapprahmen definieren, enthalten. Die Einschnapprahmen können dafür konfiguriert sein, wenigstens ein Koordinatensystem auszuwählen, in dem das virtuelle Objekt in drei Dimensionen verschoben und gedreht werden soll.
-
In einigen Implementierungen kann der Prozess 700 das Definieren eines Drehwegs zum Drehen des dreidimensionalen virtuellen Objekts um einen Ort, dem das erste virtuelle Merkmal zugeordnet ist, in Ansprechen auf das Detektieren des zweiten Interaktionsmusters enthalten. Zum Beispiel kann das System 100 eine durch das zweite Interaktionsmuster angegebene Drehbewegung nachführen und detektieren und einen Weg definieren, auf dem das virtuelle Objekt gedreht werden soll. Ein solcher Weg kann als eine Eigenschaft, die dargestellt werden kann, sollte der Nutzer eine bestimmte Drehgeste ausführen, visuell angegeben werden oder einfach an dem virtuellen Objekt befestigt sein.
-
8 ist ein Ablaufplan, der graphisch eine Ausführungsform eines Prozesses 800 zum Erzeugen eines Modells eines virtuellen Objekts zeigen. Im Block 802 kann der Prozess 800 das Erhalten von Merkmalsinformationen über ein virtuelles Objekt mit einem oder mit mehreren optischen Sensoren einer Computervorrichtung enthalten. Zum Beispiel kann das System 100 dem virtuellen Objekt zugeordnete Merkmale/Charakteristiken erhalten, die eine Planarität und/oder eine Dimension und/oder eine Fläche und/oder eine Orientierung und/oder eine Ecke und/oder eine Begrenzung und/oder eine Kontur und/oder eine Oberflächentextur für das virtuelle Objekt enthalten.
-
Im Block 804 enthält der Prozess 800 das Erzeugen eines dreidimensionalen virtuellen Modells des virtuellen Objekts auf der Grundlage der mehreren Charakteristiken durch einen Prozessor der Computervorrichtung. Das virtuelle Modell kann definiert werden, um das virtuelle Objekt zu definieren, kann aber ebenfalls hinsichtlich der Interpretation des Bestimmens, wie das Objekt in Übereinstimmung mit einer möglichen Nutzereingabe/möglichen Nutzergesten zu ändern ist, definiert werden. Das dreidimensionale virtuelle Modell kann durch das VR-System 108 und durch die VR-Anwendung 110 erzeugt werden.
-
Im Block 806 enthält der Prozess 800 das Verarbeiten der mehreren Charakteristiken und des dreidimensionalen virtuellen Modells, um in dem dreidimensionalen virtuellen Modell mehrere Ankerpunkte zu definieren, durch den Prozessor. Die mehreren Ankerpunkte können jeweils mehreren wählbaren Gebieten an dem virtuellen Objekt zugeordnet werden. Wie oben ausführlich beschrieben ist, können Ankerpunkte wählbare Abschnitte des virtuellen Objekts, verbindbare Abschnitte des virtuellen Objekts und/oder Definitionen hinsichtlich Bewegungsebenen betreffen.
-
Im Block 808 enthält der Prozess 800 das Korrelieren der Eingabe für jedes Gebiet in den mehreren Gebieten in Ansprechen auf den Empfang einer Eingabe, die wenigstens zwei der mehreren Gebiete auswählt. Die Korrelation der wenigstens zwei Eingaben kann verwendet werden, um das virtuelle Objekt richtig zu ändern. Das VR-System 108 kann auf irgendeiner Anzahl von Servern und/oder Prozessoren zugreifen, um Berechnungen zum Korrelieren einer bestimmten Eingabe mit bestimmten Gebieten auszuführen.
-
Im Block 810 enthält der Prozess 800 das Ändern einer Größe und Orientierung des virtuellen Objekts auf der Grundlage der Korrelation und der mehreren Charakteristiken, die dem virtuellen Objekt zugeordnet sind. Im Block 812 enthält der Prozess 800 das Rendern und Anzeigen eines geänderten virtuellen Objekts in dem dreidimensionalen virtuellen Modell. In einigen Implementierungen kann der Prozess 800 das Erzeugen einer Umgebung einer virtuellen Realität, die in der Umgebung einer virtuellen Realität das dreidimensionale virtuelle Modell des virtuellen Objekts enthält, enthalten.
-
In einigen Implementierungen kann der Prozess 800 das automatische Skalieren des virtuellen Objekts während des Drehens des virtuellen Objekts in der erzeugten Umgebung einer virtuellen Realität in drei Dimensionen auf der Grundlage einer zweihändigen Interaktion, die durch den Nutzer ausgeführt wird, und der detektierten mehreren Charakteristiken, die dem virtuellen Objekt zugeordnet sind, enthalten. Wie oben ausführlich beschrieben wurde, kann eine solche automatische Skalierung während der Drehung unter Verwendung berechneter Vektoren bereitgestellt werden.
-
9 zeigt ein Beispiel einer allgemeinen Computervorrichtung 900 und einer allgemeinen Mobilcomputervorrichtung 950, die mit den hier beschriebenen Techniken verwendet werden können. Die Computervorrichtung 900 enthält einen Prozessor 902, einen Datenspeicher 904, eine Speichervorrichtung 906, eine schnelle Schnittstelle 908, die mit dem Datenspeicher 904 und mit schnellen Erweiterungsanschlüssen 910 verbindet, und eine langsame Schnittstelle 912, die mit dem langsamen Bus 914 und mit der Speichervorrichtung 906 verbindet. Alle Komponenten 902, 904, 906, 908, 910 und 912 sind unter Verwendung verschiedener Busse miteinander verbunden und können nach Bedarf auf einem gemeinsamen Motherboard oder auf andere Weise montiert sein. Der Prozessor 902 kann Anweisungen zur Ausführung innerhalb der Computervorrichtung 900 verarbeiten, die in dem Datenspeicher 904 oder in der Speichervorrichtung 906 gespeicherte Anweisungen enthalten, um auf einer externen Eingabe/Ausgabe-Vorrichtung wie etwa einer mit der schnellen Schnittstelle 908 gekoppelten Anzeige 916 graphische Informationen für eine GUI anzuzeigen. In anderen Implementierungen können nach Bedarf mehrere Prozessoren und/oder mehrere Busse zusammen mit mehreren Datenspeichern und Typen von Datenspeichern verwendet sein. Außerdem können mit jeder Vorrichtung mehrere Computervorrichtungen 900 verbunden sein, die (z. B. als eine Server-Bank, als eine Gruppe von Blade-Servern oder als ein Mehrprozessorsystem) Teile der notwendigen Operationen bereitstellen.
-
Der Datenspeicher 904 speichert Informationen innerhalb der Computervorrichtung 900. In einer Implementierung ist der Datenspeicher 904 eine oder mehrere flüchtige Speichereinheiten. In einer anderen Implementierung ist der Datenspeicher 904 eine oder mehrere nichtflüchtige Datenspeichereinheiten. Außerdem kann der Datenspeicher 904 eine andere Form eines computerlesbaren Mediums wie etwa eine magnetische oder optische Platte sein.
-
Die Speichervorrichtung 906 kann einen Massenspeicher für die Computervorrichtung 900 bereitstellen. In einer Implementierung kann die Speichervorrichtung 906 ein computerlesbares Medium wie etwa eine Diskettenvorrichtung, eine Festplattenvorrichtung, eine optische Plattenvorrichtung oder eine Bandvorrichtung, ein Flash-Datenspeicher oder eine andere ähnliche Festkörperdatenspeichervorrichtung oder eine Anordnung von Vorrichtungen einschließlich von Vorrichtungen in einem Speicherbereichsnetz oder in anderen Konfigurationen sein oder enthalten. In einem Informationsträger kann ein Computerprogrammprodukt konkret verkörpert sein. Das Computerprogrammprodukt kann außerdem Anweisungen enthalten, die, wenn sie ausgeführt werden, ein oder mehrere Verfahren wie etwa die oben Beschriebenen ausführen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium wie etwa der Datenspeicher 904, die Speichervorrichtung 906 oder der Datenspeicher im Prozessor 902.
-
Der schnelle Controller 908 managt bandbreitenintensive Operationen für die Computervorrichtung 900, während der langsame Controller 912 weniger bandbreitenintensive Operationen managt. Diese Zuordnung von Funktionen ist nur beispielhaft. In einer Implementierung ist der schnelle Controller 908 mit dem Datenspeicher 904, mit der Anzeige 916 (z. B. über einen Graphikprozessor oder Graphikbeschleuniger) und mit schnellen Erweiterungsanschlüssen 910, die verschiedene Erweiterungskarten (nicht gezeigt) aufnehmen können, gekoppelt. In der Implementierung ist der langsame Controller 912 mit der Speichervorrichtung 906 und mit dem langsamen Erweiterungsanschluss 914 gekoppelt. Der langsame Erweiterungsanschluss, der verschiedene Kommunikationsanschlüsse (z. B. USB, Bluetooth, Ethernet, drahtloses Ethernet) enthalten kann, kann mit einer oder mit mehreren Eingabe/Ausgabe-Vorrichtungen wie etwa einer Tastatur, einer Zeigevorrichtung, einem Scanner oder, z. B. über einen Netzadapter, mit einer Vernetzungsvorrichtung wie etwa einem Switch oder Router gekoppelt sein.
-
Wie in der Figur gezeigt ist, kann die Computervorrichtung 900 in einer Anzahl verschiedener Formen implementiert sein. Zum Beispiel kann sie als ein Standardserver 920 oder mehrfach in einer Gruppe solcher Server implementiert sein. Sie kann ebenfalls als Teil eines Rack-Server-Systems 924 implementiert sein. Außerdem kann sie in einem Personal Computer wie etwa in einem Laptopcomputer 922 implementiert sein. Alternativ können Komponenten von der Computervorrichtung 900 mit anderen Komponenten in einer Mobilvorrichtung (nicht gezeigt) wie etwa der Vorrichtung 950 kombiniert sein. Jede dieser Vorrichtungen kann eine oder mehrere Computervorrichtungen 900, 950 enthalten, wobei ein Gesamtsystem aus mehreren Computervorrichtungen 900, 950, die miteinander kommunizieren, bestehen kann.
-
Die Computervorrichtung 950 enthält unter anderen Komponenten einen Prozessor 952, einen Datenspeicher 964, eine Eingabe/Ausgabe-Vorrichtung wie etwa eine Anzeige 954, eine Kommunikationsschnittstelle 966 und einen Transceiver 968. Außerdem kann die Vorrichtung 950 mit einer Speichervorrichtung wie etwa einem Mikrodrive oder mit einer anderen Vorrichtung versehen sein, um zusätzlichen Speicher bereitzustellen. Alle Komponenten 950, 952, 964, 954, 966 und 968 sind unter Verwendung verschiedener Busse miteinander verbunden und mehrere der Komponenten können nach Bedarf auf einem gemeinsamen Motherboard oder auf andere Weise montiert sein.
-
Der Prozessor 952 kann innerhalb der Computervorrichtung 950 Anweisungen einschließlich Anweisungen, die in dem Datenspeicher 964 gespeichert sind, ausführen. Der Prozessor kann als ein Chipsatz von Chips, die getrennte und mehrere analoge und digitale Prozessoren enthalten, implementiert sein. Der Prozessor kann z. B. die Koordination der anderen Komponenten der Vorrichtung 950 wie etwa die Steuerung von Nutzerschnittstellen, durch die Vorrichtung 950 ausgeführter Anwendungen und der drahtlosen Kommunikation durch die Vorrichtung 950 bereitstellen.
-
Der Prozessor 952 kann über die Steuerschnittstelle 958 und über die Anzeigeschnittstelle 956, die mit einer Anzeige 954 gekoppelt ist, mit einem Nutzer kommunizieren. Die Anzeige 954 kann z. B. eine TFT-LCD-Anzeige (Dünnfilmtransistor-Flüssigkristallanzeige) oder eine OLED-Anzeige (Anzeige mit organischen Leuchtdioden) oder eine andere geeignete Anzeigetechnologie sein. Die Anzeigeschnittstelle 956 kann eine geeignete Schaltungsanordnung umfassen, um die Anzeige 954 zum Übergeben graphischer und anderer Informationen an einen Nutzer anzusteuern. Die Steuerschnittstelle 958 kann von einem Nutzer Befehle empfangen und sie zur Vorlage an den Prozessor 952 umwandeln. Außerdem kann eine externe Schnittstelle 962 in Kommunikation mit dem Prozessor 952 vorgesehen sein, um eine Nahbereichskommunikation der Vorrichtung 950 mit anderen Vorrichtungen zu ermöglichen. In einigen Implementierungen kann die externe Schnittstelle 962 z. B. eine verdrahtete Kommunikation oder in anderen Implementierungen eine drahtlose Kommunikation bereitstellen, wobei ebenfalls mehrere Schnittstellen verwendet sein können.
-
Der Datenspeicher 964 speichert Informationen innerhalb der Computervorrichtung 950. Der Datenspeicher 964 kann als eine oder mehrere eines computerlesbaren Mediums oder computerlesbarer Medien, einer oder mehrerer flüchtiger Datenspeichereinheiten oder einer oder mehrerer nichtflüchtiger Datenspeichereinheiten implementiert sein. Außerdem kann ein Erweiterungsspeicher 974 vorgesehen sein und über die Erweiterungsschnittstelle 972, die z. B. eine SIMM-Kartenschnittstelle (Single-In-Line-Memory-Module-Kartenschnittstelle) enthalten kann, mit der Vorrichtung 950 verbunden sein. Ein solcher Erweiterungsdatenspeicher 974 kann zusätzlichen Speicherplatz für die Vorrichtung 950 bereitstellen oder kann ebenfalls Anwendungen oder andere Informationen für die Vorrichtung 950 speichern. Genauer kann der Erweiterungsdatenspeicher 974 Anweisungen enthalten, um die oben beschriebenen Prozesse auszuführen oder zu ergänzen, wobei ebenfalls sichere Informationen enthalten kann. Somit kann der Erweiterungsspeicher 974 z. B. ein Sicherheitsmodul für die Vorrichtung 950 bereitstellen und mit Anweisungen programmiert sein, die die sichere Verwendung der Vorrichtung 950 zulassen. Außerdem können sichere Anwendungen über die SIMM-Karten zusammen mit zusätzlichen Informationen wie etwa dem Anordnen von Identifizierungsinformationen in der SIMM-Karte auf nicht zu hackende Weise vorgesehen sein.
-
Wie in Folgenden diskutiert ist, kann der Datenspeicher z. B. Flash-Datenspeicher und/oder NVRAM-Datenspeicher enthalten. In einigen Implementierungen ist ein Computerprogrammprodukt in einem Informationsträger konkret verkörpert. Das Computerprogrammprodukt enthält Anweisungen, die, wenn sie ausgeführt werden, ein oder mehrere Verfahren wie etwa die oben Beschriebenen ausführen. Der Informationsträger ist ein computer- oder maschinenlesbares Medium wie etwa der Datenspeicher 964, der Erweiterungsdatenspeicher 974 oder der Datenspeicher in dem Prozessor 952, der z. B. über den Transceiver 968 oder über eine externe Schnittstelle 962 empfangen werden kann.
-
Die Vorrichtung 950 kann über eine Kommunikationsschnittstelle 966, die bei Bedarf eine digitale Signalverarbeitungsschaltungsanordnung enthalten kann, drahtlos kommunizieren. Die Kommunikationsschnittstelle 966 kann Kommunikationen gemäß verschiedenen Betriebsarten oder Protokollen wie etwa u. a. GSM-Sprachanrufe, SMS-, EMS- oder MMS-Mitteilungsübermittlung, CDMA, TDMA, PDC, WCDMA, CDMA2000 oder GPRS bereitstellen. Diese Kommunikation kann z. B. über den Funkfrequenz-Transceiver 968 stattfinden. Außerdem kann eine kurzreichweitige Kommunikation wie etwa unter Verwendung von Bluetooth, Wi-Fi oder eines anderen solchen Transceivers (nicht gezeigt) stattfinden. Außerdem kann das GPS-Empfängermodul (Empfängermodul des globalen Positionsbestimmungssystems) 970 zusätzliche navigations- und ortsbezogene drahtlose Daten für die Vorrichtung 950 bereitstellen, die nach Bedarf durch auf der Vorrichtung 950 ausgeführte Anwendungen verwendet werden können.
-
Außerdem kann die Vorrichtung 950 unter Verwendung eines Audio-Codec 960, der gesprochene Informationen von einem Nutzer empfangen kann und sie in nutzbare digitale Informationen umsetzen kann, hörbar kommunizieren. Der Audio-Codec 960 kann gleichfalls hörbaren Schall für einen Nutzer wie etwa über einen Lautsprecher z. B. in einem Kopfsprechhörer der Vorrichtung 950 erzeugen. Dieser Schall kann Schall von Sprachtelephonieanrufen enthalten, kann aufgezeichneten Schall (z. B. Sprachnachrichten, Musikdateien usw.) enthalten und kann außerdem durch auf der Vorrichtung 950 arbeitende Anwendungen erzeugten Schall enthalten.
-
Wie in der Figur gezeigt ist, kann die Computervorrichtung 950 in einer Anzahl verschiedener Formen implementiert sein. Zum Beispiel kann sie als ein Zellentelephon 980 implementiert sein. Außerdem kann sie als Teil eines Smartphones 982, eines Personal Digital Assistants oder einer anderen ähnlichen Mobilvorrichtung implementiert sein.
-
Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können in einer digitalen elektronischen Schaltungsanordnung, in einer integrierten Schaltungsanordnung, in speziell entworfenen ASICs (anwendungsspezifischen integrierten Schaltungen), in Computerhardware, in Computerfirmware, in Computersoftware und/oder in Kombinationen davon verwirklicht werden. Diese verschiedenen Implementierungen können Implementierungen in einem oder in mehreren Computerprogrammen enthalten, die in einem programmierbaren System, das wenigstens einen programmierbaren Prozessor enthält, der ein Spezial- oder Universalprozessor sein kann, der dafür gekoppelt ist, von einem Speichersystem, wenigstens einer Eingabevorrichtung und wenigstens einer Ausgabevorrichtung Daten und Anweisungen zu empfangen und an sie zu senden, ausführbar und/oder interpretierbar sind.
-
Diese Computerprogramme (auch als Programme, Software, Softwareanwendungen oder Code bekannt) enthalten Maschinenanweisungen für einen programmierbaren Prozessor und können in einer höheren prozeduralen und/oder objektorientierten Programmiersprache und/oder in einer Assembler-/Maschinensprache implementiert sein. Wie die Begriffe ”maschinenlesbares Medium”, ”computerlesbares Medium” hier verwendet sind, beziehen sie sich auf irgendein Computerprogrammprodukt, auf irgendein Gerät und/oder auf irgendeine Vorrichtung (z. B. magnetische Platten, optische Platten, Datenspeicher, programmierbare Logikvorrichtungen (PLDs)), die verwendet werden, um Maschinenanweisungen und/oder Daten für einen programmierbaren Prozessor bereitzustellen, einschließlich eines maschinenlesbaren Mediums, das Maschinenanweisungen als ein maschinenlesbares Signal empfängt. Der Begriff ”maschinenlesbares Signal” bezieht sich auf irgendein Signal, das verwendet wird, um Maschinenanweisungen und/oder Daten für einen programmierbaren Prozessor bereitzustellen.
-
Um eine Interaktion mit einem Nutzer bereitzustellen, können die hier beschriebenen Systeme und Techniken in einem Computer mit einer Anzeigevorrichtung (z. B. einem CRT-Monitor (Katodenstrahlröhrenmonitor) oder LCD-Monitor (Flüssigkristallanzeigemonitor)) zum Anzeigen von Informationen für den Nutzer und mit einer Tastatur und mit einer Zeigevorrichtung (z. B. einer Maus oder einem Trackball), durch die der Nutzer eine Eingabe in den Computer bereitstellen kann, implementiert werden. Um eine Interaktion mit einem Nutzer bereitzustellen, können ebenfalls andere Arten von Vorrichtungen verwendet werden; z. B. kann die für den Nutzer bereitgestellte Rückkopplung irgendeine Form einer sensorischen Rückkopplung (z. B. Sichtrückkopplung, Hörrückkopplung oder Tastrückkopplung) sein; und kann eine Eingabe von dem Nutzer in irgendeiner Form einschließlich einer akustischen Eingabe, einer Spracheingabe oder einer Tasteingabe empfangen werden.
-
Die hier beschriebenen Systeme und Techniken können in einem Computersystem implementiert werden, das eine Backend-Komponente (z. B. als einen Datenserver) enthält oder das eine Middleware-Komponente (z. B. einen Anwendungsserver) enthält oder das eine Frontendkomponente (z. B. einen Client-Computer, der eine graphische Nutzerschnittstelle oder einen Web-Browser besitzt, über die/den ein Nutzer mit einer Implementierung des Systems und mit hier beschriebenen Techniken interagieren kann) oder irgendeine Kombination solcher Backend-, Middleware- oder Frontendkomponenten enthält. Die Komponenten des Systems können durch irgendeine Form oder durch irgendein Medium der digitalen Datenkommunikation (z. B. durch ein Kommunikationsnetz) miteinander verbunden sein. Beispiele für Kommunikationsnetze enthalten ein lokales Netz (”LAN”), ein Weitverkehrsnetz (”WAN”) und das Internet.
-
Das Computersystem kann Clients und Server enthalten. Ein Client und ein Server sind allgemein voneinander entfernt und interagieren üblicherweise über ein Kommunikationsnetz. Die Beziehung von Client und Server entsteht mittels Computerprogrammen, die auf den jeweiligen Computern ausgeführt werden und die eine Client-Server-Beziehung zueinander besitzen.
-
In einigen Implementierungen können die in 9 gezeigte Computervorrichtung Sensoren enthalten, die über eine Schnittstelle mit einer virtuellen Realität (VR-Headset 990) verbunden sind. Zum Beispiel können ein oder mehrere Sensoren, die in einer Computervorrichtung 950 oder in einer anderen in 9 gezeigten Computervorrichtung enthalten sind, eine Eingabe für das VR-Headset 990 bereitstellen oder allgemein eine Eingabe in einen VR-Raum bereitstellen. Die Sensoren können einen Berührungsbildschirm, Beschleunigungsmesser, Gyroskope, Drucksensoren, biometrische Sensoren, Temperatursensoren, Feuchtigkeitssensoren und Umgebungslichtsensoren enthalten, sind aber nicht beschränkt auf. Die Computervorrichtung 950 kann die Sensoren verwenden, um eine absolute Position und/oder eine detektierte Drehung der Computervorrichtung in dem VR-Raum zu bestimmen, die daraufhin als Eingabe in den VR-Raum verwendet werden kann. Zum Beispiel kann die Computervorrichtung 950 in den VR-Raum als ein virtuelles Objekt wie etwa als ein Controller, ein Laserpointer, eine Tastatur, eine Waffe usw. integriert sein. Das Positionieren der Computervorrichtung/des virtuellen Objekts durch den Nutzer, wenn sie bzw. es in den VR-Raum integriert ist, kann ermöglichen, dass der Nutzer die Computervorrichtung zum Betrachten des virtuellen Objekts in bestimmter Weise in dem VR-Raum positioniert. Zum Beispiel kann der Nutzer die Computervorrichtung so manipulieren, als ob sie ein tatsächlicher Laserpointer wäre, falls das virtuelle Objekt einen Laserpointer repräsentiert. Der Nutzer kann die Computervorrichtung nach links und rechts, nach oben und unten, auf einem Kreis usw. bewegen und die Vorrichtung auf ähnliche Weise wie die Verwendung eines Laserpointers verwenden.
-
In einigen Implementierungen können eine oder mehrere Eingabevorrichtungen, die an oder verbunden mit der Computervorrichtung 950 enthalten sind, als Eingabe in den VR-Raum verwendet werden. Die Eingabevorrichtungen können einen Berührungsbildschirm, eine Tastatur, einen oder mehrere Druckknöpfe, ein Trackpad, ein Touchpad, eine Zeigevorrichtung, eine Maus, einen Trackball, einen Joystick, eine Kamera, ein Mikrofon, einen Ohrkopfhörer oder Ohrhörer mit Eingabefunktionalität, einen Spielecontroller oder eine andere verbindbare Vorrichtung enthalten, sind darauf aber nicht beschränkt. Ein Nutzer, der mit einer Eingabevorrichtung interagiert, die an der Computervorrichtung 950 enthalten ist, wenn die Computervorrichtung in den VR-Raum integriert ist, kann veranlassen, dass in dem VR-Raum eine bestimmte Aktion stattfindet.
-
In einigen Implementierungen kann ein Berührungsbildschirm der Computervorrichtung 950 als ein Touchpad im VR-Raum gerendert werden. Ein Nutzer kann mit dem Berührungsbildschirm der Computervorrichtung 950 interagieren. Die Interaktionen werden z. B. in dem VR-Headset 990 als Bewegungen an dem gerenderten Touchpad in dem VR-Raum gerendert. Die gerenderten Bewegungen können Objekte in dem VR-Raum steuern.
-
In einigen Implementierungen können eine oder mehrere an der Computervorrichtung 950 enthaltene Ausgabevorrichtungen für den Nutzer des VR-Headsets 990 in dem VR-Raum eine Ausgabe und/oder Rückkopplung bereitstellen. Die Ausgabe und die Rückkopplung können visuell, tastbar oder hörbar sein. Die Ausgabe und/oder die Rückkopplung können Vibrationen, das Ein- und Ausschalten oder Blinken und/oder das Aufblitzen eines oder mehrerer Lichter oder Blitzlichter, das Ertönen eines Alarms, das Abspielen eines Pausenzeichens, das Abspielen eines Lieds und das Abspielen einer Audiodatei enthalten, sind darauf aber nicht beschränkt. Die Ausgabevorrichtungen können Vibrationsmotoren, Vibrationsspulen, piezoelektrische Vorrichtungen, elektrostatische Vorrichtungen, Leuchtdioden (LEDs), Blitzlichter und Lautsprecher enthalten, sind darauf aber nicht beschränkt.
-
In einigen Implementierungen kann die Computervorrichtung 950 als ein weiteres Objekt in einer mittels Computer erzeugten 3D-Umgebung erscheinen. Interaktionen mit der Computervorrichtung 950 durch den Nutzer (z. B. Drehen, Schütteln, Berühren eines Berührungsbildschirms, Wischen mit einem Finger über einen Berührungsbildschirm) können als Interaktionen mit dem Objekt in dem VR-Raum interpretiert werden. In dem Beispiel des Laserpointers in einem VR-Raum erscheint die Computervorrichtung 950 als ein virtueller Laserpointer in der mittels Computer erzeugten 3D-Umgebung. Während der Nutzer die Computervorrichtung 950 manipuliert, sieht der Nutzer die Bewegung des Laserpointers in dem VR-Raum. Der Nutzer empfängt von Interaktionen mit der Computervorrichtung 950 in dem VR-Raum an der Computervorrichtung 950 oder an dem VR-Headset 990 eine Rückkopplung.
-
In einigen Implementierungen können zusätzlich zu der Computervorrichtung eine oder mehrere Eingabevorrichtungen (z. B. eine Maus, eine Tastatur) in einer mittels Computer erzeugten 3D-Umgebung gerendert werden. Die gerenderten Eingabevorrichtungen (z. B. die gerenderte Maus, die gerenderte Tastatur) können so verwendet werden, wie sie in dem VR-Raum gerendert werden, um Objekte in dem VR-Raum zu steuern.
-
In einigen Implementierungen können die überall in dieser Offenbarung gezeigten Systeme wenigstens eine Computervorrichtung enthalten, die dafür konfiguriert ist, eine virtuelle Umgebung zu erzeugen. Die wenigstens eine Computervorrichtung kann einen Datenspeicher, der ausführbare Anweisungen enthält, und einen Prozessor, der dafür konfiguriert ist, die Anweisungen auszuführen, um zu veranlassen, dass die wenigstens eine Computervorrichtung eine Anzahl von Schritten ausführt, enthalten. Die Schritte können unter anderem das Erzeugen einer virtuellen Umgebung, die wenigstens ein dreidimensionales virtuelles Objekt enthält, innerhalb einer in einer Head-Mounted-Display-Vorrichtung bereitgestellten Nutzerschnittstelle enthalten. Die Eingaben können auf der Grundlage von Nutzerinteraktionen detektiert werden. Zum Beispiel kann die wenigstens eine Computervorrichtung ein erstes Interaktionsmuster und/oder ein zweites Interaktionsmuster detektieren. Das erste Interaktionsmuster kann eine Angabe zum Ändern eines ersten virtuellen Merkmals, das dem dreidimensionalen virtuellen Objekt zugeordnet ist, enthalten. Das zweite Interaktionsmuster kann eine Orientierung und eine Bewegung enthalten, die einer Änderung entsprechen, die an einem dem dreidimensionalen virtuellen Objekt zugeordneten zweiten virtuellen Merkmal ausgeführt werden soll. In Ansprechen auf das Detektieren des zweiten Interaktionsmusters kann die Computervorrichtung bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster eine geänderte Version des dreidimensionalen virtuellen Objekts erzeugen. Solche geänderten Versionen virtueller Objekte können in der Nutzerschnittstelle in der Head-Mounted-Display-Vorrichtung bereitgestellt werden. In einigen Implementierungen können die geänderten Versionen des dreidimensionalen virtuellen Objekts in der virtuellen Umgebung während die Bewegung stattfindet (z. B. in Echtzeit) erzeugt und gerendert werden. In einigen Implementierungen definiert das erste Interaktionsmuster einen Ort, an dem mit dem Ändern des ersten virtuellen Merkmals begonnen werden soll, während das zweite Interaktionsmuster eine Richtung und eine Orientierung, die von dem zweiten virtuellen Merkmal entfernt sind, definiert.
-
Die Computervorrichtung 900 soll verschiedene Formen digitaler Computer wie etwa Laptops, Desktops, Workstations, Personal Digital Assistants, Server, Blade-Server, Großrechner und andere geeignete Computer repräsentieren. Die Computervorrichtung 950 soll verschiedene Formen mobiler Vorrichtungen wie etwa Personal Digital Assistants, Zellentelephone, Smartphones und andere ähnliche Computervorrichtungen repräsentieren. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen sollen nur beispielhaft sein und sollen Implementierungen der in diesem Dokument beschriebenen und/oder beanspruchten Erfindungen nicht beschränken.
-
Weitere Implementierungen sind in den folgenden Beispielen zusammengefasst:
Beispiel 1: Computerimplementiertes Verfahren, das umfasst: Erzeugen einer virtuellen Umgebung, die innerhalb einer in einer Head-Mounted-Display-Vorrichtung bereitgestellten Nutzerschnittstelle wenigstens ein dreidimensionales virtuelles Objekt enthält; Detektieren eines ersten Interaktionsmusters, wobei das erste Interaktionsmuster eine Angabe zum Ändern eines ersten virtuellen Merkmals, das dem dreidimensionalen virtuellen Objekt zugeordnet ist, enthält; Detektieren eines zweiten Interaktionsmusters, wobei das zweite Interaktionsmuster eine Orientierung und eine Bewegung, die einer Änderung entsprechen, die an einem dem dreidimensionalen virtuellen Objekt zugeordneten zweiten virtuellen Merkmal ausgeführt werden soll, enthält; Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster in Ansprechen auf das Detektieren des zweiten Interaktionsmusters; und Bereitstellen der geänderten Version des dreidimensionalen virtuellen Objekts in der Nutzerschnittstelle in der Head-Mounted-Display-Vorrichtung.
-
Beispiel 2: Verfahren nach Beispiel 1, wobei die geänderte Version des dreidimensionalen virtuellen Objekts in der virtuellen Umgebung erzeugt und gerendert wird, während die Bewegung stattfindet.
-
Beispiel 3: Verfahren nach Beispiel 1 oder 2, wobei das erste Interaktionsmuster einen Ort definiert, an dem mit dem Ändern des ersten virtuellen Merkmals begonnen werden soll, das zweite Interaktionsmuster eine Richtung und eine Orientierung definiert, die von dem zweiten virtuellen Merkmal entfernt sind, und die geänderte Version des dreidimensionalen virtuellen Objekts eine skalierte Version des dreidimensionalen virtuellen Objekts enthält, wobei die skalierte Version von dem ersten virtuellen Merkmal zu dem zweiten virtuellen Merkmal skaliert wird.
-
Beispiel 4: Verfahren nach einem der Beispiele 1 bis 3, wobei die geänderte Version des dreidimensionalen virtuellen Objekts von dem ersten virtuellen Merkmal zu einer neuen Position, Orientierung und Skale des dreidimensionalen virtuellen Objekts eingestellt wird und von dem zweiten virtuellen Merkmal zu einer neuen Position, Orientierung und Skale des dreidimensionalen virtuellen Objekts eingestellt wird, wobei die geänderte Version innerhalb eines Nutzerblickfelds in der virtuellen Umgebung liegt.
-
Beispiel 5: Verfahren nach einem der Beispiele 1 bis 4, das ferner das Ermöglichen einer Betriebsart der gleichförmigen Skalierung in Ansprechen auf das Detektieren, dass das erste Interaktionsmuster in derselben Achse der drei Dimensionen wie das zweite Interaktionsmuster ausgeführt wird, umfasst, wobei die Betriebsart der gleichförmigen Skalierung dafür konfiguriert ist, das dreidimensionale virtuelle Objekt in Übereinstimmung mit dem ersten und mit dem zweiten Interaktionsmuster in drei Dimensionen gleichmäßig zu skalieren.
-
Beispiel 6: Verfahren nach einem der Beispiele 1 bis 5, wobei das Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster das Dehnen und Verdrehen des dreidimensionalen virtuellen Objekts enthält, wobei das Dehnen das Definieren eines ersten Ankerpunkts und eines zweiten Ankerpunkts an dem dreidimensionalen virtuellen Objekt und das Dehnen in einer zwischen dem ersten Ankerpunkt und dem zweiten Ankerpunkt gebildeten Ebene enthält.
-
Beispiel 7: Verfahren nach Beispiel 6, wobei das Verdrehen des dreidimensionalen virtuellen Objekts das Drehen des dreidimensionalen virtuellen Objekts im 3D-Raum bei dem ersten virtuellen Merkmal in einer ersten Eingangsebene enthält und das Drehen des dreidimensionalen virtuellen Objekts das Drehen des dreidimensionalen virtuellen Objekts im 3D-Raum bei dem zweiten virtuellen Merkmal von einer zweiten Eingangsebene in eine dritte Eingangsebene enthält, wobei die erste Eingangsebene einer X-Y-Koordinatenebene entspricht, wobei die zweite Eingangsebene einer Y-Z-Koordinatenebene entspricht und wobei die dritte Eingangsebene einer X-Z-Koordinatenebene entspricht, wobei jede Ebene eine eines dreidimensionalen Koordinatenraums ist.
-
Beispiel 8: Verfahren nach einem der Beispiele 1 bis 7, wobei das Detektieren des ersten Interaktionsmusters das Detektieren einer ersten Eingabe, die einer ersten nachgeführten Vorrichtung zugeordnet ist, enthält und das Detektieren des zweiten Interaktionsmusters das Detektieren einer zweiten Eingabe, die einer zweiten nachgeführten Vorrichtung zugeordnet ist, enthält.
-
Beispiel 9: Verfahren nach einem der Beispiele 1 bis 8, das ferner umfasst: Erzeugen eines ersten Schnittpunkts bei dem ersten virtuellen Merkmal wenigstens teilweise auf der Grundlage des Detektierens einer ersten nachgeführten Handbewegung, die durch eine linke Hand des Nutzers, der auf die virtuelle Umgebung zugreift, ausgeführt wird; Erzeugen eines zweiten Schnittpunkts bei dem zweiten virtuellen Merkmal wenigstens teilweise auf der Grundlage des Detektierens einer zweiten nachgeführten Handbewegung, die durch eine rechte Hand des Nutzers, der auf die virtuelle Umgebung zugreift, ausgeführt wird; und Ändern des dreidimensionalen virtuellen Objekts in Übereinstimmung mit dem ersten und mit dem zweiten Interaktionsmuster, wobei das Ändern wenigstens teilweise auf dem Bestimmen beruht, dass wenigstens eine Geste, die in der ersten oder in der zweiten nachgeführten Handbewegung ausgeführt wird, eine Änderung der Orientierung ist, die dem dreidimensionalen virtuellen Objekt zugeordnet ist, und Ausführen der wenigstens einen Geste, während das dreidimensionale Objekt in Übereinstimmung mit einer anderen Geste geändert wird.
-
Beispiel 10: Verfahren nach Beispiel 9, das ferner umfasst: Erzeugen eines Ankerpunkts, der dafür konfiguriert ist, einen Abschnitt des dreidimensionalen virtuellen Objekts bei dem ersten Schnittpunkt im dreidimensionalen Raum einzufrieren, während das dreidimensionale Objekt bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster geändert wird.
-
Beispiel 11: Verfahren nach Beispiel 10, wobei das Erzeugen eines Ankerpunkts das Definieren wenigstens eines Orts an dem dreidimensionalen virtuellen Objekt als einen wählbaren Skalierungsort umfasst, wobei der wählbare Skalierungsort zum Empfangen einer nutzerinitiierten Eingabe betreibbar ist, wobei die nutzerinitiierte Eingabe wenigstens eine Geste enthält, die Anweisungen zum Skalieren des dreidimensionalen virtuellen Objekts angibt.
-
Beispiel 12: Computerimplementiertes Verfahren, das umfasst: Detektieren eines ersten Interaktionsmusters, das durch eine erste elektronische Vorrichtung ausgeführt wird, in einer dreidimensionalen virtuellen Umgebung, wobei das erste Interaktionsmuster eine Angabe zum Ändern eines ersten virtuellen Merkmals, das einem dreidimensionalen virtuellen Objekt zugeordnet ist, das in der virtuellen Umgebung gerendert wird, enthält; Detektieren eines zweiten Interaktionsmusters, das durch eine zweite elektronische Vorrichtung ausgeführt wird, in der dreidimensionalen virtuellen Umgebung, wobei das zweite Interaktionsmuster eine Orientierung und eine Bewegung, die einer Änderung entsprechen, die an einem dem dreidimensionalen virtuellen Objekt zugeordneten zweiten virtuellen Merkmal ausgeführt werden soll, enthält; Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster in Ansprechen auf das Detektieren des zweiten Interaktionsmusters; und Rendern der geänderten Version des dreidimensionalen virtuellen Objekts in Übereinstimmung mit dem ersten Interaktionsmuster und mit dem zweiten Interaktionsmuster in einer Nutzerschnittstelle einer Head-Mounted-Display-Vorrichtung.
-
Beispiel 13: Verfahren nach Beispiel 12, das ferner das Ermöglichen einer Betriebsart der gleichförmigen Skalierung in Ansprechen auf das Detektieren, dass die erste elektronische Vorrichtung der zweiten elektronischen Vorrichtung gegenüberliegend orientiert ist, umfasst, wobei die Betriebsart der gleichförmigen Skalierung dafür konfiguriert ist, das dreidimensionale virtuelle Objekt in Übereinstimmung mit dem ersten Interaktionsmuster und mit dem zweiten Interaktionsmuster in drei Dimensionen gleichmäßig zu skalieren.
-
Beispiel 14: Verfahren nach Beispiel 13, wobei das Detektieren, dass die erste elektronische Vorrichtung der zweiten elektronischen Vorrichtung gegenüberliegend orientiert ist, enthält: Detektieren einer Anfangsposition und Anfangsorientierung der zweiten elektronischen Vorrichtung relativ zu der ersten elektronischen Vorrichtung; Nachführen wenigstens einer durch die zweite elektronische Vorrichtung relativ zu der ersten elektronischen Vorrichtung ausgeführten Geste; und Detektieren einer Ausrichtung der zweiten elektronischen Vorrichtung auf die erste elektronische Vorrichtung durch Vergleichen der Anfangsposition und Anfangsorientierung der zweiten elektronischen Vorrichtung relativ zu der ersten elektronischen Vorrichtung mit einer detektierten aktualisierten Position und detektierten aktualisierten Orientierung der ersten oder der zweiten elektronischen Vorrichtung, wobei die detektierte aktualisierte Position auf der wenigstens einen Geste beruht.
-
Beispiel 15: Verfahren nach einem der Beispiele 12 bis 14, wobei das Erzeugen einer geänderten Version des dreidimensionalen virtuellen Objekts bei dem ersten virtuellen Merkmal das Bereitstellen einer Sichtangabe in der virtuellen Umgebung, die an dem dreidimensionalen virtuellen Objekt befestigt ist, enthält, wobei die Sichtangabe mehrere Ankerpunkte enthält, die Einschnapprahmen definieren, die dafür konfiguriert sind, wenigstens ein Koordinatensystem auszuwählen, in dem das virtuelle Objekt in drei Dimensionen verschoben und gedreht werden soll.
-
Beispiel 16: Verfahren nach einem der Beispiele 12 bis 15, das ferner das Definieren eines Drehwegs zum Drehen des dreidimensionalen virtuellen Objekts um einen dem ersten virtuellen Merkmal zugeordneten Ort in Ansprechen auf das Detektieren des zweiten Interaktionsmusters umfasst.
-
Beispiel 17: System, das umfasst: wenigstens eine Computervorrichtung, die zum Erzeugen einer virtuellen Umgebung konfiguriert ist, wobei die wenigstens eine Computervorrichtung enthält: einen Datenspeicher, der ausführbare Anweisungen speichert; und einen Prozessor, der dafür konfiguriert ist, die Anweisungen auszuführen, um zu veranlassen, dass die wenigstens eine Computervorrichtung eine virtuelle Umgebung erzeugt, die innerhalb einer in einer Head-Mounted-Display-Vorrichtung bereitgestellten Nutzerschnittstelle wenigstens ein dreidimensionales virtuelles Objekt enthält; ein erstes Interaktionsmuster detektiert, wobei das erste Interaktionsmuster eine Angabe zum Ändern eines ersten virtuellen Merkmals, das dem dreidimensionalen virtuellen Objekt zugeordnet ist, enthält; ein zweites Interaktionsmuster detektiert, wobei das zweite Interaktionsmuster eine Orientierung und eine Bewegung, die einer Änderung entsprechen, die an einem dem dreidimensionalen virtuellen Objekt zugeordneten zweiten virtuellen Merkmal ausgeführt werden sollen, enthält; bei dem ersten virtuellen Merkmal in Übereinstimmung mit dem ersten Interaktionsmuster und bei dem zweiten virtuellen Merkmal in Übereinstimmung mit dem zweiten Interaktionsmuster in Ansprechen auf das Detektieren des zweiten Interaktionsmusters eine geänderte Version des dreidimensionalen virtuellen Objekts erzeugt; und die geänderte Version des dreidimensionalen virtuellen Objekts in der Nutzerschnittstelle in der Head-Mounted-Display-Vorrichtung bereitstellt.
-
Beispiel 18: System nach Beispiel 17, wobei die geänderte Version des dreidimensionalen virtuellen Objekts in der virtuellen Umgebung erzeugt und gerendert wird, während die Bewegung stattfindet.
-
Beispiel 19: System nach Beispiel 17 oder 18, wobei das erste Interaktionsmuster einen Ort definiert, an dem mit dem Ändern des ersten Merkmals begonnen werden soll, das zweite Interaktionsmuster eine Richtung und eine Orientierung definiert, die von dem zweiten virtuellen Merkmal entfernt sind, und wobei die geänderte Version des dreidimensionalen virtuellen Objekts eine skalierte Version des dreidimensionalen virtuellen Objekts enthält, wobei die skalierte Version von dem ersten virtuellen Merkmal zu dem zweiten virtuellen Merkmal skaliert wird.
-
Beispiel 20: System nach einem der Beispiele 17 bis 19, wobei die geänderte Version des dreidimensionalen virtuellen Objekts von dem ersten virtuellen Merkmal zu einer neuen Position, Orientierung und Skale des dreidimensionalen virtuellen Objekts eingestellt wird und von dem zweiten virtuellen Merkmal zu einer neuen Position, Orientierung und Skale des dreidimensionalen virtuellen Objekts eingestellt wird, wobei die geänderte Version innerhalb eines Nutzerblickfelds in der virtuellen Umgebung liegt.
-
Beispiel 21: System nach einem der Beispiele 17 bis 20, das ferner das Ermöglichen einer Betriebsart der gleichförmigen Skalierung in Ansprechen auf das Detektieren, dass das erste Interaktionsmuster in einer Ebene einer gemeinsamen Achse mit dem zweiten Interaktionsmuster ausgeführt wird, umfasst, wobei die Betriebsart der gleichförmigen Skalierung dafür konfiguriert ist, das dreidimensionale virtuelle Objekt in Übereinstimmung mit dem ersten und mit dem zweiten Interaktionsmuster in drei Dimensionen gleichmäßig zu skalieren.
-
Beispiel 22: Verfahren, das umfasst: Erhalten mehrerer Charakteristiken eines virtuellen Objekts mit einem oder mit mehreren optischen Sensoren einer Computervorrichtung; Erzeugen eines dreidimensionalen virtuellen Modells des virtuellen Objekts auf der Grundlage der mehreren Charakteristiken durch einen Prozessor der Computervorrichtung; Verarbeiten der mehreren Charakteristiken und des dreidimensionalen virtuellen Modells, um mehrere Ankerpunkte in dem dreidimensionalen virtuellen Modell zu definieren, durch den Prozessor, wobei die mehreren Ankerpunkte jeweils mehreren wählbaren Gebieten an dem virtuellen Objekt zugeordnet werden; Korrelieren der Eingabe für jedes Gebiet in den mehreren Gebieten in Ansprechen auf den Empfang einer Eingabe, die wenigstens zwei der mehreren Gebiete auswählt; Ändern einer Größe und Orientierung des virtuellen Objekts auf der Grundlage der Korrelation und der mehreren dem virtuellen Objekt zugeordneten Charakteristiken; und Rendern und Anzeigen eines geänderten virtuellen Objekts in dem dreidimensionalen virtuellen Modell.
-
Beispiel 23: Verfahren nach Beispiel 22, wobei die mehreren dem virtuellen Objekt zugeordneten Charakteristiken eine Planarität und/oder eine Dimension und/oder eine Fläche und/oder eine Orientierung und/oder eine Ecke und/oder eine Begrenzung und/oder eine Kontur und/oder eine Oberflächentextur für das virtuelle Objekt enthalten.
-
Beispiel 24: Verfahren nach Beispiel 22 oder 23, das ferner umfasst: Erzeugen einer Umgebung einer virtuellen Realität, die das dreidimensionale virtuelle Modell des virtuellen Objekts in der Umgebung einer virtuellen Realität enthält; und automatisches Skalieren des virtuellen Objekts, während das virtuelle Objekt in der erzeugten Umgebung einer virtuellen Realität in drei Dimensionen gedreht wird, auf der Grundlage einer zweihändigen Interaktion, die durch einen Nutzer ausgeführt wird, und mehrerer detektierter Charakteristiken, die dem virtuellen Objekt zugeordnet sind.
-
Es sind eine Anzahl von Ausführungsformen beschrieben worden. Dennoch können selbstverständlich verschiedene Änderungen vorgenommen werden, ohne von dem Erfindungsgedanken und von dem Schutzumfang der Beschreibung abzuweichen.
-
Außerdem erfordern die in den Figuren gezeigten Logikabläufe nicht die bestimmte gezeigte Reihenfolge oder laufende Folge, um gewünschte Ergebnisse zu erzielen. Außerdem können andere Schritte vorgesehen sein oder können Schritte aus den beschriebenen Abläufen weggelassen werden und können andere Komponenten zu den beschriebenen Systemen hinzugefügt oder von ihnen entfernt werden. Dementsprechend liegen andere Ausführungsformen im Schutzumfang der folgenden Ansprüche.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-