DE202016008297U1 - Zweihändige Objektmanipulationen in der virtuellen Realität - Google Patents

Zweihändige Objektmanipulationen in der virtuellen Realität Download PDF

Info

Publication number
DE202016008297U1
DE202016008297U1 DE202016008297.4U DE202016008297U DE202016008297U1 DE 202016008297 U1 DE202016008297 U1 DE 202016008297U1 DE 202016008297 U DE202016008297 U DE 202016008297U DE 202016008297 U1 DE202016008297 U1 DE 202016008297U1
Authority
DE
Germany
Prior art keywords
virtual object
virtual
interaction pattern
dimensional virtual
dimensional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202016008297.4U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202016008297U1 publication Critical patent/DE202016008297U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/038Indexing scheme relating to G06F3/038
    • G06F2203/0382Plural input, i.e. interface arrangements in which a plurality of input device of the same type are in communication with a PC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Abstract

Computerlesbares Speichermedium, das mit Anweisungen codiert ist, die bei Ausführung mindestens einen Prozessor einer Computervorrichtung dazu veranlassen ein Verfahren durchzuführen, 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.

Description

  • 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.
  • 3A3B 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 102106 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 102106 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 102106 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 102108 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 3A3B 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 3A3B 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
    • IEEE 802.3 [0048]

Claims (24)

  1. Computerlesbares Speichermedium, das mit Anweisungen codiert ist, die bei Ausführung mindestens einen Prozessor einer Computervorrichtung dazu veranlassen ein Verfahren durchzuführen, 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.
  2. Computerlesbares Speichermedium nach Anspruch 1, wobei die geänderte Version des dreidimensionalen virtuellen Objekts in der virtuellen Umgebung erzeugt und gerendert wird, während die Bewegung stattfindet.
  3. Computerlesbares Speichermedium nach Anspruch 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.
  4. Computerlesbares Speichermedium nach einem der Ansprüche 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.
  5. Computerlesbares Speichermedium nach einem der Ansprüche 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.
  6. Computerlesbares Speichermedium nach einem der Ansprüche 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.
  7. Computerlesbares Speichermedium nach Anspruch 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 aus 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.
  8. Computerlesbares Speichermedium nach einem der Ansprüche 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.
  9. Computerlesbares Speichermedium nach einem der Ansprüche 1 bis 8, wobei das Verfahren 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.
  10. Computerlesbares Speichermedium nach Anspruch 9, wobei das Verfahren 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.
  11. Computerlesbares Speichermedium nach Anspruch 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.
  12. Computerlesbares Speichermedium, das mit Anweisungen codiert ist, die bei Ausführung mindestens einen Prozessor einer Computervorrichtung dazu veranlassen ein Verfahren durchzuführen, 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.
  13. Computerlesbares Speichermedium nach Anspruch 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.
  14. Computerlesbares Speichermedium nach Anspruch 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.
  15. Computerlesbares Speichermedium nach einem der Ansprüche 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.
  16. Computerlesbares Speichermedium nach einem der Ansprüche 12 bis 15, wobei das Verfahren 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.
  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.
  18. System nach Anspruch 17, wobei die geänderte Version des dreidimensionalen virtuellen Objekts in der virtuellen Umgebung erzeugt und gerendert wird, während die Bewegung stattfindet.
  19. System nach Anspruch 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.
  20. System nach einem der Ansprüche 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.
  21. System nach einem der Ansprüche 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.
  22. Computerlesbares Speichermedium, das mit Anweisungen codiert ist, die bei Ausführung mindestens einen Prozessor einer Computervorrichtung dazu veranlassen ein Verfahren durchzuführen, 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.
  23. Computerlesbares Speichermedium nach Anspruch 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.
  24. Computerlesbares Speichermedium nach Anspruch 22 oder 23, wobei das Verfahren 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.
DE202016008297.4U 2016-05-10 2016-12-28 Zweihändige Objektmanipulationen in der virtuellen Realität Active DE202016008297U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/150,794 US10019131B2 (en) 2016-05-10 2016-05-10 Two-handed object manipulations in virtual reality
US15/150,794 2016-05-10

Publications (1)

Publication Number Publication Date
DE202016008297U1 true DE202016008297U1 (de) 2017-06-30

Family

ID=57750628

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102016125811.3A Pending DE102016125811A1 (de) 2016-05-10 2016-12-28 Zweihändige Objektmanipulationen in der virtuellen Realität
DE202016008297.4U Active DE202016008297U1 (de) 2016-05-10 2016-12-28 Zweihändige Objektmanipulationen in der virtuellen Realität

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE102016125811.3A Pending DE102016125811A1 (de) 2016-05-10 2016-12-28 Zweihändige Objektmanipulationen in der virtuellen Realität

Country Status (5)

Country Link
US (2) US10019131B2 (de)
EP (1) EP3400499B1 (de)
CN (1) CN108604121A (de)
DE (2) DE102016125811A1 (de)
WO (1) WO2017196394A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019007934A1 (de) 2017-07-04 2019-01-10 Atlas Elektronik Gmbh Anordnung und verfahren zur kommunikation mittels zweier visueller ausgabegeräte
DE102017114905A1 (de) * 2017-07-04 2019-01-10 Atlas Elektronik Gmbh Kommunikationsvorrichtung und Bediensystem
CN110603512A (zh) * 2017-08-01 2019-12-20 谷歌有限责任公司 用于在虚拟现实环境内与远处的对象交互的方法和设备

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170061700A1 (en) * 2015-02-13 2017-03-02 Julian Michael Urbach Intercommunication between a head mounted display and a real world object
US10146414B2 (en) 2015-06-09 2018-12-04 Pearson Education, Inc. Augmented physical and virtual manipulatives
US10248201B2 (en) * 2016-05-06 2019-04-02 The Board Of Trustees Of The Leland Stanford Junior University Wolverine: a wearable haptic interface for grasping in virtual reality
US10019131B2 (en) * 2016-05-10 2018-07-10 Google Llc Two-handed object manipulations in virtual reality
CN105959757B (zh) * 2016-05-27 2018-11-23 北京小鸟看看科技有限公司 一种虚拟现实系统及其工作状态的控制方法
US10297085B2 (en) * 2016-09-28 2019-05-21 Intel Corporation Augmented reality creations with interactive behavior and modality assignments
US10593116B2 (en) 2016-10-24 2020-03-17 Snap Inc. Augmented reality object manipulation
KR102598082B1 (ko) * 2016-10-28 2023-11-03 삼성전자주식회사 영상 표시 장치, 모바일 장치 및 그 동작방법
US20180190022A1 (en) * 2016-12-30 2018-07-05 Nadav Zamir Dynamic depth-based content creation in virtual reality environments
US10437343B2 (en) * 2017-01-06 2019-10-08 Samsung Electronics Co., Ltd. Augmented reality control of internet of things devices
US10242503B2 (en) 2017-01-09 2019-03-26 Snap Inc. Surface aware lens
US10594786B1 (en) * 2017-01-10 2020-03-17 Lucasfilm Entertainment Company Ltd. Multi-device interaction with an immersive environment
US10627909B2 (en) * 2017-01-10 2020-04-21 Disney Enterprises, Inc. Simulation experience with physical objects
US10606449B2 (en) 2017-03-30 2020-03-31 Amazon Technologies, Inc. Adjusting audio or graphical resolutions for data discovery
US10489980B1 (en) * 2017-03-30 2019-11-26 Amazon Technologies, Inc. Data discovery through visual interactions
US11494986B2 (en) * 2017-04-20 2022-11-08 Samsung Electronics Co., Ltd. System and method for two dimensional application usage in three dimensional virtual reality environment
WO2018196552A1 (zh) * 2017-04-25 2018-11-01 腾讯科技(深圳)有限公司 用于虚拟现实场景中的手型显示方法及装置
US10573071B2 (en) 2017-07-07 2020-02-25 Nvidia Corporation Path planning for virtual reality locomotion
US10573061B2 (en) 2017-07-07 2020-02-25 Nvidia Corporation Saccadic redirection for virtual reality locomotion
US20190026286A1 (en) * 2017-07-19 2019-01-24 International Business Machines Corporation Hierarchical data structure
US20190056799A1 (en) * 2017-08-15 2019-02-21 TinMoon Studios, LLC Method and system for resolving spatial boundary conflicts of virtual objects using simulated spring constraints in 3d virtual space
US10386938B2 (en) * 2017-09-18 2019-08-20 Google Llc Tracking of location and orientation of a virtual controller in a virtual reality system
WO2019070242A1 (en) * 2017-10-03 2019-04-11 Google Llc DATA TRANSFERS FROM A MEMORY TO MANAGE GRAPHIC OUTPUT LATENCY
DE102017218215A1 (de) * 2017-10-12 2019-04-18 Audi Ag Verfahren zum Betreiben einer am Kopf tragbaren elektronischen Anzeigeeinrichtung und Anzeigesystem zum Anzeigen eines virtuellen Inhalts
US10701431B2 (en) * 2017-11-16 2020-06-30 Adobe Inc. Handheld controller gestures for virtual reality video playback
FR3074325B1 (fr) * 2017-11-28 2021-11-26 Renault Sas Manipulation d'objets virtuels dans un environnement immersif
US10008045B1 (en) * 2017-12-21 2018-06-26 Capital One Services, Llc Placement of augmented reality objects using a bounding shape
RU2673956C1 (ru) * 2018-03-16 2018-12-03 ООО "Ай Ти Ви групп" Система и способ управления элементами графического пользовательского интерфейса
CN110321048B (zh) * 2018-03-30 2022-11-01 阿里巴巴集团控股有限公司 三维全景场景信息处理、交互方法及装置
GB2574795B (en) 2018-05-04 2022-10-05 Signaturize Holdings Ltd Generating virtual representations
GB2573571B (en) * 2018-05-11 2022-08-31 Signaturize Holdings Ltd Generating virtual representations
JP2019207574A (ja) * 2018-05-29 2019-12-05 富士ゼロックス株式会社 情報処理装置、情報処理システム及びプログラム
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US11733824B2 (en) * 2018-06-22 2023-08-22 Apple Inc. User interaction interpreter
US10909772B2 (en) * 2018-07-31 2021-02-02 Splunk Inc. Precise scaling of virtual objects in an extended reality environment
US10692299B2 (en) 2018-07-31 2020-06-23 Splunk Inc. Precise manipulation of virtual object position in an extended reality environment
US11030813B2 (en) 2018-08-30 2021-06-08 Snap Inc. Video clip object tracking
CN110070600B (zh) * 2018-11-02 2023-09-15 北京微播视界科技有限公司 三维模型的生成方法、装置、硬件装置
US10824244B2 (en) 2018-11-19 2020-11-03 Facebook Technologies, Llc Systems and methods for transitioning between modes of tracking real-world objects for artificial reality interfaces
US11176737B2 (en) 2018-11-27 2021-11-16 Snap Inc. Textured mesh building
CN110908508B (zh) * 2019-11-04 2021-12-03 广东虚拟现实科技有限公司 虚拟画面的控制方法、终端设备及存储介质
WO2020132541A1 (en) 2018-12-20 2020-06-25 Snap Inc. Virtual surface modification
US11320911B2 (en) * 2019-01-11 2022-05-03 Microsoft Technology Licensing, Llc Hand motion and orientation-aware buttons and grabbable objects in mixed reality
US11644940B1 (en) 2019-01-31 2023-05-09 Splunk Inc. Data visualization in an extended reality environment
US11853533B1 (en) * 2019-01-31 2023-12-26 Splunk Inc. Data visualization workspace in an extended reality environment
US10984575B2 (en) 2019-02-06 2021-04-20 Snap Inc. Body pose estimation
WO2020205714A1 (en) * 2019-03-29 2020-10-08 Eagle View Imaging,Inc. Surgical planning, surgical navigation and imaging system
USD947874S1 (en) * 2019-06-14 2022-04-05 Oxford VR Limited Virtual reality googles with graphical user interface
US11189098B2 (en) 2019-06-28 2021-11-30 Snap Inc. 3D object camera customization system
KR20190106851A (ko) * 2019-08-27 2019-09-18 엘지전자 주식회사 Xr 컨텐츠 제공 방법 및 xr 컨텐츠 제공 디바이스
US11232646B2 (en) 2019-09-06 2022-01-25 Snap Inc. Context-based virtual object rendering
CN110740309B (zh) * 2019-09-27 2022-05-03 北京字节跳动网络技术有限公司 一种图像显示方法、装置、电子设备及存储介质
CN111080759B (zh) * 2019-12-03 2022-12-27 深圳市商汤科技有限公司 一种分镜效果的实现方法、装置及相关产品
US11175730B2 (en) 2019-12-06 2021-11-16 Facebook Technologies, Llc Posture-based virtual space configurations
US11227442B1 (en) 2019-12-19 2022-01-18 Snap Inc. 3D captions with semantic graphical elements
US11263817B1 (en) 2019-12-19 2022-03-01 Snap Inc. 3D captions with face tracking
CN111352505B (zh) * 2020-01-13 2023-02-21 维沃移动通信有限公司 操作控制方法、头戴式设备及介质
CN111240483B (zh) * 2020-01-13 2022-03-29 维沃移动通信有限公司 操作控制方法、头戴式设备及介质
WO2021166717A1 (ja) * 2020-02-17 2021-08-26 ソニーグループ株式会社 表示制御装置、表示制御方法及び記録媒体
CN111522439B (zh) * 2020-04-02 2024-04-12 上海电气集团股份有限公司 一种虚拟样机的修订方法、装置、设备及计算机存储介质
USD997953S1 (en) * 2020-04-17 2023-09-05 Magic Leap, Inc. Display panel with a graphical user interface
US11093005B1 (en) * 2020-05-05 2021-08-17 International Business Machines Corporation Virtual reality rollable display device
US11257280B1 (en) 2020-05-28 2022-02-22 Facebook Technologies, Llc Element-based switching of ray casting rules
TWI825321B (zh) * 2020-06-04 2023-12-11 佳世達科技股份有限公司 顯示裝置
US11256336B2 (en) 2020-06-29 2022-02-22 Facebook Technologies, Llc Integration of artificial reality interaction modes
CN111784850B (zh) * 2020-07-03 2024-02-02 深圳市瑞立视多媒体科技有限公司 基于虚幻引擎的物体抓取仿真方法及相关设备
US11747617B2 (en) * 2020-07-24 2023-09-05 Padula Rehabilitation Technologies, Llc Systems and methods for a parallactic ambient visual-field enhancer
US11467403B2 (en) * 2020-08-20 2022-10-11 Htc Corporation Operating method and electronic system
US11178376B1 (en) 2020-09-04 2021-11-16 Facebook Technologies, Llc Metering for display modes in artificial reality
US11615592B2 (en) 2020-10-27 2023-03-28 Snap Inc. Side-by-side character animation from realtime 3D body motion capture
US11660022B2 (en) 2020-10-27 2023-05-30 Snap Inc. Adaptive skeletal joint smoothing
US11450051B2 (en) 2020-11-18 2022-09-20 Snap Inc. Personalized avatar real-time motion capture
US11734894B2 (en) 2020-11-18 2023-08-22 Snap Inc. Real-time motion transfer for prosthetic limbs
US11748931B2 (en) 2020-11-18 2023-09-05 Snap Inc. Body animation sharing and remixing
EP4195005A1 (de) * 2020-12-17 2023-06-14 Samsung Electronics Co., Ltd. Elektronische vorrichtung und betriebsverfahren der elektronischen vorrichtung
US11294475B1 (en) 2021-02-08 2022-04-05 Facebook Technologies, Llc Artificial reality multi-modal input switching model
US20220337709A1 (en) * 2021-04-15 2022-10-20 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and storage medium
US11961201B2 (en) * 2021-05-21 2024-04-16 Meta Platforms Technologies, Llc Viewing 3D photo galleries in VR
IT202100027923A1 (it) * 2021-11-02 2023-05-02 Ictlab S R L Metodo di analisi balistica e relativo sistema di analisi
US11880947B2 (en) 2021-12-21 2024-01-23 Snap Inc. Real-time upper-body garment exchange
CN114490485B (zh) * 2022-01-24 2024-02-20 天度(厦门)科技股份有限公司 虚拟物体控制方法、系统、介质及终端
WO2023238663A1 (ja) * 2022-06-07 2023-12-14 ソニーグループ株式会社 情報処理装置および情報処理方法
CN115048001A (zh) * 2022-06-16 2022-09-13 亮风台(云南)人工智能有限公司 虚拟对象的显示方法、装置、电子设备及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7701439B2 (en) 2006-07-13 2010-04-20 Northrop Grumman Corporation Gesture recognition simulation system and method
US8384665B1 (en) * 2006-07-14 2013-02-26 Ailive, Inc. Method and system for making a selection in 3D virtual environment
SG147325A1 (en) 2007-04-16 2008-11-28 Bracco Imaging Spa Apparatus and method for manipulating a 3d object/volume
NL1035303C2 (nl) * 2008-04-16 2009-10-19 Virtual Proteins B V Interactieve virtuele reality eenheid.
US20130278631A1 (en) 2010-02-28 2013-10-24 Osterhout Group, Inc. 3d positioning of augmented reality information
US20120113223A1 (en) * 2010-11-05 2012-05-10 Microsoft Corporation User Interaction in Augmented Reality
US20130104087A1 (en) * 2011-10-21 2013-04-25 Digital Artforms, Inc. Systems and methods for human-computer interaction using a two handed interface
US9383895B1 (en) * 2012-05-05 2016-07-05 F. Vinayak Methods and systems for interactively producing shapes in three-dimensional space
JP6041604B2 (ja) * 2012-09-27 2016-12-14 京セラ株式会社 表示装置、制御システムおよび制御プログラム
US20160140766A1 (en) * 2012-12-12 2016-05-19 Sulon Technologies Inc. Surface projection system and method for augmented reality
US9202313B2 (en) * 2013-01-21 2015-12-01 Microsoft Technology Licensing, Llc Virtual interaction with image projection
US9367136B2 (en) * 2013-04-12 2016-06-14 Microsoft Technology Licensing, Llc Holographic object feedback
US10019057B2 (en) * 2013-06-07 2018-07-10 Sony Interactive Entertainment Inc. Switching mode of operation in a head mounted display
US10126822B2 (en) * 2013-12-16 2018-11-13 Leap Motion, Inc. User-defined virtual interaction space and manipulation of virtual configuration
US10203762B2 (en) 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US10579207B2 (en) * 2014-05-14 2020-03-03 Purdue Research Foundation Manipulating virtual environment using non-instrumented physical object
US20170140552A1 (en) * 2014-06-25 2017-05-18 Korea Advanced Institute Of Science And Technology Apparatus and method for estimating hand position utilizing head mounted color depth camera, and bare hand interaction system using same
US9606584B1 (en) * 2014-07-01 2017-03-28 D.R. Systems, Inc. Systems and user interfaces for dynamic interaction with two- and three-dimensional medical image data using hand gestures
US9767613B1 (en) * 2015-01-23 2017-09-19 Leap Motion, Inc. Systems and method of interacting with a virtual object
US9696795B2 (en) * 2015-02-13 2017-07-04 Leap Motion, Inc. Systems and methods of creating a realistic grab experience in virtual reality/augmented reality environments
US20170003738A1 (en) * 2015-06-15 2017-01-05 Survios, Inc. Systems and methods for immersive physical interaction with a virtual environment
US10976819B2 (en) * 2015-12-28 2021-04-13 Microsoft Technology Licensing, Llc Haptic feedback for non-touch surface interaction
US10019131B2 (en) * 2016-05-10 2018-07-10 Google Llc Two-handed object manipulations in virtual reality

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE 802.3

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019007934A1 (de) 2017-07-04 2019-01-10 Atlas Elektronik Gmbh Anordnung und verfahren zur kommunikation mittels zweier visueller ausgabegeräte
DE102017114905A1 (de) * 2017-07-04 2019-01-10 Atlas Elektronik Gmbh Kommunikationsvorrichtung und Bediensystem
CN110603512A (zh) * 2017-08-01 2019-12-20 谷歌有限责任公司 用于在虚拟现实环境内与远处的对象交互的方法和设备
CN110603512B (zh) * 2017-08-01 2023-10-27 谷歌有限责任公司 用于在虚拟现实环境内与远处的对象交互的方法和设备

Also Published As

Publication number Publication date
US10019131B2 (en) 2018-07-10
CN108604121A (zh) 2018-09-28
US10754497B2 (en) 2020-08-25
US20180284969A1 (en) 2018-10-04
EP3400499A1 (de) 2018-11-14
EP3400499B1 (de) 2021-02-17
WO2017196394A1 (en) 2017-11-16
DE102016125811A1 (de) 2017-11-16
US20170329488A1 (en) 2017-11-16

Similar Documents

Publication Publication Date Title
DE202016008297U1 (de) Zweihändige Objektmanipulationen in der virtuellen Realität
US11238666B2 (en) Display of an occluded object in a hybrid-reality system
US11043031B2 (en) Content display property management
DE202017104928U1 (de) Manipulation virtueller Objekte anhand von Controllern mit sechs Freiheitsgraden in erweiterten bzw. virtuellen Realitätsumgebungen
JP6895390B2 (ja) 仮想現実においてハンドヘルド電子装置を追跡するためのシステム
US9685005B2 (en) Virtual lasers for interacting with augmented reality environments
DE202017104403U1 (de) Erkennen des Benutzerbewegungsbereichs für Virtual-Reality-Benutzeroberflächen
DE202017105262U1 (de) Erzeugen virtueller Notationsoberflächen mit Gesten in einer erweiterten und/oder virtuellen Realitätsumgebung
CN116324680A (zh) 用于操纵环境中的对象的方法
DE202017105307U1 (de) Umschalten aktiver Objekte in einer erweiterten Realitäts- und/oder virtuellen Realitätsumgebung
US10359863B2 (en) Dragging virtual elements of an augmented and/or virtual reality environment
CN110476142A (zh) 虚拟对象用户界面显示
AU2015301620A1 (en) Remote expert system
DE202017006742U1 (de) Eingabegerät-Stabilisierungstechniken für virtuelle Realitätssysteme
DE202017105283U1 (de) Sitzungsende-Erkennung in einer Augmented- und/oder Virtual-Reality-Umgebung
US11430192B2 (en) Placement and manipulation of objects in augmented reality environment

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years