DE112019003239T5 - Breakpoints auf view-basis - Google Patents

Breakpoints auf view-basis Download PDF

Info

Publication number
DE112019003239T5
DE112019003239T5 DE112019003239.9T DE112019003239T DE112019003239T5 DE 112019003239 T5 DE112019003239 T5 DE 112019003239T5 DE 112019003239 T DE112019003239 T DE 112019003239T DE 112019003239 T5 DE112019003239 T5 DE 112019003239T5
Authority
DE
Germany
Prior art keywords
breakpoint
view
simulated
environment
real world
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.)
Pending
Application number
DE112019003239.9T
Other languages
English (en)
Inventor
Tyler L. Casella
Norman N. Wang
Benjamin Breckin Loggins
Daniel M. Delwood
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of DE112019003239T5 publication Critical patent/DE112019003239T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • 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/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • 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
    • 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/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye

Abstract

Es werden Systeme und Verfahren für Breakpoints, die auf Views der simulierten Realität basieren, beschrieben. Einige Implementierungen können das Zugreifen auf Bewegungsdaten einschließen, die unter Verwendung eines oder mehrerer Bewegungssensoren erfasst werden; Bestimmen, basierend mindestens auf den Bewegungsdaten, einer View innerhalb einer simulierten Realitätsumgebung, die unter Verwendung eines Head-Mounted Displays dargestellt wird; Erfassen, dass die View ein Element eines Satzes von Views ist, die einem Breakpoint zugeordnet sind; Basierend mindestens darauf, dass die View ein Element des Satzes von Views ist, Auslösen des Breakpoints; als Reaktion darauf, dass der Breakpoint ausgelöst wird, Durchführen einer Fehlerbereinigungsaktion, die dem Breakpoint zugeordnet ist; und Fortsetzen des Ausführens eines Simulationsprozesses der simulierten Realitätsumgebung während des Durchführens der Fehlerbereinigungsaktion, um zu ermöglichen, dass sich ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung fortsetzt und mit dem Head-Mounted Display betrachtet wird.

Description

  • TECHNISCHES GEBIET
  • Diese Offenbarung bezieht sich auf Breakpoints, die auf Views der simulierten Realität basieren.
  • STAND DER TECHNIK
  • Head-Mounted Displays werden verwendet, um Benutzern Erfahrungen der virtuellen Realität, erweiterten Realität und/oder simulierten Realität bereitzustellen. Debugging-Tools werden von Softwareentwicklern verwendet, um Fehler - oft „Bugs“ genannt - im Computerbefehlscode zu verfolgen und zu identifizieren. Debugging-Tools ermöglichen Entwicklern, Breakpoints für einen Teil eines Softwarecode zu spezifizieren, in der Regel durch Spezifizieren einer Codezeile, die einem Breakpoint zugeordnet ist. Wenn eine Bedingung für den Breakpoint auftritt (z.B. wird eine spezifizierte Codezeile während der Ausführung der Software erreicht), dann kann das Debugging-Tool eine Aktion auslösen, wie Anhalten der Ausführung der Software an einer spezifizierten Codezeile und/oder Präsentieren eines Softwareentwicklers mit einer Fehlerbereinigungsschnittstelle, welche die Prüfung des Unterbrechungszustands der Software und/oder die gesteuerte Ausführung (z.B. zeilenweises Durchlaufen des Codes mit Unterbrechungen zwischen Zeilen) der Software ermöglicht.
  • KURZDARSTELLUNG
  • Hierin offenbart sind Implementierungen von Breakpoints, die auf Views der simulierten Realität basieren.
  • In einem ersten Gesichtspunkt kann der in dieser Patentschrift beschriebene Gegenstand in Systemen verkörpert sein, die ---ein Head-Mounted Display und einen oder mehrere Bewegungssensoren, die an dem Head-Mounted Display angebracht sind, einschließen. Die Systeme schließen eine Verarbeitungsvorrichtung ein, die zum Zugriff auf Bewegungsdaten konfiguriert ist, die unter Verwendung des einen oder der mehreren Bewegungssensoren erfasst werden; zum Bestimmen, basierend mindestens auf den Bewegungsdaten, einer View innerhalb einer simulierten Realitätsumgebung, die unter Verwendung des Head-Mounted Displays dargestellt wird; zum Erkennen, ob die View einem Breakpoint zugeordnet ist; basierend mindestens auf dem Erfassen, dass die View dem Breakpoint zugeordnet ist, zum Auslösen des Breakpoints und Durchführen einer Fehlerbereinigungsaktion, die dem Breakpoint zugeordnet ist; und während des Durchführens der Fehlerbereinigungsaktion zum Fortsetzen des Ausführens eines Simulationsprozesses der simulierten Realitätsumgebung, um zu ermöglichen, dass ein Zustand von mindestens einem virtuellen Objekt in der simulierten Realitätsumgebung weiterhin mit dem Head-Mounted Display betrachtet wird und auf Eingaben reagiert, die unter Verwendung des einen oder der mehreren Bewegungssensoren empfangen werden.
  • In einem zweiten Gesichtspunkt kann der in dieser Patentschrift beschriebene Gegenstand in Verfahren verkörpert werden, die Folgendes einschließen: Zugreifen auf Bewegungsdaten, die unter Verwendung eines oder mehrerer Bewegungssensoren erfasst werden; Bestimmen, basierend mindestens auf den Bewegungsdaten, einer View innerhalb einer simulierten Realitätsumgebung, die unter Verwendung eines Head-Mounted Displays dargestellt wird; Erfassen, dass die View ein Element eines Satzes von Views ist, die einem Breakpoint zugeordnet sind; Basierend mindestens darauf, dass die View ein Element des Satzes von Views ist, Auslösen des Breakpoints; als Reaktion darauf, dass der Breakpoint ausgelöst wird, Durchführen einer Fehlerbereinigungsaktion, die dem Breakpoint zugeordnet ist; und Fortsetzen des Ausführens eines Simulationsprozesses der simulierten Realitätsumgebung während des Durchführens der Fehlerbereinigungsaktion, um zu ermöglichen, dass sich ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung fortsetzt und mit dem Head-Mounted Display betrachtet wird.
  • In einem dritten Gesichtspunkt kann der in dieser Patentschrift beschriebene Gegenstand in Systemen verkörpert sein, die---ein Head-Mounted Display einschließen. Die Systeme schließen eine Verarbeitungsvorrichtung ein, die konfiguriert ist, um eine View innerhalb einer simulierten Realitätsumgebung zu bestimmen, die unter Verwendung des Head-Mounted Displays dargestellt wird; zum Erfassen, dass die View ein Element eines Satzes von Views ist, die einem Breakpoint zugeordnet sind; basierend mindestens darauf, dass die View ein Element des Satzes von Views ist, Auslösen des Breakpoints; als Reaktion darauf, dass der Breakpoint ausgelöst wird, zum Durchführen einer Fehlerbereinigungsaktion, die dem Breakpoint zugeordnet ist; und zum Fortsetzen des Ausführens eines Simulationsprozesses der simulierten Realitätsumgebung während des Durchführens der Fehlerbereinigungsaktion, um zu ermöglichen, dass sich ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung fortsetzt und mit dem Head-Mounted Display betrachtet wird.
  • In einem vierten Gesichtspunkt kann der in dieser Patentschrift beschriebene Gegenstand in einem nichtflüchtigen computerlesbaren Speichermedium verkörpert sein. Das nichtflüchtige computerlesbare Speichermedium kann ausführbare Anweisungen einschließen, die, wenn sie von einem Prozessor ausgeführt werden, die Durchführung von Abläufen ermöglichen, einschließlich des Zugreifens auf Bewegungsdaten, die unter Verwendung eines oder mehrerer Bewegungssensoren erfasst werden; des Bestimmens, basierend mindestens auf den Bewegungsdaten, einer View innerhalb einer simulierten Realitätsumgebung, die unter Verwendung eines Head-Mounted Displays dargestellt wird; des Erfassens, ob die View einem Breakpoint zugeordnet ist; basierend mindestens auf dem Erfassen, dass die View dem Breakpoint zugeordnet ist, Auslösen des Breakpoint; als Reaktion darauf, dass der Breakpoint ausgelöst wird, des Durchführens einer Fehlerbereinigungsaktion, die dem Breakpoint zugeordnet ist; und des Fortsetzens der Ausführung eines Simulationsprozesses der simulierten Realitätsumgebung während des Durchführens der Fehlerbereinigungsaktion, um zu ermöglichen, dass sich ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung fortsetzt und mit dem Head-Mounted Display betrachtet wird.
  • Figurenliste
  • Die Offenbarung erschließt sich am besten aus der folgenden detaillierten Beschreibung, wenn diese in Verbindung mit den beigefügten Zeichnungen gelesen wird. Es wird hervorgehoben, dass gemäß üblicher Praxis die verschiedenen Merkmale der Zeichnungen nicht maßstabsgetreu sind. Vielmehr sind die Abmessungen der verschiedenen Merkmale aus Gründen der Klarheit willkürlich erweitert oder reduziert.
    • 1 ist eine Veranschaulichung eines Beispiels eines auf einer View basierenden Breakpoint-Szenarios in einem Augmented-Reality-Raum.
    • 2 ist eine Veranschaulichung eines Beispiels eines auf einer View basierenden Breakpoint-Szenarios in einem Virtual-Reality-Raum.
    • 3 ist ein Blockdiagramm eines Beispiels eines Systems, das konfiguriert ist, um auf einer View basierende Breakpoints in einer simulierten Realitätsanwendung zu aktivieren.
    • 4 ist ein Blockdiagramm eines Beispiels eines Systems, das konfiguriert ist, um eines auf einer View basierenden Breakpoints in einem Augmented-Reality-Raum zu aktivieren.
    • 5 ist ein Blockdiagramm eines Beispiels einer simulierten Realitätsanwendung.
    • 6 ist ein Flussdiagramm eines Beispiels einer Technik zum Aktivieren eines auf einer View basierenden Breakpoints.
    • 7 ist ein Flussdiagramm eines Beispiels einer Technik zum Erfassen, dass eine View ein Element eines Satzes von Views ist, der einem Breakpoint zugeordnet ist.
    • 8 ist ein Flussdiagramm eines Beispiels einer Technik zum Durchführen von Fehlerbereinigungsaktionen als Reaktion darauf, dass ein Breakpoint ausgelöst wird.
    • 9 ist ein Flussdiagramm eines Beispiels einer Technik zum Identifizieren eines oder mehrerer virtueller Objekte zum Debuggen als Reaktion darauf, dass ein Breakpoint ausgelöst wird.
  • DETAILLIERTE BESCHREIBUNG
  • Breakpoints können in einer Codezeile einer Anwendung platziert oder dieser anderweitig zugeordnet werden, was bewirkt, dass die Ausführung der Anwendung beim Auftreffen auf die Codezeile angehalten wird, wodurch einem Softwareentwickler ermöglicht wird, Codezeilen zu durchlaufen, um die Identifizierung und Beseitigung von Fehlern in dem Code zu ermöglichen.
  • Auf einer View basierende Breakpoints können implementiert werden, um eine simulierte Realitätsanwendung zu debuggen. Benutzer sind in der Lage, einen Satz von Views (z.B. in Bezug auf einen Bereich von Positionen und/oder Orientierungen einer virtuellen Kamera) einer simulierten Realitätsumgebung zu spezifizieren, die von der Anwendung simulierter Realität dargestellt wird, die einen Breakpoint auslösen wird. Dies kann zum Beispiel nützlich sein, wenn Entwickler von bestimmten Blickpunkten innerhalb der simulierten Realitätsumgebung einer simulierten Realitätsanwendung auf Fehler oder visuelle Artefakte treffen und ihren Code durchlaufen wollen, um zu sehen, was die Probleme verursacht. Zum Beispiel können Benutzer eine Position und einen Bereich in einem dreidimensionalen Raum der simulierten Realitätsumgebung zusätzlich zu einer Codezeile einstellen, und der Breakpoint kann ausgelöst werden, wenn sowohl die Codezeile während der Ausführung erreicht wird als auch die dem Benutzer dargestellte View innerhalb des spezifizierten Satzes von Views liegt, die dem Breakpoint zugeordnet sind.
  • Auf einer View basierende Breakpoints können erhebliche Vorteile gegenüber herkömmlichen Debugging-Tools für simulierte Realitätsanwendungen bieten. Bei herkömmlichen Breakpoints kann diese Fehlerbereinigungsaufgabe erheblich schwieriger sein, da zum Beispiel der Entwickler beim Erzeugen eines Breakpoints seinen Kopf ruhig halten muss, um sicherzustellen, dass der Code von dem korrekten betroffenen Blickpunkt aus läuft. Zum Beispiel kann die Anwendungsentwicklungszeit reduziert werden, und/oder es kann die Ausfallrate resultierender simulierter Realitätsanwendungen reduziert werden.
  • Physische Umgebung
  • a. Eine physische Umgebung nimmt Bezug auf eine Welt, die Personen wahrnehmen können und/oder mit der Personen ohne Unterstützung durch elektronische Systeme interagieren können. Physische Umgebungen (z. B. ein physischer Wald) schließen physische Elemente (z. B. physische Bäume, physische Strukturen und physische Lebewesen) ein. Individuen können direkt mit der physischen Umgebung interagieren und/oder diese wahrnehmen, wie etwa durch Berühren, Sehen, Riechen, Hören und Schmecken.
  • Simulierte Realität
  • a. Im Gegensatz dazu nimmt eine Umgebung der simulierten Realität (SR) Bezug auf eine vollständig oder teilweise von einem Computer erzeugte Umgebung, die Individuen erfassen und/oder mit der Individuen über ein elektronisches System interagieren können. In einer SR wird eine Teilmenge der Bewegungen einer Person überwacht, und als Reaktion darauf werden ein oder mehrere Attribute eines oder mehrerer virtueller Objekte in der SR-Umgebung auf eine Weise geändert, die einem oder mehreren physikalischen Gesetzen entspricht. Zum Beispiel kann ein SR-System eine Person erkennen, die einige Schritte vorwärts geht, und als Reaktion darauf Grafiken und Audio anpassen, die der Person auf ähnliche Weise präsentiert werden, wie sich solche Szenen und Geräusche in einer physischen Umgebung ändern würden. Änderungen an einem oder mehreren Attributen von einem oder mehreren virtuellen Objekten in einer SR-Umgebung können auch als Reaktion auf Darstellungen von Bewegung (z. B. Audioanweisungen) vorgenommen werden.
  • b. Eine Person kann mit einem SR-Objekt interagieren und/oder es mit einem ihrer Sinne wahrnehmen, einschließlich berühren, riechen, sehen, schmecken und hören. Beispielsweise kann eine Person mit akustischen Objekten, die eine Umgebung (z. B. dreidimensionale) oder räumliche akustische Einstellung erzeugen und/oder akustische Transparenz ermöglichen interagieren und/oder diese wahrnehmen. Mehrdimensionale oder räumliche akustische Umgebungen ermöglichen es einem Individuum, diskrete akustische Quellen im mehrdimensionalen Raum wahrzunehmen. Bei der akustischen Transparenz werden Töne aus der physischen Umgebung wahlweise mit oder ohne vom Computer erstelltem Audio berücksichtigt. In einigen SR-Umgebungen kann eine Person nur mit akustischen Objekten interagieren und/oder diese wahrnehmen.
  • Virtuelle Realität
  • a. Ein Beispiel für SR ist die virtuelle Realität (Virtual Reality, VR). Eine VR-Umgebung nimmt Bezug auf eine simulierte Umgebung, die nur computergenerierte sensorische Eingaben für mindestens einen der Sinne einschließt. Eine VR-Umgebung schließt mehrere virtuelle Objekte ein, mit denen eine Person interagieren und/oder die sie erfassen kann. Eine Person kann virtuelle Objekte in der VR-Umgebung durch eine Simulation einer Teilmenge der Aktionen der Person in der computererzeugten Umgebung und/oder durch eine Simulation der Person oder ihrer Anwesenheit in der computererzeugten Umgebung interagieren und/oder wahrnehmen.
  • Gemischte Realität
  • a. Ein weiteres Beispiel für SR ist gemischte Realität (Mixed Reality, MR). Eine MR-Umgebung nimmt Bezug auf eine simulierte Umgebung, die dafür ausgelegt ist, computererzeugte sensorische Umgebungen (z. B. virtuelle Objekte) mit sensorischen Umgebungen aus der physischen Umgebung oder einer Darstellung davon zu integrieren. In einem Realitätsspektrum liegt eine Mixed-Reality-Umgebung zwischen einer VR-Umgebung an einem Ende und einer vollständig physischen Umgebung am anderen Ende und schließt diese nicht ein.
  • b. In einigen MR-Umgebungen können sich computererzeugte sensorische Umgebungen an Änderungen der sensorischen Umgebungen aus der physischen Umgebung anpassen. Einige elektronische Systeme zum Darstellen von MR-Umgebungen können auch die Orientierung und/oder den Ort in Bezug auf die physische Umgebung überwachen, um eine Interaktion zwischen virtuellen Objekten und realen Objekten (die physische Artikel aus der physischen Umgebung oder deren Darstellungen sind) zu ermöglichen. Beispielsweise kann ein System Bewegungen überwachen, sodass eine virtuelle Anlage in Bezug auf ein physisches Gebäude als stationär erscheint.
  • Erweiterte Realität
  • i. Ein Beispiel für gemischte Realität ist die erweiterte Realität (Augmented Reality, AR). Eine AR-Einstellung nimmt Bezug auf eine simulierte Umgebung, in der mindestens ein virtuelles Objekt einer physischen Umgebung oder einer Darstellung davon überlagert ist. Beispielsweise kann ein elektronisches System eine undurchsichtige Anzeige und mindestens einen Bildsensor zum Erfassen von Bildern oder Videos der physikalischen Umgebung aufweisen, die Darstellungen der physikalischen Umgebung sind. Das System kombiniert die Bilder oder Videos mit virtuellen Objekten und zeigt die Kombination auf dem undurchsichtigen Display an. Eine Person, die das System verwendet, betrachtet die physische Einstellung indirekt über die Bilder oder das Video der physischen Umgebung und beobachtet die virtuellen Objekte, die die physische Umgebung überlagern. Wenn ein System einen oder mehrere Bildsensoren verwendet, um Bilder der physischen Umgebung zu erfassen, und die AR-Umgebung unter Verwendung dieser Bilder auf dem opaken Bildschirm darstellt, werden die angezeigten Bilder als Video-Durchlauf bezeichnet. Alternativ kann ein elektronisches System zum Anzeigen einer AR-Umgebung eine transparente oder halbtransparente Anzeige aufweisen, durch die eine Person die physikalische Umgebung direkt betrachten kann. Das System kann virtuelle Objekte auf der transparenten oder halbtransparenten Anzeige anzeigen, sodass eine Person, die das System verwendet, die virtuellen Objekte beobachtet, die die physische Umgebung überlagern. In einem anderen Beispiel kann ein System ein Projektionssystem umfassen, das virtuelle Objekte in die physische Umgebung projiziert. Die virtuellen Objekte können beispielsweise auf eine physische Oberfläche oder als ein Hologramm projiziert werden, sodass eine Person unter Verwendung des Systems die virtuellen Objekte beobachtet, die die physische Umgebung überlagern.
  • ii. Eine Augmented Reality-Umgebung kann auch auf eine simulierte Umgebung Bezug nehmen, in der eine Darstellung einer physischen Umgebung durch computererzeugte sensorische Informationen geändert wird. Beispielsweise kann ein Teil einer Darstellung einer physikalischen Umgebung grafisch verändert (z. B. vergrößert) werden, sodass der veränderte Teil immer noch repräsentativ für eine Version des/der ursprünglich aufgenommenen Bildes/Bilder ist, diese jedoch nicht originalgetreu wiedergibt. Als ein weiteres Beispiel kann ein System beim Bereitstellen von Video-Durchläufen mindestens eines der Sensorbilder ändern, um einen bestimmten Blickwinkel vorzugeben, der sich von dem von den Bildsensoren erfassten Blickwinkel unterscheidet. Als ein zusätzliches Beispiel kann eine Darstellung einer physikalischen Umgebung geändert werden, indem Teile davon grafisch verdeckt oder ausgeschlossen werden.
  • Erweiterte Virtualität
  • i. Ein weiteres Beispiel für gemischte Realität ist die erweiterte Virtualität (Augmented Virtuality, AV). Bei einer AV-Umgebung handelt es sich um eine simulierte Umgebung, in der eine vom Computer erstellte oder virtuelle Umgebung mindestens eine sensorische Eingabe aus der physischen Umgebung enthält. Die sensorische(n) Eingab(en) von der physikalischen Umgebung kann/können Darstellungen von mindestens einer Eigenschaft der physikalischen Umgebung sein. Beispielsweise kann ein virtuelles Objekt eine Farbe eines physischen Elements annehmen, der von einem oder mehreren Bildsensoren erfasst wird. In einem anderen Beispiel kann ein virtuelles Objekt Merkmale aufweisen, die mit den tatsächlichen Wetterbedingungen in der physischen Umgebung übereinstimmen, wie sie durch Bildgebung, wetterbezogene Sensoren und/oder Online-Wetterdaten erfasst werden. In einem weiteren Beispiel kann ein Augmented-Reality-Wald virtuelle Bäume und Strukturen aufweisen, aber die Lebewesen können Merkmale aufweisen, die anhand von Bildern, die von physischen Lebewesen aufgenommen wurden, genau reproduziert werden.
  • Hardware
  • Viele elektronische Systeme ermöglichen es einer Person, mit verschiedenen SR-Umgebungen zu interagieren und/oder diese zu erfassen. Ein Beispiel schließt Head-Mounted-Systeme ein. Ein Head-Mounted-System kann eine undurchsichtige Anzeige und Lautsprecher aufweisen. Alternativ kann ein Head-Mounted-System dazu ausgelegt sein, eine externe Anzeige (z. B. ein Smartphone) aufzunehmen. Das Head-Mounted-System kann (einen) Bildsensor(en) und/oder Mikrofone zum Aufnehmen von Bildern/Videos und/oder zum Aufnehmen von Audio der physischen Umgebung aufweisen. Ein Head-Mounted-System kann auch eine transparente oder halbtransparente Anzeige aufweisen. Die transparente oder halbtransparente Anzeige kann ein Substrat enthalten, durch welches das für Bilder repräsentative Licht auf die Augen einer Person gerichtet wird. Die Anzeige kann LEDs, OLEDs, einen digitalen Lichtprojektor, eine Laserabtastlichtquelle, Flüssigkristall auf Silizium oder eine beliebige Kombination dieser Technologien enthalten. Das Substrat, durch welches das Licht übertragen wird, kann ein Lichtwellenleiter, ein optischer Kombinierer, ein optischer Reflektor, ein holographisches Substrat oder eine beliebige Kombination dieser Substrate sein. In einer Ausführungsform kann die transparente oder halbtransparente Anzeige selektiv zwischen einem undurchsichtigen Zustand und einem transparenten oder halbtransparenten Zustand wechseln. In einem anderen Beispiel kann das elektronische System ein projektionsbasiertes System sein. Ein projektionsbasiertes System kann die Netzhautprojektion verwenden, um Bilder auf die Netzhaut einer Person zu projizieren. Alternativ kann ein Projektionssystem auch virtuelle Objekte in eine physikalische Umgebung projizieren (z. B. auf eine physikalische Oberfläche oder als ein Hologramm). Andere Beispiele für SR-Systeme schließen Heads-up-Displays, Windschutzscheiben für Kraftfahrzeuge mit der Fähigkeit zur Anzeige von Grafiken, Fenster mit der Fähigkeit zur Anzeige von Grafiken, Linsen mit der Fähigkeit zur Anzeige von Grafiken, Kopfhörer oder Ohrhörer, Lautsprecheranordnungen, Eingabemechanismen (z. B. Controller mit oder ohne haptisches Feedback), Tablets, Smartphones und Desktop- oder Laptop-Computer ein. 1 ist eine Veranschaulichung eines Beispiels eines auf einer View basierenden Breakpoint-Szenarios 100 in einem Augmented-Reality-Raum. Ein Benutzer 110 trägt ein Head-Mounted Display 120 und ist in der Lage, seinen Kopf zu drehen, um seine View einer simulierten Realitätsumgebung anzupassen, die virtuelle Objekte einschließt, die einer physischen Umgebung überlagert sind, in der der Benutzer steht. Die View-Richtung des Benutzers in der simulierten Realitätsumgebung kann einem Strahl 130 (z.B. einem durch die Mitte der View projizierten Strahl) entsprechen. Ein Satz von Views, der einem Breakpoint zugeordnet ist, kann einem Bereich 140 in der simulierten Realitätsumgebung entsprechen. Der Bereich 140 ist ein Abschnitt der simulierten Realitätsumgebung, der einem Breakpoint zugeordnet ist. In diesem Beispiel ist der Bereich 140 ein Würfel, jedoch können andere Formen (z.B. eine Kugel oder eine unregelmäßige Form) für einen Bereich spezifiziert werden. Zum Beispiel kann sich ein virtuelles Objekt von Interesse für einen Entwickler innerhalb des Bereichs 140 befinden. In einigen Implementierungen kann der Bereich 140 als an einem virtuellen Objekt zentriert spezifiziert werden. In einigen Implementierungen kann der Bereich 140 als das Volumen eines virtuellen Objekts spezifiziert werden.
  • Zum Beispiel kann ein Breakpoint ganz oder teilweise von der View des Benutzers 110 abhängig sein, die sich signifikant mit dem Bereich 140 schneidet, der dem Breakpoint zugeordnet ist. In einigen Implementierungen kann eine Bedingung des Breakpoints als der Strahl 130 der View spezifiziert werden, der durch den Bereich 140 verläuft. Zum Beispiel kann das Bestimmen, ob die View des Benutzers 110 die Bedingung des Breakpoints erfüllt, das Bestimmen einschließen, ob der Strahl 130 der View durch den Bereich 140 verläuft. Wenn der Strahl 130 den Bereich 140 durchläuft und die auf der View basierende Bedingung erfüllt ist, kann der Breakpoint ausgelöst werden, wenn die auf der View basierende Bedingung die einzige Bedingung für den Breakpoint ist oder wenn auch die anderen Bedingungen (z.B. Erreichen einer festgelegten Codezeile, Bedingung über den Zustand eines virtuellen Objekts oder Benutzereingabe) für den Breakpoint erfüllt sind. Sobald der Breakpoint ausgelöst wird, können eine oder mehrere Fehlerbereinigungsaktionen durchgeführt werden, wie beispielsweise das Anhalten der Ausführung eines Prozesses, der einem virtuellen Objekt zugeordnet ist, und/oder das Präsentieren einer Fehlerbeseitigungsschnittstelle für den Benutzer 110 unter Verwendung des Head-Mounted Displays 120.
  • In einigen Implementierungen (in 1 nicht gezeigt) kann der Strahl 130 erweitert werden (z.B. von einem Strahl zu einem Kegel, der auf dem Strahl zentriert ist), um mehr Spielraum zum Erfassen dieser auf der View basierten Bedingung bereitzustellen. Der Bereich 140 kann in der simulierten Realitätsumgebung ein Volumen ungleich Null aufweisen. In einigen Implementierungen (in 1 nicht gezeigt) kann der Strahl 130 expandiert werden und der Bereich 140 kann zu einem Punkt in der simulierten Realitätsumgebung eingeklappt werden.
  • 2 ist eine Veranschaulichung eines Beispiels eines auf einer View basierenden Breakpoint-Szenarios 200 in einem Virtual-Reality-Raum. Ein Avatar 210 eines Benutzers bewegt sich durch eine simulierte Realitätsumgebung und ist zu einem gegebenen Zeitpunkt einer Position in der simulierten Realitätsumgebung zugeordnet. Ein Satz von Views, die einem Breakpoint zugeordnet sind, kann einem Bereich 220 und einem mittleren Betrachtungsvektor 230 und einem Winkelbereich entsprechen. Der Bereich 220 ist in der simulierten Realitätsumgebung definiert. In diesem Beispiel entspricht der Bereich 220 einem Kreis in einer Ebene der simulierten Realitätsumgebung. Um beispielsweise zu bestimmen, ob der Avatar 210 in den Bereich 220 eingetreten ist, kann eine Position des Avatars in einem höherdimensionalen virtuellen Raum (z.B. einem dreidimensionalen virtuellen Raum) auf die Ebene des Bereichs 220 projiziert werden. Andere Formen (in 2 nicht gezeigt) für den Bereich 220 können spezifiziert werden, wie beispielsweise ein Quadrat in einer Ebene, ein Zylinder, eine Kugel, ein Würfel oder eine unregelmäßige Form.
  • Es gibt eine aktuelle View von der Position des Avatars 210 zu einem gegebenen Zeitpunkt, die bestimmt, welcher Abschnitt der simulierten Realitätsumgebung in Bildern erscheinen wird, die einem Benutzer unter Verwendung eines Head-Mounted Displays dargestellt werden. In diesem Beispiel wird die View durch einen Betrachtungsvektor 240 der aktuellen View spezifiziert. Zum Beispiel kann der Betrachtungsvektor 240 parallel zu einem Strahl durch die Mitte der dem Benutzer dargestellten View sein. Zum Beispiel kann der Betrachtungsvektor 240 von der Position des Avatars aus zeigen. Zum Beispiel kann der mittlere Betrachtungsvektor 230 von dem Bereich 220 aus auf ein oder mehrere virtuelle Objekte von Interesse zeigen. Ein Winkel 250 kann zwischen dem mittleren Betrachtungsvektor 230 und dem aktuellen Betrachtungsvektor 240 bestimmt werden und verwendet werden, um zu beurteilen, ob die View ein Element des Satzes von Views ist, der dem Breakpoint zugeordnet ist.
  • Zum Beispiel kann ein Breakpoint ganz oder teilweise davon abhängig sein, dass die View, die dem Avatar 210 zugeordnet ist, im Wesentlichen mit dem mittleren Betrachtungsvektor 230 ausgerichtet ist, während der Avatar 210 innerhalb des Bereichs 220 positioniert ist, der dem Breakpoint zugeordnet ist. Zum Beispiel kann das Bestimmen, ob die View des Avatars 210 die Bedingung des Breakpoints erfüllt, das Bestimmen einschließen, ob die Position der View (z.B. die Position des Avatars 210) innerhalb des Bereichs 220 des Satzes von Views liegt; Bestimmen des Winkels 250 zwischen dem Betrachtungsvektor 240 der View und dem mittleren Betrachtungsvektor 230 des Satzes von Views; und Bestimmen, ob der Winkel 250 innerhalb eines Bereichs von Winkeln des Satzes von Views liegt. Wenn diese auf der View basierende Bedingung erfüllt ist, kann der Breakpoint ausgelöst werden, wenn die auf der View basierende Bedingung die einzige Bedingung für den Breakpoint ist oder wenn auch die anderen Bedingungen (z.B. Erreichen einer festgelegten Codezeile, einer Bedingung über den Zustand eines virtuellen Objekts oder Benutzereingabe) für den Breakpoint erfüllt sind. Sobald der Breakpoint ausgelöst wird, können eine oder mehrere Fehlerbereinigungsaktionen durchgeführt werden, wie das Anhalten der Ausführung eines Prozesses, der einem virtuellen Objekt zugeordnet ist, und/oder das Präsentieren einer Fehlerbereinigungsschnittstelle für einen Benutzer, der den Avatar 210 unter Verwendung eines Head-Mounted Displays steuert.
  • 3 ist ein Blockdiagramm eines Beispiels eines Systems 300, das konfiguriert ist, um auf einer View basierende Breakpoints in einer simulierten Realitätsanwendung zu aktivieren. Das System 300 schließt eine Verarbeitungsvorrichtung 310, eine Datenspeichervorrichtung 320, einen oder mehrere Bewegungssensoren 330, ein Head-Mounted Display 340 und eine Verschaltung 370 ein, durch die die Verarbeitungsvorrichtung 310 auf die anderen Komponenten zugreifen kann. Das System 300 kann konfiguriert sein, um einen auf einer View basierenden Breakpoint für Software zu aktivieren, der einem virtuellen Objekt in einer simulierten Realitätsumgebung einer simulierten Realitätsanwendung zugeordnet ist, die einem Benutzer unter Verwendung des Head-Mounted Displays 340 angezeigt wird. Zum Beispiel kann die Verarbeitungsvorrichtung 310 konfiguriert sein, um die simulierte Realitätsanwendung (z.B. die simulierte Realitätsanwendung 500 von 5) auszuführen. Zum Beispiel kann das System 300 konfiguriert sein, um die Technik 600 von 6 zu implementieren. Zum Beispiel kann das System 300 konfiguriert sein, um die Technik 700 von 7 zu implementieren. Zum Beispiel kann das System 300 konfiguriert sein, um die Technik 800 von 8 zu implementieren. Zum Beispiel kann das System 300 konfiguriert sein, um die Technik 900 von 9 zu implementieren. Zum Beispiel kann das System 300 als Teil einer Head-Mounted-Anzeigevorrichtung (z.B. des Head-Mounted Displays 120) implementiert sein.
  • Die Verarbeitungsvorrichtung 310 ist betreibbar, um Anweisungen auszuführen, die in einer Datenspeichervorrichtung 320 gespeichert wurden. In einigen Implementierungen ist die Verarbeitungsvorrichtung 310 ein Prozessor mit Direktzugriffsspeicher zum temporären Speichern von Anweisungen, die von der Datenspeichervorrichtung 320 gelesen werden, während die Befehle ausgeführt werden. Die Verarbeitungsvorrichtung 310 kann einzelne oder mehrere Prozessoren einschließen, die jeweils einzelne oder mehrere Verarbeitungskerne aufweisen. Alternativ kann die Verarbeitungsvorrichtung 310 eine andere Art von Vorrichtung oder mehrere Vorrichtungen einschließen, die in der Lage sind, Daten zu manipulieren oder zu verarbeiten. Zum Beispiel kann die Datenspeichervorrichtung 320 eine nichtflüchtige Informationsspeichervorrichtung sein, wie eine Festplatte, ein Festkörperlaufwerk, eine Nur-Lese-Speichervorrichtung (ROM), eine optische Platte, eine Magnetplatte oder jede andere geeignete Art von Speichervorrichtung, wie ein nichtflüchtiger computerlesbarer Speicher. Die Datenspeichervorrichtung 320 kann eine andere Art von Vorrichtung oder mehrere Vorrichtungen einschließen, die in der Lage sind, Daten zum Abrufen oder Verarbeiten durch die Verarbeitungsvorrichtung 310 zu speichern. Die Verarbeitungsvorrichtung 310 kann über die Verschaltung 370 auf Daten zugreifen und diese manipulieren, die in der Datenspeichervorrichtung 320 gespeichert sind. Zum Beispiel kann die Datenspeichervorrichtung 320 Anweisungen speichern, die durch die Verarbeitungsvorrichtung 310 ausführbar sind, die bei Ausführung durch die Verarbeitungsvorrichtung 310 bewirken, dass die Verarbeitungsvorrichtung 310 Abläufe durchführt (z.B. Abläufe, welche die Technik 600 von 6 implementieren). In einigen Implementierungen sind die Verarbeitungsvorrichtung 310 und die Datenspeichervorrichtung 320 an dem Head-Mounted Display 340 angebracht.
  • Der eine oder die mehreren Bewegungssensoren 330 können konfiguriert sein, um eine Bewegung des Head-Mounted Displays 340 zu erfassen. Zum Beispiel können der eine oder die mehreren Bewegungssensoren 330 einen oder mehrere Beschleunigungsmesser, Gyroskope und/oder Magnetometer einschließen. In einigen Implementierungen sind der eine oder die mehreren Bewegungssensoren 330 an dem Head-Mounted Display 340 angebracht. In einigen Implementierungen kann eine Ausrichtung und/oder eine Position des Head-Mounted Displays 340 in einem realen Raum basierend mindestens auf Sensordaten von dem einen oder den mehreren Bewegungssensoren 330 und/oder Bildern von einem Bildsensor (z.B. unter Verwendung visueller Trägheitsodometrie (VIO)) bestimmt werden. Zum Beispiel können Änderungen in der Ausrichtung und/oder einer Position des Head-Mounted Displays 340 als eine Steuerschnittstelle für einen Benutzer verwendet werden, um eine View einer simulierten Realitätsumgebung einer simulierten Realitätsanwendung zu ändern, die unter Verwendung des Head-Mounted Displays 340 dargestellt wird.
  • Das Head-Mounted Display 340 schließt eine Bildfläche, eine Linse oder eine andere Art einer optischen Baugruppe ein, die konfiguriert ist, um Licht auf die Augen eines Benutzers zu richten, der das Head-Mounted Display 340 trägt, um dem Benutzer die Darstellung von Bildern (z.B. Video-Frames) zu ermöglichen. Das Head-Mounted Display kann durch ein Befestigungselement (z.B. ein Kopfband oder einen Rahmen) fest auf einem Gesicht des Benutzers gehalten werden. In einigen Implementierungen ist eine Bildfläche des Head-Mounted Displays 340 direkt vor Augen des Benutzers positioniert. Die Bildfläche kann opak sein und die View des Benutzers auf eine Umgebung verdecken. Eine derartige Konfiguration kann zum Beispiel verwendet werden, um immersive virtuelle Realitätserfahrungen bereitzustellen. In einigen Implementierungen schließt das Head-Mounted Display 340 eine optische Baugruppe (z.B. eine Linse und/oder einen Spiegel) ein, die direkt vor Augen des Benutzers positioniert ist und konfiguriert ist, um Licht von einer Bildfläche oder einem Projektor des Head-Mounted Displays 340 zu den Augen des Benutzers zu leiten. Die optische Baugruppe kann auch Licht aus einer Umgebung um den Benutzer herum zu Augen des Benutzers leiten. Zum Beispiel kann die optische Baugruppe einen teilweise reflektierenden Polarisationsfilm einschließen, der auf eine Innenfläche eines transparenten Visiers aufgebracht ist. Die optische Baugruppe kann als optischer Kombinierer fungieren. Zum Beispiel kann eine Linse der optischen Baugruppe auch Licht von einer Umgebung vor dem Benutzer durchlassen, um Augen des Benutzers zu erreichen und dem Benutzer zu ermöglichen, sich vor sich selbst zu sehen, während Objekte einer simulierten Realitätsumgebung, die in einem Bild dargestellt werden, das durch das Head-Mounted Display 340 dargestellt wird, einer View der physischen Umgebung vor dem Benutzer überlagert werden. In einigen Implementierungen kann eine Transparenz der optischen Baugruppe (z.B. eine Linse) angepasst werden, um einer Anwendung (z.B. einer Virtual-Reality-Anwendung oder einer Augmented-Reality-Anwendung) zu entsprechen.
  • Zum Beispiel kann die Verschaltung 370 ein Systembus oder ein verdrahtetes oder drahtloses Netzwerk sein (z.B. ein Körperflächennetzwerk).
  • Die Verarbeitungsvorrichtung 310 kann konfiguriert sein, um auf einer View basierende Breakpoints für eine simulierte Realitätsanwendung (z.B. die simulierte Realitätsanwendung 500 von 5) zu aktivieren. Zum Beispiel kann die Verarbeitungsvorrichtung 310 konfiguriert sein, auf Bewegungsdaten zuzugreifen, die unter Verwendung des einen oder der mehreren Bewegungssensoren 330 erfasst wurden, und basierend mindestens auf den Bewegungsdaten eine View innerhalb einer simulierten Realitätsumgebung zu bestimmen, die unter Verwendung des Head-Mounted Displays 340 dargestellt wird. Die Verarbeitungsvorrichtung 310 kann konfiguriert sein, um zu erkennen, dass die View ein Element eines Satzes von Views ist, die einem Breakpoint zugeordnet ist, und, basierend mindestens darauf, dass die View ein Element des Satzes von Views ist, den Breakpoint auszulösen. Zum Beispiel kann die Verarbeitungsvorrichtung 310 konfiguriert sein, um als Reaktion darauf, dass der Breakpoint ausgelöst wird, eine Fehlerbereinigungsaktion durchzuführen, die dem Breakpoint zugeordnet ist. Die Verarbeitungsvorrichtung 310 kann konfiguriert sein, während des Durchführens der Fehlerbereinigungsaktion mit dem Ausführen eines Simulationsprozesses (z.B. dem Simulationsprozess 520) der simulierten Realitätsumgebung fortzufahren, um zu ermöglichen, dass sich ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung fortsetzt und mit dem Head-Mounted Display 340 betrachtet wird. In einigen Implementierungen entspricht die View einer Position innerhalb der simulierten Realitätsumgebung und einem Betrachtungsvektor von der Position aus, der Satz von Views entspricht einem Bereich in der simulierten Realitätsumgebung und einem Bereich von Winkeln in Bezug auf einen mittleren Betrachtungsvektor, und die Verarbeitungsvorrichtung 310 ist konfiguriert, um zu erfassen, dass die View ein Element des Satzes von Views ist, indem bestimmt wird, ob die Position der View innerhalb des Bereichs des Satzes von Views liegt; Bestimmen eines Winkels zwischen dem Betrachtungsvektor der View und dem mittleren Betrachtungsvektor des Satzes von Views; und Bestimmen, ob der Winkel innerhalb des Bereichs von Winkeln des Satzes von Views (z.B. wie in Bezug auf 2 beschrieben) liegt. In einigen Implementierungen entspricht die View einem Strahl innerhalb der simulierten Realitätsumgebung, der Satz von Views entspricht einem Satz von Strahlen, die durch einen Bereich in der simulierten Realitätsumgebung verlaufen, und die Verarbeitungsvorrichtung 310 ist konfiguriert, um zu erfassen, dass die View ein Element des Satzes von Views ist, indem sie bestimmt, ob der Strahl der View durch den Bereich des Satzes von Views verläuft (z.B. wie in Bezug auf 1 beschrieben). In einigen Implementierungen entspricht die View einem Brennpunkt innerhalb der simulierten Realitätsumgebung, der Satz von Views entspricht einem Bereich in der simulierten Realitätsumgebung, und die Verarbeitungsvorrichtung 310 ist konfiguriert, um zu erfassen, dass die View ein Element des Satzes von Views ist, indem bestimmt wird, ob der Brennpunkt der View innerhalb des Bereichs des Satzes von Views liegt. In einigen Implementierungen ist die Verarbeitungsvorrichtung 310 konfiguriert, um als Reaktion darauf, dass der Breakpoint ausgelöst wird, ein oder mehrere Objekte in der simulierten Realitätsumgebung zu identifizieren, die durch Strahlformung basierend mindestens auf der View zu debuggen sind. Die Verarbeitungsvorrichtung 310 kann konfiguriert sein, um die Fehlerbereinigungsaktion an einem oder mehreren Prozessen durchzuführen, die dem einen oder den mehreren identifizierten Objekten zugeordnet sind.
  • Der Breakpoint kann mehrere Auslösebedingungen aufweisen, die zusammen unter Verwendung einer Logikfunktion (z.B. einer logischen UND-Funktion) getestet und angewendet werden können, um den Breakpoint auszulösen. Zum Beispiel kann der Breakpoint eine auf einer View basierende Auslösebedingung (z.B. wie oben beschrieben) und eine zusätzliche Auslösebedingung aufweisen, und der Breakpoint kann ausgelöst werden, wenn sowohl die auf einer View basierende Auslösebedingung als auch die zusätzliche Auslösebedingung erfüllt sind. Zum Beispiel kann die Verarbeitungsvorrichtung 310 konfiguriert sein, um den Breakpoint basierend mindestens darauf auszulösen, dass eine Codezeile in einem Prozess, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, erreicht wird und die View gleichzeitig dem Breakpoint zugeordnet wird. Zum Beispiel kann die Verarbeitungsvorrichtung 310 konfiguriert sein, den Breakpoint auf Grundlage mindestens einer Bedingung auszulösen, dass ein Zustand eines virtuellen Objekts in der simulierten Realitätsumgebung erfüllt ist und die View gleichzeitig dem Breakpoint zugeordnet ist. Zum Beispiel kann die Verarbeitungsvorrichtung 310 konfiguriert sein, um den Breakpoint basierend mindestens auf dem Erfassen einer Aktion durch einen Benutzer des Head-Mounted Displays 340 und der View, die gleichzeitig dem Breakpoint zugeordnet ist, auszulösen.
  • Die Verarbeitungsvorrichtung 310 kann konfiguriert sein, um eine oder mehrere Fehlerbereinigungsaktionen als Reaktion darauf durchzuführen, dass der Breakpoint ausgelöst wird, um eine Vielzahl von Fehlerbereinigungsmerkmalen bereitzustellen. In einigen Implementierungen schließt die Fehlerbereinigungsaktion das Anhalten der Ausführung eines Prozesses ein, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist. Zum Beispiel kann die Verarbeitungsvorrichtung 310 konfiguriert sein, um eine visuelle Darstellung des Objekts zu erzeugen, das dem angehaltenen Prozess zugeordnet ist, und die visuelle Darstellung innerhalb der simulierten Realitätsumgebung unter Verwendung des Head-Mounted Displays 340 fortzusetzen, während der Prozess angehalten wird. In einigen Implementierungen schließt die Fehlerbereinigungsaktion unter Verwendung des Head-Mounted Displays 340 das Präsentieren einer Fehlerbereinigungssteuerschnittstelle innerhalb der simulierten Realitätsumgebung ein, die es einem Benutzer des Head-Mounted Displays 340 ermöglicht, die Ausführung (z.B. bei der Auflösung von Codezeilen in Software) eines Prozesses zu steuern, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist. Zum Beispiel kann die Fehlerbereinigungssteuerschnittstelle einem Benutzer ermöglichen, mindestens eine Funktion aus einem Satz von Funktionen bestehend aus Unterbrechung, Wiederaufnahme, Einstieg, Überstieg und Ausstieg auszuwählen. Zum Beispiel kann die Fehlerbereinigungssteuerschnittstelle Symbole einschließen, die einem Benutzer ermöglichen, einen Einlassseiten, einen Verriegelungshebel, einen Ausstiegsbefehl, einen Einpersonenbenutzung und/oder einen Unterbrechungsbefehl auszugeben, um die Ausführung des dem virtuellen Objekt zugeordneten Prozesses in der simulierten Realitätsumgebung zu steuern. In einigen Implementierungen schließt die Fehlerbereinigungsaktion unter Verwendung des Head-Mounted Displays 340 innerhalb der simulierten Realitätsumgebung das Präsentieren von Codes eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, ein. Das Präsentieren einer Kopie der Codes (z.B. eine mit Syntax agglomerierte Kopie der Codes) kann das Debuggen der Codes durch den Benutzer, der das Head-Mounted Display 340 trägt, aktivieren. In einigen Implementierungen schließt die Fehlerbereinigungsaktion unter Verwendung des Head-Mounted Displays 340 innerhalb der simulierten Realitätsumgebung das Präsentieren von Werten von Zustandsvariablen eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, ein. In einigen Implementierungen schließt die Fehlerbereinigungsaktion das Erzeugen eines Protokolls eines oder mehrerer Parameter eines virtuellen Objekts in der simulierten Realitätsumgebung ein.
  • 4 ist ein Blockdiagramm eines Beispiels eines Systems 400, das konfiguriert ist, um auf einer View basierende Breakpoints in einer simulierten Realitätsanwendung zu aktivieren. Das System 400 schließt ein Head-Mounted Display 410 und eine Rechenvorrichtung 450 ein, die über eine drahtlose Kommunikationsverbindung 425 kommunizieren. Das Head-Mounted Display 410 schließt einen oder mehrere Bewegungssensoren 412, eine Anzeige 414, eine drahtlose Kommunikationsschnittstelle 416, eine Verschaltung 418, durch die Komponenten des Head-Mounted Displays Informationen austauschen können (z.B. unter der Steuerung eines Mikrocontrollers oder einer anderen Verarbeitungsvorrichtung in dem Head-Mounted Display 410 (in 4 nicht gezeigt)), und ein Befestigungselement 420 ein, das konfiguriert ist, um das Head-Mounted Display 410 fest an einem Kopf eines Benutzers zu halten, der das Head-Mounted Display 410 trägt. Die Rechenvorrichtung 450 kann eine Verarbeitungsvorrichtung 460, eine Datenspeichervorrichtung 470, eine drahtlose Kommunikationsschnittstelle 480, eine Benutzeroberfläche 490 und eine Verschaltung 494, durch die die Datenverarbeitungsvorrichtung 460 auf die anderen Komponenten der Rechenvorrichtung 450 zugreifen kann, einschließen. Die Rechenvorrichtung 450 kann in der Nähe eines Benutzers positioniert sein, der das Head-Mounted Display 410 trägt, und kann Rechenaufgaben zum Steuern des Head-Mounted Displays 410 durchführen. Zum Beispiel kann die Rechenvorrichtung 450 ein Smartphone, ein Tablett, ein Laptop, ein Desktop-Computer oder ein Gerät (z.B. ein intelligenter Fernseher oder ein intelligenter Lautsprecher) auf einem Tisch sein, der sich in einem Raum mit dem Benutzer befindet, oder die Rechenvorrichtung 450 kann eine andere am Körper tragbare Vorrichtung sein, die auf einem anderen Körperteil des Benutzers getragen wird (z.B. eingegliedert in eine Weste, die auf einer Brust getragen wird). Das System 400 kann konfiguriert sein, um auf einer View basierende Breakpoints für eine simulierte Realitätsanwendung zu aktivieren, um das Debuggen durch einen Benutzer, der das Head-Mounted Display 410 trägt, zu ermöglichen. Zum Beispiel kann die Rechenvorrichtung 450 konfiguriert sein, um eine simulierte Realitätsanwendung (z.B. die simulierte Realitätsanwendung 500 von 5) auszuführen. Zum Beispiel kann das System 400 konfiguriert sein, um die Technik 600 von 6 zu implementieren. Zum Beispiel kann das System 400 konfiguriert sein, um die Technik 700 von 7 zu implementieren. Zum Beispiel kann das System 400 konfiguriert sein, um die Technik 800 von 8 zu implementieren. Zum Beispiel kann das System 400 konfiguriert sein, um die Technik 900 von 9 zu implementieren.
  • Das Head-Mounted Display 410 schließt einen oder mehrere Bewegungssensoren 412 ein. Der eine oder die mehreren Bewegungssensoren 412 können konfiguriert sein, um eine Bewegung des Head-Mounted Displays 410 zu erfassen. Zum Beispiel können der eine oder die mehreren Bewegungssensoren 412 einen oder mehrere Beschleunigungsmesser, Gyroskope und/oder Magnetometer einschließen. Der eine oder die mehreren Bewegungssensoren 412 können an dem Head-Mounted Display 410 angebracht sein. In einigen Implementierungen kann eine Ausrichtung und/oder eine Position des Head-Mounted Displays 410 in einem realen Raum basierend mindestens auf Sensordaten von dem einen oder den mehreren Bewegungssensoren 412 und/oder Bildern von einem Bildsensor (z.B. unter Verwendung visueller Trägheitsodometrie (VIO)) bestimmt werden. Zum Beispiel können Änderungen in der Ausrichtung und/oder einer Position des Head-Mounted Displays 410 als eine Steuerschnittstelle für einen Benutzer verwendet werden, um eine View einer simulierten Realitätsumgebung einer simulierten Realitätsanwendung zu ändern, die unter Verwendung des Head-Mounted Displays 410 dargestellt wird.
  • Das Head-Mounted Display 410 schließt eine Anzeige 414 ein. Die Anzeige 414 kann konfiguriert sein, um Bilder darzustellen, wobei digitale Bilder in Licht umgewandelt werden, das von der Anzeige 414 projiziert wird. Die Anzeige 414 kann Licht unter Verwendung eines Pixel-Arrays projizieren, das Licht in einem sichtbaren Spektrum projiziert. Die Anzeige 414 kann eine Bildfläche, eine Linse oder eine andere Art einer optischen Baugruppe einschließen, die konfiguriert ist, um Licht auf die Augen eines Benutzers zu richten, der das Head-Mounted Display 410 trägt, um dem Benutzer die Darstellung von Bildern (z.B. Video-Frames) zu ermöglichen. Zum Beispiel kann die Anzeige 414 eine Bildfläche, wie eine Flüssigkeitstropfens (LCD), eine Leuchtdiodenanzeige (LED) (z.B. ein OLED-Display) oder eine andere geeignete Bildfläche einschließen. Zum Beispiel kann die Anzeige 414 einen Projektor einschließen. In einigen Implementierungen ist eine Bildfläche der Anzeige 414 direkt vor Augen des Benutzers positioniert. Die Bildfläche kann opak sein und die View des Benutzers auf eine Umgebung verdecken. Eine derartige Konfiguration kann zum Beispiel verwendet werden, um immersive virtuelle Realitätserfahrungen bereitzustellen. In einigen Implementierungen schließt die Anzeige 414 eine optische Baugruppe (z.B. eine Linse und/oder einen Spiegel) ein, die direkt vor Augen des Benutzers positioniert ist und konfiguriert ist, um Licht von einem Bildschirm oder Projektor der Anzeige 414 zu den Augen des Benutzers zu leiten. Die optische Baugruppe kann auch Licht aus einer Umgebung um den Benutzer herum zu Augen des Benutzers leiten. Zum Beispiel kann die optische Baugruppe einen teilweise reflektierenden Polarisationsfilm einschließen, der auf eine Innenfläche eines transparenten Visiers aufgebracht ist. Die optische Baugruppe kann als optischer Kombinierer fungieren. Zum Beispiel kann eine Linse der optischen Baugruppe auch Licht von einer physischen Umgebung vor dem Benutzer durchlassen, um Augen des Benutzers zu erreichen und dem Benutzer zu ermöglichen, sich vor sich selbst zu sehen, während Objekte einer simulierten Realitätsumgebung, die in einem Bild dargestellt werden, das durch die Anzeige 414 dargestellt wird, einer View der physischen Umgebung vor dem Benutzer überlagert werden. In einigen Implementierungen kann eine Transparenz der optischen Baugruppe (z.B. eine Linse) angepasst werden, um einer simulierten Realitätsanwendung (z.B. einer Virtual-Reality-Anwendung oder einer Augmented-Reality-Anwendung) zu entsprechen.
  • Das Head-Mounted Display 410 schließt eine drahtlose Kommunikationsschnittstelle 416 ein. Die drahtlose Kommunikationsschnittstelle 416 ermöglicht die Kommunikation mit anderen Vorrichtungen einschließlich der Rechenvorrichtung 450. Zum Beispiel kann die drahtlose Kommunikationsschnittstelle 416 die Kommunikation über ein WLAN-Netzwerk, eine Bluetooth-Verbindung oder eine ZigBee-Verbindung ermöglichen. In einigen Implementierungen kann die drahtlose Kommunikationsschnittstelle 416 verwendet werden, um von der Rechenvorrichtung 450 Daten und/oder Anweisungen zu empfangen, die unter Verwendung der Anzeige 414 eine Darstellung einer View einer simulierten Realitätsumgebung aufrufen. In einigen Implementierungen kann die drahtlose Kommunikationsschnittstelle 416 verwendet werden, um Sensordaten von dem einen oder den mehreren Bewegungssensoren 412 an die Rechenvorrichtung 450 zu übertragen.
  • Zum Beispiel kann die Verschaltung 418 ein Systembus oder ein verdrahtetes oder drahtloses Netzwerk (z.B. ein Körperflächennetzwerk) sein.
  • Das Head-Mounted Display 410 schließt ein Befestigungselement 420 ein. Das Befestigungselement 420 kann konfiguriert sein, um das Head-Mounted Display 410 fest an einem Kopf eines Benutzers zu halten, wenn der Benutzer das Head-Mounted Display 410 trägt. Zum Beispiel kann das Befestigungselement 420 ein Kopfband einschließen. Zum Beispiel kann das Befestigungselement 420 einen Rahmen mit Armen einschließen, die auf Ohren des Benutzers ruhen und eine Linse oder eine Bildfläche des Displays 414 vor einem Auge des Benutzers halten.
  • Die Rechenvorrichtung 450 schließt eine Verarbeitungsvorrichtung 460 ein. Die Verarbeitungsvorrichtung 460 ist betreibbar, um Anweisungen auszuführen, die in einer Datenspeichervorrichtung 470 gespeichert wurden. In einigen Implementierungen ist die Verarbeitungsvorrichtung 460 ein Prozessor mit Direktzugriffsspeicher zum temporären Speichern von Anweisungen, die von der Datenspeichervorrichtung 470 gelesen werden, während die Befehle ausgeführt werden. Die Verarbeitungsvorrichtung 460 kann einzelne oder mehrere Prozessoren einschließen, die jeweils einzelne oder mehrere Verarbeitungskerne aufweisen. Alternativ kann die Verarbeitungsvorrichtung 460 eine andere Art von Vorrichtung oder mehrere Vorrichtungen einschließen, die in der Lage sind, Daten zu manipulieren oder zu verarbeiten. Zum Beispiel kann die Datenspeichervorrichtung 470 eine nichtflüchtige Informationsspeichervorrichtung sein, wie eine Festplatte, ein Festkörperlaufwerk, eine Nur-Lese-Speichervorrichtung (ROM), eine optische Platte, eine Magnetplatte oder jede andere geeignete Art von Speichervorrichtung, wie ein nichtflüchtiger computerlesbarer Speicher. Die Datenspeichervorrichtung 470 kann eine andere Art von Vorrichtung oder mehrere Vorrichtungen einschließen, die in der Lage sind, Daten zum Abrufen oder Verarbeiten durch die Verarbeitungsvorrichtung 460 zu speichern. Die Verarbeitungsvorrichtung 460 kann über die Verschaltung 494 auf Daten zugreifen und diese manipulieren, die in der Datenspeichervorrichtung 470 gespeichert sind. Zum Beispiel kann die Datenspeichervorrichtung 470 Anweisungen speichern, die durch die Verarbeitungsvorrichtung 460 ausführbar sind, die bei Ausführung durch die Verarbeitungsvorrichtung 460 bewirken, dass die Verarbeitungsvorrichtung 460 Abläufe durchführt (z.B. Abläufe, welche die Technik 600 von 6 implementieren).
  • Die Rechenvorrichtung 450 schließt eine drahtlose Kommunikationsschnittstelle 480 ein. Die drahtlose Kommunikationsschnittstelle 480 ermöglicht die Kommunikation mit anderen Vorrichtungen, einschließlich des Head-Mounted Displays 410. Zum Beispiel kann die drahtlose Kommunikationsschnittstelle 480 die Kommunikation über ein WLAN-Netzwerk, eine Bluetooth-Verbindung oder eine ZigBee-Verbindung ermöglichen. Die drahtlose Kommunikationsschnittstelle 480 kann verwendet werden, um die drahtlose Kommunikationsverbindung 425 mit dem Head-Mounted Display 410 herzustellen. In einigen Implementierungen kann die drahtlose Kommunikationsschnittstelle 480 verwendet werden, um Sensordaten (z.B. Bewegungssensordaten) von dem Head-Mounted Display 410 zu empfangen. In einigen Implementierungen kann die drahtlose Kommunikationsschnittstelle 480 verwendet werden, um Daten und/oder Anweisungen, die eine Darstellung einer View einer simulierten Realitätsumgebung unter Verwendung der Anzeige 414 aufrufen, an das Head-Mounted Display 410 zu übertragen.
  • Die Rechenvorrichtung 450 schließt eine Benutzerschnittstelle 490 ein. Zum Beispiel kann die Benutzerschnittstelle 490 einen Touchscreen einschließen. Zum Beispiel kann die Benutzerschnittstelle 490 ein Mikrofon einschließen, das konfiguriert ist, um Sprachbefehle zu empfangen. Zum Beispiel kann die Benutzerschnittstelle 490 einen Bildsensor einschließen, der konfiguriert ist, um Handgestenbefehle zu erfassen. Zum Beispiel kann die Benutzerschnittstelle 490 eine Tastatur, eine Maus, einen Joystick und/oder eine andere tragbare Steuerung einschließen. Zum Beispiel kann die Benutzerschnittstelle 490 einem Benutzer (z.B. wobei der Benutzer das Head-Mounted Display 410 trägt) ermöglichen, Befehle (z.B. Fehlerbereinigungsbefehle) in eine simulierte Realitätsanwendung (z.B. die simulierte Realitätsanwendung 500 von 5), die auf der Rechenvorrichtung 450 läuft, einzugeben und/oder Prozesscodes zu editieren, die einem Objekt einer simulierten Realitätsumgebung der simulierten Realitätsanwendung zugeordnet ist.
  • Zum Beispiel kann die Verschaltung 494 ein Systembus oder ein verdrahtetes oder drahtloses Netzwerk (z.B. ein Körperflächennetzwerk) sein.
  • Die Verarbeitungsvorrichtung 460 kann konfiguriert sein, um auf einer View basierende Breakpoints für eine simulierte Realitätsanwendung (z.B. die simulierte Realitätsanwendung 500 von 5) zu aktivieren. Zum Beispiel kann die Verarbeitungsvorrichtung 460 konfiguriert sein, auf Bewegungsdaten zuzugreifen, die unter Verwendung des einen oder der mehreren Bewegungssensoren 412 erfasst wurden, und basierend mindestens auf den Bewegungsdaten eine View innerhalb einer simulierten Realitätsumgebung zu bestimmen, die unter Verwendung des Head-Mounted Displays 410 dargestellt wird. Die Verarbeitungsvorrichtung 460 kann konfiguriert sein, um zu erkennen, dass die View ein Element eines Satzes von Views ist, die einem Breakpoint zugeordnet ist, und, basierend mindestens darauf, dass die View ein Element des Satzes von Views ist, den Breakpoint auszulösen. Zum Beispiel kann die Verarbeitungsvorrichtung 460 konfiguriert sein, um als Reaktion darauf, dass der Breakpoint ausgelöst wird, eine Fehlerbereinigungsaktion durchzuführen, die dem Breakpoint zugeordnet ist. Die Verarbeitungsvorrichtung 460 kann konfiguriert sein, während des Durchführens der Fehlerbereinigungsaktion mit dem Ausführen eines Simulationsprozesses (z.B. dem Simulationsprozess 520) der simulierten Realitätsumgebung fortzufahren, um zu ermöglichen, dass sich ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung fortsetzt und mit dem Head-Mounted Display 410 betrachtet wird. In einigen Implementierungen entspricht die View einer Position innerhalb der simulierten Realitätsumgebung und einem Betrachtungsvektor von der Position aus, der Satz von Views entspricht einem Bereich in der simulierten Realitätsumgebung und einem Bereich von Winkeln in Bezug auf einen mittleren Betrachtungsvektor, und die Verarbeitungsvorrichtung 460 ist konfiguriert ist, um zu erfassen, dass die View ein Element des Satzes von Views ist, indem bestimmt wird, ob die Position der View innerhalb des Bereichs des Satzes von Views liegt; Bestimmen eines Winkels zwischen dem Betrachtungsvektor der View und dem mittleren Betrachtungsvektor des Satzes von Views; und Bestimmen, ob der Winkel innerhalb des Bereichs von Winkeln des Satzes von Views (z.B. wie in Bezug auf 2 beschrieben) liegt. In einigen Implementierungen entspricht die View einem Strahl innerhalb der simulierten Realitätsumgebung, der Satz von Views entspricht einem Satz von Strahlen, die durch einen Bereich in der simulierten Realitätsumgebung verlaufen, und die Verarbeitungsvorrichtung 460 ist konfiguriert, um zu erfassen, dass die View ein Element des Satzes von Views ist, indem sie bestimmt, ob der Strahl der View durch den Bereich des Satzes von Views verläuft (z.B. wie in Bezug auf 1 beschrieben). In einigen Implementierungen entspricht die View einem Brennpunkt innerhalb der simulierten Realitätsumgebung, der Satz von Views entspricht einem Bereich in der simulierten Realitätsumgebung, und die Verarbeitungsvorrichtung 460 ist konfiguriert, um zu erfassen, dass die View ein Element des Satzes von Views ist, indem bestimmt wird, ob der Brennpunkt der View innerhalb des Bereichs des Satzes von Views liegt. In einigen Implementierungen ist die Verarbeitungsvorrichtung 460 konfiguriert, um als Reaktion darauf, dass der Breakpoint ausgelöst wird, ein oder mehrere Objekte in der simulierten Realitätsumgebung zu identifizieren, die durch Strahlformung basierend mindestens auf der View zu debuggen sind. Die Verarbeitungsvorrichtung 460 kann konfiguriert sein, um die Fehlerbereinigungsaktion an einem oder mehreren Prozessen durchzuführen, die dem einen oder den mehreren identifizierten Objekten zugeordnet sind.
  • Der Breakpoint kann mehrere Auslösebedingungen aufweisen, die zusammen unter Verwendung einer Logikfunktion (z.B. einer logischen UND-Funktion) getestet und angewendet werden können, um den Breakpoint auszulösen. Zum Beispiel kann der Breakpoint eine auf einer View basierende Auslösebedingung (z.B. wie oben beschrieben) und eine zusätzliche Auslösebedingung aufweisen, und der Breakpoint kann ausgelöst werden, wenn sowohl die auf einer View basierende Auslösebedingung als auch die zusätzliche Auslösebedingung erfüllt sind. Zum Beispiel kann die Verarbeitungsvorrichtung 460 konfiguriert sein, um den Breakpoint basierend mindestens darauf auszulösen, dass eine Codezeile in einem Prozess, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, erreicht wird und die View gleichzeitig dem Breakpoint zugeordnet wird. Zum Beispiel kann die Verarbeitungsvorrichtung 460 konfiguriert sein, um den Breakpoint auf Grundlage mindestens einer Bedingung auszulösen, dass ein Zustand eines virtuellen Objekts in der simulierten Realitätsumgebung erfüllt ist und die View gleichzeitig dem Breakpoint zugeordnet ist. Zum Beispiel kann die Verarbeitungsvorrichtung 460 konfiguriert sein, um den Breakpoint basierend mindestens auf dem Erfassen einer Aktion durch einen Benutzer des Head-Mounted Displays 410 und der View, die gleichzeitig dem Breakpoint zugeordnet ist, auszulösen.
  • Die Verarbeitungsvorrichtung 460 kann konfiguriert sein, um eine oder mehrere Fehlerbereinigungsaktionen als Reaktion darauf durchzuführen, dass der Breakpoint ausgelöst wird, um eine Vielzahl von Fehlerbereinigungsmerkmalen bereitzustellen. In einigen Implementierungen schließt die Fehlerbereinigungsaktion das Anhalten der Ausführung eines Prozesses ein, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist. Zum Beispiel kann die Verarbeitungsvorrichtung 460 konfiguriert sein, um eine visuelle Darstellung des Objekts zu erzeugen, das dem angehaltenen Prozess zugeordnet ist, und die visuelle Darstellung innerhalb der simulierten Realitätsumgebung unter Verwendung des Head-Mounted Displays 410 fortzusetzen, während der Prozess angehalten wird. In einigen Implementierungen schließt die Fehlerbereinigungsaktion unter Verwendung des Head-Mounted Displays 410 das Präsentieren einer Fehlerbereinigungssteuerschnittstelle innerhalb der simulierten Realitätsumgebung ein, die es einem Benutzer des Head-Mounted Displays 410 ermöglicht, die Ausführung (z.B. bei der Auflösung von Codezeilen in Software) eines Prozesses zu steuern, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist. Zum Beispiel kann die Fehlerbereinigungssteuerschnittstelle einem Benutzer ermöglichen, mindestens eine Funktion aus einem Satz von Funktionen bestehend aus Unterbrechung, Wiederaufnahme, Einstieg, Überstieg und Ausstieg auszuwählen. Zum Beispiel kann die Fehlerbereinigungssteuerschnittstelle Symbole einschließen, die einem Benutzer ermöglichen, einen Einlassseiten, einen Verriegelungshebel, einen Ausstiegsbefehl, einen Einpersonenbenutzung und/oder einen Unterbrechungsbefehl auszugeben, um die Ausführung des dem virtuellen Objekt zugeordneten Prozesses in der simulierten Realitätsumgebung zu steuern. In einigen Implementierungen schließt die Fehlerbereinigungsaktion unter Verwendung des Head-Mounted Displays 410 innerhalb der simulierten Realitätsumgebung das Präsentieren von Codes eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, ein. Das Präsentieren einer Kopie der Codes (z.B. eine mit Syntax agglomerierte Kopie der Codes) kann das Debuggen der Codes durch den Benutzer, der das Head-Mounted Display 410 trägt, aktivieren. In einigen Implementierungen schließt die Fehlerbereinigungsaktion unter Verwendung des Head-Mounted Displays 410 innerhalb der simulierten Realitätsumgebung das Präsentieren von Werten von Zustandsvariablen eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, ein. In einigen Implementierungen schließt die Fehlerbereinigungsaktion das Erzeugen eines Protokolls eines oder mehrerer Parameter eines virtuellen Objekts in der simulierten Realitätsumgebung ein.
  • In einigen Implementierungen (in 4 nicht gezeigt) kann die Verarbeitung für eine simulierte Realitätsanwendung (z.B. die simulierte Realitätsanwendung 500 von 5) zwischen einer Verarbeitungsvorrichtung in dem Head-Mounted Display 410 und der Verarbeitungsvorrichtung 460 verteilt werden. Zum Beispiel kann ein Simulationsprozess (z.B. der Simulationsprozess 520) auf einer Verarbeitungsvorrichtung des Head-Mounted Displays 410 ausgeführt werden, um die Latenz für Aktualisierungen der View der simulierten Realitätsumgebung zu reduzieren, während ein oder mehrere Prozesse (z.B. der Prozess A 530 und der Prozess B 532), die Objekten in der simulierten Realitätsumgebung zugeordnet sind, auf der Verarbeitungsvorrichtung 460 ausgeführt werden können, um die Zustände der Objekte zu aktualisieren. In einigen Implementierungen können Realitätsfragmente (z.B. das Realitätsfragment 540 und das Realitätsfragment 542) über die drahtlose Kommunikationsverbindung 425 zwischen dem Head-Mounted Display 410 und der Rechenvorrichtung 450 übertragen werden. Somit können die Verarbeitungsvorrichtung des Head-Mounted Displays 410 und die Verarbeitungsvorrichtung 460 als eine einzelne Verarbeitungsvorrichtung, die zwischen dem Head-Mounted Display 410 und der Rechenvorrichtung 450 verteilt ist, welche die simulierte Realitätsanwendung ausführt und hierin beschriebene Techniken implementiert (z.B. die Technik 600 von 6), betrieben werden.
  • 5 ist ein Blockdiagramm eines Beispiels einer simulierten Realitätsanwendung 500. Die simulierte Realitätsanwendung 500 schließt mehrere Prozesse ein, die zusammen eine simulierte Realitätsumgebung implementieren, mit der ein Benutzer während des Tragens eines Head-Mounted Displays 510 sehen und/oder interagieren kann. Die simulierte Realitätsanwendung 500 schließt einen Simulationsprozess 520 ein, der verschiedene Objekte der simulierten Realitätsumgebung koordiniert und Views der simulierten Realitätsumgebung erzeugt und dem Benutzer unter Verwendung des Head-Mounted Displays 510 darstellt. Die simulierte Realitätsanwendung 500 schließt mehrere Prozesse ein, die Objekten der simulierten Realitätsumgebung zugeordnet sind. In diesem Beispiel schließt die simulierte Realitätsanwendung 500 den Prozess A 530, der einem oder mehreren Objekten (z.B. einem Gummiball) zugeordnet sein kann, und den Prozess B 532, der einem oder mehreren Objekten (z.B. einem Avatar eines anderen Benutzers) zugeordnet sein kann, ein. Der Prozess A 530 und der Prozess B 532 können die Zustände ihrer jeweiligen Objekte beibehalten. Der Prozess A 530 und der Prozess B 532 stellen Aktualisierungen der Zustände ihrer jeweiligen Objekte für den Simulationsprozess 520 als ein Realitätsfragment 540 und ein Realitätsfragment 542 bereit. Der Simulationsprozess 520 kann dann dem Benutzer die aktualisierten Objekte unter Verwendung des Head-Mounted Displays 510 darstellen.
  • Zum Beispiel kann das Head-Mounted Display 510 das Head-Mounted Display 340 oder das Head-Mounted Display 410 einschließen.
  • Der Simulationsprozess 520 kann einen oder mehrere Threads einschließen. Zum Beispiel kann der Simulationsprozess 520 ein Physik-Engine implementieren, das bestimmt, wie Objekte in der simulierten Realitätsumgebung miteinander interagieren. Der Simulationsprozess 520 kann aktualisierte Zustandsinformationen für Objekte der simulierten Realitätsumgebung von Prozessen empfangen, die diesen Objekten in Form von Realitätsfragmenten entsprechen (z.B. das Realitätsfragment 540 und das Realitätsfragment 542). Zum Beispiel können das Realitätsfragment 540 und das Realitätsfragment 542 über eine Zwischenprozessschnittstelle an den Simulationsprozess 520 weitergeleitet werden. Der Simulationsprozess 520 kann Bewegungsdaten von dem Head-Mounted Display 510 empfangen und eine View basierend mindestens auf den Bewegungsdaten aktualisieren. Der Simulationsprozess 520 kann die View der simulierten Realitätsumgebung als ein oder mehrere Bilder (z.B. ein Bild für ein linkes Auge des Benutzers und ein Bild für ein rechtes Auge des Benutzers) wiedergeben, die an dem Head-Mounted Display 510 dem Benutzer zur Darstellung weitergeleitet werden können. Zum Beispiel können die wiedergegebenen Bilder für die View über eine Verschaltung (e.g., die Verschaltung 370) auf das Head-Mounted Display 510 übertragen werden. Zum Beispiel können die gerenderten Bilder für die View über eine drahtlose Kommunikationsverbindung (z.B. die drahtlose Kommunikationsverbindung 425) auf das Head-Mounted Display 510 übertragen werden. Der Prozess A 530 kann einen oder mehrere Threads einschließen. Der Prozess A 530 kann den Zustand eines virtuellen Objekts (z.B. eines virtuellen Buchs oder eines virtuellen Gummiballs) beibehalten und aktualisieren. Der Prozess B 532 kann einen oder mehrere Threads einschließen. Der Prozess B 532 kann den Zustand eines virtuellen Objekts (z.B. eines virtuelles Telefons oder eines Avatars für einen anderen Benutzer) beibehalten und aktualisieren. In einigen Nutzungsszenarien wird, wenn ein Breakpoint für den Prozess A 530 ausgelöst wird, der Prozess A 530 angehalten und ein neuer Prozess (in 5 nicht gezeigt) erzeugt, um eine Fehlerbereinigungssteuerschnittstelle für den Prozess A 530 als ein neues virtuelles Objekt in der simulierten Realitätsumgebung bereitzustellen. Der Prozess B 532 kann weiterhin normal ausgeführt werden, während der Prozess A 530 nach dem Auslösen des Haltepunkts debuggt wird. Der Simulationsprozess 520 wird auch weiterhin ausgeführt, um dem Benutzer die simulierte Realitätsumgebung über das Head-Mounted Display 510 darzustellen. Der Benutzer kann in die Lage versetzt werden, den Prozess A 530 von innerhalb der simulierten Realitätsumgebung zu debuggen, während die Option beibehalten wird, mit anderen Objekten in der simulierten Realitätsumgebung, die hilfreich sein können, wie beispielsweise einem Avatar eines anderen Benutzers, weiter zu interagieren.
  • 6 ist ein Flussdiagramm eines Beispiels einer Technik 600 zum Aktivieren eines auf einer View basierenden Breakpoints. Die Technik 600 schließt Folgendes ein: Zugreifen 610 auf Bewegungsdaten ein, die unter Verwendung eines oder mehrerer Bewegungssensoren erfasst werden; Bestimmen 620, basierend mindestens auf den Bewegungsdaten, einer View innerhalb einer simulierten Realitätsumgebung, die unter Verwendung eines Head-Mounted Displays dargestellt wird; Erfassen 630, dass die View einem Breakpoint zugeordnet ist; basierend mindestens darauf, dass die View einem Breakpoint zugeordnet ist, Auslösen 640 des Breakpoints; als Reaktion darauf, dass der Breakpoint ausgelöst wird, Durchführen 650 einer Fehlerbereinigungsaktion, die dem Breakpoint zugeordnet ist; und Fortsetzen 660 des Ausführens eines Simulationsprozesses der simulierten Realitätsumgebung während des Durchführens der Fehlerbereinigungsaktion, um zu ermöglichen, dass sich ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung fortsetzt und mit dem Head-Mounted Display betrachtet wird. Zum Beispiel kann die Technik 600 durch das System 300 von 3 implementiert werden. Zum Beispiel kann die Technik 600 durch das System 400 von 4 implementiert werden.
  • Die Technik 600 schließt das Zugreifen 610 auf Bewegungsdaten ein, die unter Verwendung eines oder mehrerer Bewegungssensoren (z.B. des einen oder der mehreren Bewegungssensoren 330 oder des einen oder der mehreren Bewegungssensoren 412) erfasst wurden. Zum Beispiel können der eine oder die mehreren Bewegungssensoren einen oder mehrere Beschleunigungsmesser, Gyroskope und/oder Magnetometer einschließen. In einigen Implementierungen sind der eine oder die mehreren Bewegungssensoren an einem Head-Mounted Display (z.B. dem Head-Mounted Display 340 oder dem Head-Mounted Display 410) angebracht. In einigen Implementierungen können eine Ausrichtung und/oder eine Position des Head-Mounted Displays in einem realen Raum basierend mindestens auf Sensordaten von dem einen oder den mehreren Bewegungssensoren bestimmt werden. Auf die Bewegungsdaten kann auf verschiedene Weise 610 zugegriffen werden. Zum Beispiel kann auf die Sensordaten 610 zugegriffen werden, indem direkt aus einem Sensor oder aus einem Speicher über eine Verschaltung gelesen wird (z.B. die Verschaltung 370). Zum Beispiel kann auf die Sensordaten 610 zugegriffen werden, indem Sensordaten über eine Kommunikationsverbindung empfangen werden (z.B. die drahtlose Kommunikationsverbindung 425).
  • Die Technik 600 schließt das Bestimmen 620, basierend mindestens auf den Bewegungsdaten, einer View innerhalb einer simulierten Realitätsumgebung ein, die unter Verwendung eines Head-Mounted Displays (z.B. des Head-Mounted Displays 340 oder des Head-Mounted Displays 410) dargestellt wird. Wenn zum Beispiel ein Benutzer, der das Head-Mounted Display trägt, seinen Kopf dreht, kann die View der simulierten Realitätsumgebung um einen entsprechenden Grad innerhalb der simulierten Realitätsumgebung gedreht werden. Wenn beispielsweise ein Benutzer, der das Head-Mounted Display trägt, geht, kann die View der simulierten Realitätsumgebung verschoben werden, indem eine entsprechende Änderung an einer Position der View (z.B. einer Position eines Avatars des Benutzers) in der simulierten Realitätsumgebung (z.B. einer simulierten Realitätsumgebung einer Augmented-Reality-Anwendung, die einer physischen Umgebung überlagert ist) vorgenommen wird. In einigen Implementierungen können auch andere Eingaben verwendet werden, um die View der simulierten Realitätsumgebung zu ändern. Zum Beispiel kann eine Joystick-oder Mauseingabe bewirken, dass die Position eines Avatars und eine entsprechende View geändert werden soll (z.B. Ändern der Position einer virtuellen Kamera für die View), während die Bewegungsdaten verwendet werden können, um eine Ausrichtung der View zu ändern (z.B. Ändern der Ausrichtung einer virtuellen Kamera für die View). Zum Beispiel können Bilddaten mit den Bewegungsdaten verwendet werden, um die View 620 zu bestimmen (z.B. durch Bestimmen einer Pose der Anzeigevorrichtung unter Verwendung visueller Trägheitsodometrie (VIO)).
  • Die Technik 600 schließt das Erfassen 630 ein, ob die View einem Breakpoint zugeordnet ist. Zum Beispiel kann das Erfassen 630, ob die View dem Breakpoint zugeordnet ist, das Erfassen 630 einschließen, dass die View ein Element eines Satzes von Views ist, der einem Breakpoint zugeordnet ist. Die View, die ein Element des Satzes von Views ist, der dem Breakpoint zugeordnet ist, kann eine auf einer View basierende Auslösebedingung für den Breakpoint sein. Der Satz von Views, der dem Breakpoint zugeordnet ist, kann auf vielfältige Weise spezifiziert werden. In einigen Implementierungen entspricht der Satz von Views einem Bereich in der simulierten Realitätsumgebung und einem Bereich von Winkeln in Bezug auf einen mittleren Betrachtungsvektor (z.B. wie in Bezug auf das Nutzungsszenario 200 von 2 beschrieben). Zum Beispiel kann die Technik 700 von 7 implementiert werden, um 630 zu erfassen, dass die View ein Element des Satzes von Views ist. In einigen Implementierungen entspricht die View einem Strahl innerhalb der simulierten Realitätsumgebung (z.B. einem Strahl von einer aktuellen Position eines Avatars oder einer virtuellen Kamera), der Satz von Views entspricht einem Satz von Strahlen, die durch einen Bereich (z.B. den Bereich 140) in der simulierten Realitätsumgebung verlaufen, und das Erfassen 630, dass die View ein Element des Satzes von Views ist, das Bestimmen umfasst, ob der Strahl der View durch den Bereich des Satzes von Views verläuft (z.B. wie in Bezug auf das Nutzungsszenario 100 von 1 beschrieben). In einigen Implementierungen entspricht die View einem Brennpunkt innerhalb der simulierten Realitätsumgebung, der Satz von Views entspricht einem Bereich in der simulierten Realitätsumgebung, und das Erfassen 630, dass die View ein Element des Satzes von Views ist, schließt das Bestimmen ein, ob der Brennpunkt der View innerhalb des Bereichs des Satzes von Views liegt.
  • Die Technik 600 schließt, basierend mindestens auf der View, die dem Breakpoint zugeordnet ist (z.B. basierend mindestens auf der View, die ein Element des Satzes von Views ist, der dem Breakpoint zugeordnet ist), das Auslösen 640 des Breakpoints ein. Der Breakpoint kann einer oder mehreren Auslösebedingungen zugeordnet sein, einschließlich der View, die ein Element des Satzes von Views ist. In einigen Implementierungen ist die View, die ein Element des Satzes von Views ist, die einzige Auslösebedingung, die dem Breakpoint zugeordnet ist. In einigen Implementierungen kann die View, die ein Element des Satzes von Views ist, eine von mehreren Auslösebedingungen für den Breakpoint sein. Wo der Breakpoint mehrere Auslösebedingungen aufweist, können die Auslösebedingungen zusammen unter Verwendung einer Logikfunktion (z.B. einer logischen UND-Funktion) getestet und angewendet werden, um den Breakpoint auszulösen. Zum Beispiel kann der Breakpoint ausgelöst werden, wenn sowohl eine auf einer View basierende Auslösebedingung als auch eine zusätzliche Auslösebedingung erfüllt sind. Zum Beispiel kann das Auslösen 640 des Breakpoints das Auslösen des Breakpoints basierend auf mindestens einer Codezeile in einem Prozess (z.B. dem Prozess A 530) einschließen, der einem Objekt (z.B. einem Gummiball) in der simulierten Realitätsumgebung zugeordnet ist, das erreicht wird, und wobei die View gleichzeitig dem Breakpoint zugeordnet wird. Zum Beispiel kann das Konditionieren beim Erreichen einer Codezeile und der View einem Benutzer helfen, die Leistung bestimmter Codeabschnitte eines Prozesses zu untersuchen, der einem Objekt während bestimmter Betrachtungsszenarien zugeordnet ist. Zum Beispiel kann das Auslösen 640 des Breakpoints das Auslösen des Breakpoints basierend mindestens auf einer Bedingung einschließen, dass ein Zustand eines virtuellen Objekts in der simulierten Realitätsumgebung erfüllt ist und die View gleichzeitig dem Breakpoint zugeordnet ist. Zum Beispiel kann das Auslösen 640 des Breakpoints das Auslösen des Breakpoints basierend mindestens auf dem Erfassen einer Aktion (z.B. einer Handgeste oder einer Tastendruckeingabe über die Benutzerschnittstelle 490) durch einen Benutzer des Head-Mounted Displays und der View, die gleichzeitig dem Breakpoint zugeordnet ist, einschließen.
  • Die Technik 600 schließt als Reaktion darauf, dass der Breakpoint ausgelöst wird, das Durchführen 650 einer Fehlerbereiniungsaktion ein, die dem Breakpoint zugeordnet ist. Zum Beispiel kann die Fehlerbereinigungsaktion das Anhalten der Ausführung eines Prozesses (z.B. des Prozesses A 530), der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, und/oder das Präsentieren einer Fehlerbereinigungssteuerschnittstelle für den Benutzer unter Verwendung des Head-Mounted Displays einschließen, um das Debuggen des Prozesses zu erleichtern. Eine oder mehrere Fehlerbereinigungsaktionen können in 650 als Reaktion darauf durchgeführt werden, dass der Breakpoint ausgelöst wird, um eine Vielzahl von Fehlerbereinigungsmerkmalen bereitzustellen. Zum Beispiel können verschiedene Kombinationen der in Bezug auf die Technik 800 von 8 beschriebenen Aktionen implementiert werden, um in 650 die Fehlerbereinigungsaktion durchzuführen.
  • Die Technik 600 schließt, während in 650 die Fehlerbereinigungsaktion durchgeführt wird, das Fortfahren 660 ein, einen Simulationsprozess (z.B. den Simulationsprozess 520) der simulierten Realitätsumgebung auszuführen, um zu ermöglichen, dass sich ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung fortsetzt und mit dem Head-Mounted Display betrachtet wird. Zum Beispiel kann ein Benutzer in die Lage versetzt werden, einen Prozess, der einem bestimmten Objekt von Interesse innerhalb der simulierten Realitätsumgebung zugeordnet ist, unabhängig zu debuggen, während er weiterhin die simulierte Realitätsumgebung verwendet, die von einer simulierten Realitätsanwendung bereitgestellt wird, um andere Objekte (z.B. einen Avatar für einen anderen Benutzer) in der simulierten Realitätsumgebung anzusehen und/oder damit zu interagieren. Zum Beispiel kann die Fehlerbereinigungsaktion das Anhalten der Ausführung eines Prozesses (z.B. des Prozesses A 530) einschließen, der einem Objekt (z.B. einem Gummiball) in der simulierten Realitätsumgebung zugeordnet ist, und während der Prozess zum Debuggen angehalten wird, können andere Prozesse (z.B. der Prozess B 532) für andere Objekte (z.B. einen Avatar) weiter ausgeführt werden, wodurch fortgesetzte Interaktionen mit diesen anderen Objekten ermöglicht werden.
  • 7 ist ein Flussdiagramm eines Beispiels einer Technik 700 zum Erfassen, dass eine View ein Element eines Satzes von Views ist, der einem Breakpoint zugeordnet ist. Die View kann als eine Position innerhalb der simulierten Realitätsumgebung und als ein Betrachtungsvektor von der Position aus spezifiziert werden. Der Satz von Views kann einem Bereich in der simulierten Realitätsumgebung und einem Bereich von Winkeln in Bezug auf einen mittleren Betrachtungsvektor entsprechen. Die Technik 700 schließt Folgendes ein: Bestimmen 710 ein, ob eine Position der View innerhalb eines Bereichs des Satzes von Views liegt; Bestimmen 720 eines Winkels zwischen dem Betrachtungsvektor der View und dem mittleren Betrachtungsvektor des Satzes von Views; und Bestimmen 730, ob der Winkel innerhalb eines Bereichs von Winkeln des Satzes von Views liegt. Zum Beispiel kann die Technik 700 durch das System 300 von 3 implementiert werden. Zum Beispiel kann die Technik 700 durch das System 400 von 4 implementiert werden.
  • Die Technik 700 schließt das Bestimmen 710 ein, ob die Position der View innerhalb des Bereichs des Satzes von Views liegt. Zum Beispiel kann die Position der View einer Position eines Avatars eines Benutzers, der ein Head-Mounted Display trägt, und/oder der Position einer virtuellen Kamera, die dem Benutzer zugeordnet ist, entsprechen. Die Position der View kann Koordinaten eines Punkts in der simulierten Realitätsumgebung entsprechen (z.B. eine simulierte Realitätsumgebung, die ein dreidimensionaler Raum ist). In einigen Implementierungen schließt das Bestimmen 710, ob die Position der View innerhalb des Bereichs des Satzes von Views liegt, das Prüfen ein, ob der Schnittpunkt der Position der View mit dem Bereich des Satzes von Views nicht leer ist. In einigen Implementierungen schließt das Bestimmen 710, ob die Position der View innerhalb des Bereichs des Satzes von Views liegt, das Projizieren der Position der View auf einen niedriger dimensionalen Unterraum und das Prüfen, ob der Schnittpunkt der Projektion der Position der View mit dem Bereich des Satzes von Views nicht leer ist, ein. Zum Beispiel kann eine dreidimensionale Position auf eine zweidimensionale Ebene projiziert werden (z.B. ein virtueller Boden), auf der ein Bereich des Satzes von Views spezifiziert ist (z.B. wie in Bezug auf das Nutzungsszenario 200 von 2 beschrieben).
  • Die Technik 700 schließt das Bestimmen 720 eines Winkels zwischen dem Betrachtungsvektor der View und dem zentralen Betrachtungsvektor des Satzes von Views ein. Zum Beispiel kann der Betrachtungsvektor parallel zu einem Strahl durch die Mitte der View sein, die dem Benutzer unter Verwendung eines Head-Mounted Displays dargestellt wird. Zum Beispiel kann der Betrachtungsvektor von der Position der View aus zeigen. Zum Beispiel kann der zentrale Betrachtungsvektor von dem Bereich des Satzes von Views aus auf ein oder mehrere virtuelle Objekte von Interesse zeigen. Die Technik 700 schließt das Bestimmen 730 ein, ob der Winkel innerhalb des Winkelbereichs des Satzes von Views liegt. Wenn zum Beispiel die Größe des Winkels kleiner als ein Schwellenwert ist, dann kann der Winkel innerhalb des Winkelbereichs des Satzes von Views liegen. In einigen Implementierungen können die zwei Winkel zwischen dem Betrachtungsvektor und dem mittleren Betrachtungsvektor des Satzes von Views 720 bestimmt und ausgewertet werden. Zum Beispiel können eine Nickdrehung und eine Gierdrehung zwischen den zwei Vektoren in 720 bestimmt werden, und die Größe des Nickwinkels kann mit einem ersten Schwellenwert verglichen werden, und die Größe des Gierwinkels kann mit einem zweiten Schwellenwert verglichen werden, der sich von dem ersten Schwellenwert unterscheiden kann. Wenn zum Beispiel die Position der View innerhalb des Bereichs liegt und der Winkel innerhalb des Bereichs von Winkeln liegt, dann wird die View als ein Element des Satzes von Views erfasst, der dem Breakpoint zugeordnet ist.
  • 8 ist ein Flussdiagramm eines Beispiels einer Technik 800 zum Durchführen von Fehlerbereinigungsaktionen als Reaktion darauf, dass ein Breakpoint ausgelöst wird. Die Technik 800 schließt Folgendes ein: Anhalten 810 der Ausführung eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist; Erzeugen 820 einer visuellen Darstellung des Objekts, das dem angehaltenen Prozess zugeordnet ist; Fortsetzen des Präsentierens 830 der visuellen Darstellung innerhalb der simulierten Realitätsumgebung unter Verwendung des Head-Mounted Displays, während der Prozess angehalten wird; Präsentieren 840 einer Fehlerbereinigungssteuerschnittstelle innerhalb der simulierten Realitätsumgebung unter Verwendung des Head-Mounted Displays; Präsentieren 850 von Codes eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, innerhalb der simulierten Realitätsumgebung unter Verwendung des Head-Mounted Displays; Präsentieren 860 von Werten von Zustandsvariablen eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, innerhalb der simulierten Realitätsumgebung unter Verwendung des Head-Mounted Displays; und Erzeugen 870 eines Protokolls von einem oder mehreren Parametern eines virtuellen Objekts in der simulierten Realitätsumgebung. Zum Beispiel kann die Technik 800 durch das System 300 von 3 implementiert werden. Zum Beispiel kann die Technik 800 durch das System 400 von 4 implementiert werden.
  • Die Technik 800 schließt das Anhalten der Ausführung eines Prozesses in 810 ein, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist. Ein Zustand des Objekts kann aufhören, sich zu entwickeln, während der zugehörige Prozess in 810 angehalten wird. Das Anhalten der Ausführung des Prozesses in 810 für das Objekt kann einem Benutzer (z.B. einem Softwareentwickler), der ein Head-Mounted Display (z.B. das Head-Mounted Display 410) trägt, ermöglichen, die Codes und/oder die Zustandsvariablen des Prozesses zu prüfen. Zum Beispiel kann der Prozess A 530 in 810 angehalten werden, um das Debugging des Prozesses A 530 zu ermöglichen.
  • Die Technik 800 schließt das Erzeugen 820 einer visuellen Darstellung des Objekts ein, das dem angehaltenen Prozess zugeordnet ist (z.B. dem Prozess A 530). Zum Beispiel kann ein Simulationsprozess (z.B. der Simulationsprozess 520) für die simulierte Realitätsumgebung 820 die visuelle Darstellung des Objekts (z.B. eines Gummiballs, der mitten in der Luft angehalten wird) basierend mindestens auf den neuesten verfügbaren Zustandsinformationen für das Objekt (z.B. wie in dem Realitätsfragment 540 codiert) zu dem Zeitpunkt, zu dem der Prozess in 810 angehalten wird, erzeugen. Die Technik 800 schließt das Fortsetzen des Präsentierens 830 unter Verwendung des Head-Mounted Displays (z.B. des Head-Mounted Displays 340 oder des Head-Mounted Displays 410) der visuellen Darstellung innerhalb der simulierten Realitätsumgebung ein, während der Prozess in 810 angehalten wird.
  • Die Technik 800 schließt das Präsentieren 840 unter Verwendung des Head-Mounted Displays (z.B. des Head-Mounted Displays 340 oder des Head-Mounted Displays 410) einer Fehlerbereinigungssteuerschnittstelle innerhalb der simulierten Realitätsumgebung ein, die es einem Benutzer des Head-Mounted Displays ermöglicht, die Ausführung (z.B. bei der Auflösung von Codezeilen in Software) eines Prozesses (z.B. des Prozesses A 530), der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, zu steuern. Zum Beispiel kann die Fehlerbereinigungssteuerschnittstelle einem Benutzer ermöglichen, mindestens eine Funktion aus einem Satz von Funktionen bestehend aus Unterbrechung, Wiederaufnahme, Einstieg, Überstieg und Ausstieg auszuwählen. Zum Beispiel kann die Fehlerbereinigungssteuerschnittstelle Symbole einschließen, die einem Benutzer ermöglichen, einen Einlassseiten, einen Verriegelungshebel, einen Ausstiegsbefehl, einen Einpersonenbenutzung und/oder einen Unterbrechungsbefehl auszugeben, um die Ausführung des dem virtuellen Objekt zugeordneten Prozesses in der simulierten Realitätsumgebung zu steuern. In einigen Implementierungen kann die Fehlerbereinigungssteuerschnittstelle als neues virtuelles Objekt in der simulierten Realitätsumgebung mit einem zugeordneten Prozess erstellt werden, der konfiguriert ist, um eine Fehlerbereinigungssitzung für einen anderen Prozess zu verwalten, der debuggt wird. In diesem Beispiel wird der Prozess, der in 810 angehalten wird, debuggt.
  • Die Technik 800 schließt das Präsentieren 850 unter Verwendung des Head-Mounted Displays innerhalb der simulierten Realitätsumgebung von Codes eines Prozesses (z.B. des Prozesses A 530) ein, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist. Zum Beispiel kann die Kopie der in 850 präsentierten Codes eine mit Syntax agglomerierte Kopie der Codes sein, die das Debuggen der Codes durch den Benutzer, der das Head-Mounted Display, aktivieren kann. In einigen Implementierungen können Codes in 850 in einem Abschnitt der Fehlerbereinigungssteuerschnittstelle präsentiert werden, der in 840 für den Prozess präsentiert wird, der in 810 angehalten wird.
  • Die Technik 800 schließt das Präsentieren 860 unter Verwendung des Head-Mounted Displays innerhalb der simulierten Realitätsumgebung von Werten von Zustandsvariablen eines Prozesses (z.B. des Prozesses A 530), der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, ein. In einigen Implementierungen können die Werte von Zustandsvariablen 860 in einem Abschnitt der Fehlerbereinigungssteuerschnittstelle präsentiert werden, der in 840 für den Prozess präsentiert wird, der in 810 angehalten wird.
  • Die Technik 800 schließt das Erzeugen 870 eines Protokolls eines oder mehrerer Parameter (z.B. Ausgaben oder interne Zustandsvariablen) eines virtuellen Objekts in der simulierten Realitätsumgebung ein. Zum Beispiel kann das Protokoll eine Zeithistorie des einen oder der mehreren Parameter aufzeichnen, und Einträge in dem Protokoll können jeweilige Zeitstempel einschließen. Beispielsweise kann das Protokoll in den Speicher der Verarbeitungsvorrichtung 310 und/oder in die Datenspeichervorrichtung 320 geschrieben werden. In einigen Implementierungen kann das gesamte Protokoll oder ein Abschnitt (z.B. die jüngsten N Einträge) des Protokolls unter Verwendung des Head-Mounted Displays innerhalb der simulierten Realitätsumgebung präsentiert werden. In einigen Implementierungen können die Protokolleinträge in einem Abschnitt der Fehlerbereinigungssteuerschnittstelle präsentiert werden, die in 840 für den Prozess präsentiert wird, der in 810 angehalten wird.
  • 9 ist ein Flussdiagramm eines Beispiels einer Technik 900 zum Identifizieren eines oder mehrerer virtueller Objekte zum Debuggen als Reaktion darauf, dass ein Breakpoint ausgelöst wird. Zum Beispiel können das eine oder die mehreren Objekte, die zu debuggen sind, basierend mindestens auf der View zum Zeitpunkt des Auslösens des Breakpoints ausgewählt werden. Die Technik 900 schließt als Reaktion darauf, dass der Breakpoint ausgelöst wird, Folgendes ein: Identifizieren 910 eines oder mehrerer Objekte in der simulierten Realitätsumgebung, die durch Strahlformung basierend mindestens auf der View zu debuggen sind; und Durchführen 920 der Fehlerbereinigungsaktion an einem oder mehreren Prozessen, die dem einen oder den mehreren identifizierten Objekten zugeordnet sind. Zum Beispiel kann die Technik 900 durch das System 300 von 3 implementiert werden. Zum Beispiel kann die Technik 900 durch das System 400 von 4 implementiert werden.
  • Die Technik 900 schließt als Reaktion darauf, dass der Breakpoint ausgelöst wird, das Identifizieren 910 eines oder mehrerer Objekte in der simulierten Realitätsumgebung ein, die durch Strahlformung basierend mindestens auf der View zu debuggen sind. Zum Beispiel kann ein Strahl, der durch die Mitte der View projiziert wird, die dem Benutzer unter Verwendung eines Head-Mounted Displays dargestellt wird, zur Strahlformierung verwendet werden, um in 910 das eine oder die mehreren Objekte zu identifizieren, die zu debuggen sind. Wenn der Strahl auf ein virtuelles Objekt in der simulierten Realitätsumgebung trifft, kann das Objekt in 910 zum Debuggen identifiziert werden. In einigen Implementierungen wird nur das nächstliegende Objekt, das der Strahl durchläuft, in 910 identifiziert. In einigen Implementierungen werden mehrere Objekte, die der Strahl durchläuft, in 910 identifiziert. In einigen Implementierungen werden mehrere Strahlen, die aus der View abgeleitet werden, geformt, um in 910 das eine oder die mehreren Objekte zum Debuggen zu identifizieren. In einigen Implementierungen zeigt die Blickerfassung in 910 auf ein Objekt, auf das der Benutzer gerade blickt.
  • Die Technik 900 schließt das Durchführen 920 einer Fehlerbereinigungsaktion an einem oder mehreren Prozessen ein, die dem einen oder den mehreren in 910 identifizierten Objekten zugeordnet sind. Zum Beispiel kann die Technik 800 von 8 implementiert werden, um in 920 die Fehlerbereinigungsaktion an einem Prozess durchzuführen, der einem oder mehreren der Objekte zugeordnet ist, die in 910 identifiziert wurden. Andere Kombinationen von Fehlerbereinigungsaktionen können für einen derartigen Prozess durchgeführt werden. In einigen Implementierungen schließt das Durchführen 920 einer Fehlerbereinigungsaktion das Erstellen eines separaten Debugger-Prozesses für jeden Prozess ein, der einem Objekt zugeordnet ist, das in 910 identifiziert wurde.
  • Die hierin beschriebenen Techniken (z.B. die Technik 600 von 6) können für Anwendungen simulierter Realität verwendet werden, die unter Verwendung einer Vielfalt von Display-Hardware dargestellt werden. Zum Beispiel kann die Anzeige, die verwendet wird, um eine simulierte Realitätsumgebung darzustellen, wie hierin beschrieben, Teil eines Head-Mounted-Displays, eines Smartphones oder eines Tablets sein, auf dem die simulierte Realitätsanwendung läuft.
  • Implementierungen oder Abschnitte von Implementierungen der vorstehenden Offenbarung können die Form eines Computerprogrammprodukts annehmen, auf das zum Beispiel von einem computerverwendbaren oder computerlesbaren Medium zugegriffen werden kann. Ein computerverwendbares oder computerlesbares Medium kann eine beliebige Vorrichtung sein, die zum Beispiel greifbar ein Programm oder eine Datenstruktur zur Verwendung durch oder in Verbindung mit einem beliebigen Prozessor enthalten, speichern, kommunizieren oder transportieren kann. Das Medium kann zum Beispiel eine elektronische, magnetische, optische, elektromagnetische oder Halbleitervorrichtung sein. Andere geeignete Medien sind ebenfalls verfügbar. Derartige computerverwendbare oder computerlesbare Medien können als nichtflüchtiger Speicher oder Medien bezeichnet werden und können RAM oder andere flüchtige Speicher-oder Speichervorrichtungen einschließen, die sich mit der Zeit ändern können.
  • Einige Implementierungen können Daten sammeln und/oder verwenden, um das Debuggen von Anwendungen simulierter Realität zu ermöglichen. Es ist möglich, dass diese Daten personenbezogene Informationen einschließen, die eine bestimmte Person identifizieren. Beispiele für personenbezogene Informationen schließen Namen, Geburtsdaten, Adressen, Telefonnummern, Standorte, Benutzernamen in sozialen Medien oder andere Kontobenutzernamen und/oder physiologische Informationen ein.
  • In einigen Implementierungen kann die Verwendung dieser Art von Informationen vorteilhaft sein, um die Verwendung der hierin beschriebenen Systeme und Verfahren zu verbessern. Zum Beispiel können personenbezogene Informationen verwendet werden, um Orte in einer realen Umgebung zu erkennen, um den Betrieb und das Debuggen von Augmented-Reality-Anwendungen zu verbessern.
  • Gut etablierte Richtlinien und Praktiken sollten von jenen verwendet werden, die personenbezogene Informationen sammeln, empfangen, weiterleiten und/oder verwenden. Zum Beispiel sollten industrielle Standardpraxen und Schutzmaßnahmen erfüllt und überschritten werden, um derartige Informationen sicher zu halten. Benutzer sollten diese Richtlinien und Prozeduren sowohl vor dem Sammeln und Verwenden von Informationen als auch immer dann aufmerksam machen, wenn sich die Richtlinien und Prozeduren ändern. Der Zugriff auf diese Informationen sollte beschränkt sein, um vor unsachgemäßer Verwendung und unbeabsichtigter Offenbarung zu schützen. Diejenigen, die personenbezogene Informationen sammeln, empfangen, weiterleiten und/oder verwenden, müssen auch alle Gesetze und Vorschriften in den relevanten Rechtssystemen erfüllen, wobei anerkannt wird, dass diese Gesetze und Vorschriften von Land zu Land variieren.
  • Die Systeme und Verfahren hierin können Benutzern ermöglichen, die Verwendung personenbezogener Informationen zu begrenzen oder zu sperren, wie durch Systeme vom Typ „Opt-in“ oder „Opt-out“. Diese Möglichkeiten können Benutzern derart bereitgestellt werden, dass eine separate Steuerung über Verwendungen unterschiedlicher Informationsarten gegeben ist. Somit können unterschiedliche erlaubte oder verbotene Verwendungen für Standortdaten und für Benutzeridentifikationsinformationen festgelegt werden.
  • Es sollten Schritte gesetzt werden, um den Risiken einer unbefugten Offenbarung oder Verwendung entgegenzuwirken. Beispiele schließen das Begrenzen der Datensammlung, das Begrenzen des Zeitraums, in dem Informationen gehalten werden, und das Löschen von Daten, die nicht benötigt werden, ein. Zusätzlich können einige Arten von personenbezogenen Informationen anonymisiert oder in einer Form gespeichert werden, die Daten über Benutzer hinweg sammelt, ohne diese Informationen mit bestimmten Benutzern zu verknüpfen.
  • Obwohl personenbezogene Informationen in den Systemen und Verfahren hierin verwendet werden können, sind außerdem personenbezogene Informationen für keine Implementierung erforderlich, und ihre Verwendung kann eliminiert werden. Zum Beispiel können Views in einigen simulierten Realitätsumgebungen ohne Geolokalisierungsdaten basierend auf Daten nicht personenbezogener Informationen oder einer bloßen Mindestmenge personenbezogener Informationen bestimmt werden.
  • Obwohl die Offenbarung in Verbindung mit bestimmten Ausführungsformen beschrieben wurde, versteht es sich, dass die Offenbarung nicht auf die offenbarten Ausführungsformen beschränkt werden soll, sondern im Gegenteil verschiedene Modifikationen und äquivalente Anordnungen abdecken soll, die innerhalb des Schutzumfangs der beiliegenden Ansprüche eingeschlossen sind, wobei dem Schutzumfang die weiteste Auslegung zukommen soll, um alle derartigen Modifikationen und äquivalenten Strukturen einzuschließen.

Claims (48)

  1. System, umfassend: eine Anzeige; einen oder mehrere Bewegungssensoren, die an der Anzeige befestigt sind; und eine Verarbeitungsvorrichtung, die konfiguriert ist zum: Zugreifen auf Bewegungsdaten, die unter Verwendung des einen oder der mehreren Bewegungssensoren erfasst werden; Bestimmen, basierend mindestens auf den Bewegungsdaten, einer View innerhalb einer simulierten Realitätsumgebung, die unter Verwendung der Anzeige dargestellt wird; Erkennen, ob die View einem Breakpoint zugeordnet ist; basierend mindestens auf dem Erfassen, dass die View dem Breakpoint zugeordnet ist, Auslösen des Breakpoints und Durchführen einer Fehlerbereinigungsaktion, die dem Breakpoint zugeordnet ist; und während des Durchführens der Fehlerbeseitigungsaktion Fortsetzen des Ausführens eines Simulationsprozesses der simulierten Realitätsumgebung, um zu ermöglichen, dass ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung weiterhin mit der Anzeige betrachtet wird und auf Eingaben reagiert, die unter Verwendung des einen oder der mehreren Bewegungssensoren empfangen werden.
  2. System nach Anspruch 1, wobei die View einem Betrachtungsvektor von einer Position in der simulierten Realitätsumgebung entspricht, der Breakpoint einem Satz von Views zugeordnet ist, der einem Bereich in der simulierten Realitätsumgebung und einem Bereich von Winkeln in Bezug auf einen mittleren Betrachtungsvektor entspricht, und die Verarbeitungsvorrichtung konfiguriert ist, um zu erfassen, dass die View dem Breakpoint zugeordnet ist, durch: Bestimmen, ob die Position der View innerhalb des Bereichs des Satzes von Views liegt; Bestimmen eines Winkels zwischen dem Betrachtungsvektor der View und dem mittleren Betrachtungsvektor des Satzes von Views; und Bestimmen, ob der Winkel innerhalb des Bereichs von Winkeln des Satzes von Views liegt.
  3. System nach Anspruch 1, wobei die View einem Strahl innerhalb der simulierten Realitätsumgebung entspricht, der Breakpoint einem Satz von Views zugeordnet ist, der einem Satz von Strahlen entspricht, der durch einen Bereich in der simulierten Realitätsumgebung verläuft, und die Verarbeitungsvorrichtung konfiguriert ist, um zu erkennen, dass die View dem Breakpoint zugeordnet ist, durch: Bestimmen, ob der Strahl der View durch den Bereich des Satzes von Views verläuft.
  4. System nach Anspruch 1, wobei die View einem Brennpunkt innerhalb der simulierten Realitätsumgebung entspricht, der Breakpoint einem Satz von Views zugeordnet ist, der einem Bereich in der simulierten Realitätsumgebung entspricht, und die Verarbeitungsvorrichtung konfiguriert ist, um zu erkennen, dass die View dem Breakpoint zugeordnet ist, durch: Bestimmen, ob der Brennpunkt der View innerhalb des Bereichs des Satzes von Views liegt.
  5. System nach einem der Ansprüche 1 bis 4, wobei der Breakpoint mehrere Auslösebedingungen aufweist und die Verarbeitungsvorrichtung konfiguriert ist zum: Auslösen des Breakpoints basierend mindestens darauf, dass eine Codezeile in einem Prozess, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, erreicht wird und die View gleichzeitig dem Breakpoint zugeordnet wird.
  6. System nach einem der Ansprüche 1 bis 5, wobei der Breakpoint mehrere Auslösebedingungen aufweist und die Verarbeitungsvorrichtung konfiguriert ist zum: Auslösen des Breakpoints basierend mindestens auf einer Bedingung, dass ein Zustand eines virtuellen Objekts in der simulierten Realitätsumgebung erfüllt ist und die View gleichzeitig dem Breakpoint zugeordnet ist.
  7. System nach einem der Ansprüche 1 bis 6, wobei der Breakpoint mehrere Auslösebedingungen aufweist und die Verarbeitungsvorrichtung konfiguriert ist zum: Auslösen des Breakpoints basierend mindestens auf dem Erfassen einer Aktion durch einen Benutzer der Anzeige und der View, die gleichzeitig dem Breakpoint zugeordnet ist.
  8. System nach einem der Ansprüche 1 bis 7, wobei die Verarbeitungsvorrichtung konfiguriert ist zum: Identifizieren eines oder mehrerer Objekte in der simulierten Realitätsumgebung, die durch Strahlformung zu debuggen sind, basierend mindestens auf der View, als Reaktion darauf, dass der Breakpoint ausgelöst wird; und Durchführen der Fehlerbereinigungsaktion an einem oder mehreren Prozessen, die dem einen oder den mehreren identifizierten Objekten zugeordnet sind.
  9. System nach einem der Ansprüche 1 bis 8, wobei die Fehlerbereinigungsaktion das Anhalten der Ausführung eines Prozesses einschließt, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist.
  10. System nach Anspruch 9, wobei das Verarbeitungselement ferner konfiguriert ist zum: Erzeugen einer visuellen Darstellung des Objekts, das dem angehaltenen Prozess zugeordnet ist; und Fortsetzen der Präsentation der visuellen Darstellung innerhalb der simulierten Realitätsumgebung unter Verwendung der Anzeige, während der Prozess angehalten wird.
  11. System nach einem der Ansprüche 1 bis 10, wobei die Fehlerbereinigungsaktion das Präsentieren einer Fehlerbereinigungssteuerschnittstelle innerhalb der simulierten Realitätsumgebung unter Verwendung der Anzeige einschließt, die einem Benutzer der Anzeige ermöglicht, die Ausführung eines Prozesses zu steuern, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist.
  12. System nach Anspruch 11, wobei die Fehlerbereinigungssteuerschnittstelle einem Benutzer ermöglicht, mindestens eine Funktion aus einem Satz von Funktionen bestehend aus Unterbrechung, Wiederaufnahme, Einstieg, Überstieg und Ausstieg auszuwählen.
  13. System nach einem der Ansprüche 1 bis 12, wobei die Fehlerbereinigungsaktion das Präsentieren von Codes eines Prozesses unter Verwendung der Anzeige innerhalb der simulierten Realitätsumgebung einschließt, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist.
  14. System nach einem der Ansprüche 1 bis 13, wobei die Fehlerbereinigungsaktion das Präsentieren von Werten von Zustandsvariablen eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, unter Verwendung der Anzeige innerhalb der simulierten Realitätsumgebung einschließt.
  15. System nach einem der Ansprüche 1 bis 14, wobei die Fehlerbereinigungsaktion das Erzeugen eines Protokolls von einem oder mehreren Parametern eines virtuellen Objekts in der simulierten Realitätsumgebung einschließt.
  16. Verfahren nach einem der Ansprüche 1 bis 15, wobei die Anzeige ein Head-Mounted Display ist.
  17. Verfahren, umfassend: Zugreifen auf Bewegungsdaten, die unter Verwendung eines oder mehrerer Bewegungssensoren erfasst werden; Bestimmen, basierend mindestens auf den Bewegungsdaten, einer View innerhalb einer simulierten Realitätsumgebung, die unter Verwendung einer Anzeige dargestellt wird; Erfassen, ob die View einem Breakpoint zugeordnet ist; basierend mindestens auf dem Erfassen, dass die View dem Breakpoint zugeordnet ist, Auslösen des Breakpoint; als Reaktion darauf, dass der Breakpoint ausgelöst wird, Durchführen einer Fehlerbereinigungsaktion, die dem Breakpoint zugeordnet ist; und während des Durchführens der Fehlerbeseitigungsaktion Fortsetzen des Ausführens eines Simulationsprozesses der simulierten Realitätsumgebung, um zu ermöglichen, dass sich ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung fortsetzt und mit der Anzeige betrachtet wird.
  18. Verfahren nach Anspruch 17, wobei die View einem Betrachtungsvektor von einer Position in der simulierten Realitätsumgebung entspricht, der Breakpoint einem Satz von Views zugeordnet ist, der einem Bereich in der simulierten Realitätsumgebung und einem Bereich von Winkeln in Bezug auf einen zentralen Betrachtungsvektor entspricht, und das Erfassen, dass die View dem Breakpoint zugeordnet ist, Folgendes umfasst: Bestimmen, ob die Position der View innerhalb des Bereichs des Satzes von Views liegt; Bestimmen eines Winkels zwischen dem Betrachtungsvektor der View und dem mittleren Betrachtungsvektor des Satzes von Views; und Bestimmen, ob der Winkel innerhalb des Bereichs von Winkeln des Satzes von Views liegt.
  19. Verfahren nach Anspruch 17, wobei die View einem Strahl innerhalb der simulierten Realitätsumgebung entspricht, der Breakpoint einem Satz von Views zugeordnet ist, der einem Satz von Strahlen entspricht, der durch einen Bereich in der simulierten Realitätsumgebung verläuft, und das Erkennen, dass die View dem Breakpoint zugeordnet ist, Folgendes umfasst: Bestimmen, ob der Strahl der View durch den Bereich des Satzes von Views verläuft.
  20. Verfahren nach Anspruch 17, wobei die View einem Brennpunkt innerhalb der simulierten Realitätsumgebung entspricht, der Breakpoint einem Satz von Views entspricht, der einem Bereich in der simulierten Realitätsumgebung entspricht, und das Erkennen, dass die View dem Breakpoint zugeordnet ist, Folgendes umfasst: Bestimmen, ob der Brennpunkt der View innerhalb des Bereichs des Satzes von Views liegt.
  21. Verfahren nach einem der Ansprüche 17 bis 20, umfassend: Auslösen des Breakpoints basierend mindestens darauf, dass eine Codezeile in einem Prozess, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, erreicht wird und die View gleichzeitig dem Breakpoint zugeordnet wird.
  22. Verfahren nach einem der Ansprüche 17 bis 21, umfassend: Auslösen des Breakpoints basierend mindestens auf einer Bedingung, dass ein Zustand eines virtuellen Objekts in der simulierten Realitätsumgebung erfüllt ist und die View gleichzeitig dem Breakpoint zugeordnet ist.
  23. Verfahren nach einem der Ansprüche 17 bis 22, umfassend: Auslösen des Breakpoints basierend mindestens auf dem Erfassen einer Aktion durch einen Benutzer der Anzeige und der View, die gleichzeitig dem Breakpoint zugeordnet ist.
  24. Verfahren nach einem der Ansprüche 17 bis 23, umfassend: Identifizieren eines oder mehrerer Objekte in der simulierten Realitätsumgebung, die durch Strahlformung zu debuggen sind, basierend mindestens auf der View, als Reaktion darauf, dass der Breakpoint ausgelöst wird; und Durchführen der Fehlerbereinigungsaktion an einem oder mehreren Prozessen, die dem einen oder den mehreren identifizierten Objekten zugeordnet sind.
  25. Verfahren nach einem der Ansprüche 17 bis 24, wobei die Fehlerbereinigungsaktion das Anhalten der Ausführung eines Prozesses einschließt, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist.
  26. Verfahren nach Anspruch 25, wobei die Verarbeitungsvorrichtung konfiguriert ist zum: Erzeugen einer visuellen Darstellung des Objekts, das dem angehaltenen Prozess zugeordnet ist; und Fortsetzen der Präsentation der visuellen Darstellung innerhalb der simulierten Realitätsumgebung unter Verwendung der Anzeige, während der Prozess angehalten wird.
  27. Verfahren nach einem der Ansprüche 17 bis 26, wobei die Fehlerbereinigungsaktion das Präsentieren einer Fehlerbereinigungssteuerschnittstelle innerhalb der simulierten Realitätsumgebung unter Verwendung der Anzeige einschließt, die einem Benutzer der Anzeige ermöglicht, die Ausführung eines Prozesses zu steuern, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist.
  28. Verfahren nach Anspruch 27, wobei die Fehlerbereinigungssteuerschnittstelle einem Benutzer ermöglicht, mindestens eine Funktion aus einem Satz von Funktionen bestehend aus Unterbrechung, Wiederaufnahme, Einstieg, Überstieg und Ausstieg auszuwählen.
  29. Verfahren nach einem der Ansprüche 17 bis 28, wobei die Fehlerbereinigungsaktion das Präsentieren von Codes eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, unter Verwendung der Anzeige innerhalb der simulierten Realitätsumgebung einschließt.
  30. Verfahren nach einem der Ansprüche 17 bis 29, wobei die Fehlerbereinigungsaktion das Präsentieren von Werten von Zustandsvariablen eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, unter Verwendung der Anzeige innerhalb der simulierten Realitätsumgebung einschließt.
  31. Verfahren nach einem der Ansprüche 17 bis 30, wobei die Fehlerbereinigungsaktion das Erzeugen eines Protokolls von einem oder mehreren Parametern eines virtuellen Objekts in der simulierten Realitätsumgebung einschließt.
  32. Verfahren nach einem der Ansprüche 17 bis 31, wobei die Anzeige ein Head-Mounted Display ist.
  33. Nichtflüchtiges computerlesbares Speichermedium, das ausführbare Anweisungen umfasst, die, wenn sie von einem Prozessor ausgeführt werden, die Durchführung von Abläufen ermöglichen, umfassend: Zugreifen auf Bewegungsdaten, die unter Verwendung eines oder mehrerer Bewegungssensoren erfasst werden; Bestimmen, basierend mindestens auf den Bewegungsdaten, einer View innerhalb einer simulierten Realitätsumgebung, die unter Verwendung einer Anzeige dargestellt wird; Erfassen, ob die View einem Breakpoint zugeordnet ist; basierend mindestens auf dem Erfassen, dass die View dem Breakpoint zugeordnet ist, Auslösen des Breakpoint; als Reaktion darauf, dass der Breakpoint ausgelöst wird, Durchführen einer Fehlerbereinigungsaktion, die dem Breakpoint zugeordnet ist; und während des Durchführens der Fehlerbeseitigungsaktion Fortsetzen des Ausführens eines Simulationsprozesses der simulierten Realitätsumgebung, um zu ermöglichen, dass sich ein Zustand mindestens eines virtuellen Objekts in der simulierten Realitätsumgebung fortsetzt und mit der Anzeige betrachtet wird.
  34. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 33, wobei die View einem Betrachtungsvektor von einer Position in der simulierten Realitätsumgebung entspricht, der Breakpoint einem Satz von Views zugeordnet ist, der einem Bereich in der simulierten Realitätsumgebung und einem Bereich von Winkeln in Bezug auf einen zentralen Betrachtungsvektor entspricht, und das Erkennen, dass die View dem Breakpoint zugeordnet ist, Folgendes umfasst: Bestimmen, ob die Position der View innerhalb des Bereichs des Satzes von Views liegt; Bestimmen eines Winkels zwischen dem Betrachtungsvektor der View und dem mittleren Betrachtungsvektor des Satzes von Views; und Bestimmen, ob der Winkel innerhalb des Bereichs von Winkeln des Satzes von Views liegt.
  35. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 33, wobei die View einem Strahl innerhalb der simulierten Realitätsumgebung entspricht, der Breakpoint einem Satz von Views zugeordnet ist, der einem Satz von Strahlen entspricht, der durch einen Bereich in der simulierten Realitätsumgebung verläuft, und das Erkennen, dass die View dem Breakpoint zugeordnet ist, Folgendes umfasst: Bestimmen, ob der Strahl der View durch den Bereich des Satzes von Views verläuft.
  36. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 33, wobei die View einem Brennpunkt innerhalb der simulierten Realitätsumgebung entspricht, der Breakpoint einem Satz von Views zugeordnet ist, der einem Bereich in der simulierten Realitätsumgebung entspricht, und das Erkennen, dass die View dem Breakpoint zugeordnet ist, Folgendes umfasst: Bestimmen, ob der Brennpunkt der View innerhalb des Bereichs des Satzes von Views liegt.
  37. Nichtflüchtiges computerlesbares Speichermedium nach einem der Ansprüche 33 bis 36, umfassend ausführbare Anweisungen, die, wenn sie von einem Prozessor ausgeführt werden, die Durchführung von Abläufen ermöglichen, umfassend: Auslösen des Breakpoints basierend mindestens darauf, dass eine Codezeile in einem Prozess, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, erreicht wird und die View gleichzeitig dem Breakpoint zugeordnet wird.
  38. Nichtflüchtiges computerlesbares Speichermedium nach einem der Ansprüche 33 bis 37, umfassend ausführbare Anweisungen, die, wenn sie von einem Prozessor ausgeführt werden, die Durchführung von Abläufen ermöglichen, umfassend: Identifizieren eines oder mehrerer Objekte in der simulierten Realitätsumgebung, die durch Strahlformung zu debuggen sind, basierend mindestens auf der View, als Reaktion darauf, dass der Breakpoint ausgelöst wird; und Durchführen der Fehlerbereinigungsaktion an einem oder mehreren Prozessen, die dem einen oder den mehreren identifizierten Objekten zugeordnet sind.
  39. Nichtflüchtiges computerlesbares Speichermedium nach einem der Ansprüche 33 bis 38, wobei die Fehlerbereinigungsaktion das Anhalten der Ausführung eines Prozesses einschließt, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist.
  40. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 39, umfassend ausführbare Anweisungen, die, wenn sie von einem Prozessor ausgeführt werden, die Durchführung von Abläufen ermöglichen, umfassend: Erzeugen einer visuellen Darstellung des Objekts, das dem angehaltenen Prozess zugeordnet ist; und Fortsetzen der Präsentation der visuellen Darstellung innerhalb der simulierten Realitätsumgebung unter Verwendung der Anzeige, während der Prozess angehalten wird.
  41. Nichtflüchtiges computerlesbares Speichermedium nach einem der Ansprüche 33 bis 40, wobei der Breakpoint mehrere Auslösebedingungen aufweist und ausführbare Anweisungen umfasst, die, wenn sie von einem Prozessor ausgeführt werden, die Durchführung von Abläufen ermöglichen, umfassend: Auslösen des Breakpoints basierend mindestens auf einer Bedingung, dass ein Zustand eines virtuellen Objekts in der simulierten Realitätsumgebung erfüllt ist und die View gleichzeitig dem Breakpoint zugeordnet ist.
  42. Nichtflüchtiges computerlesbares Speichermedium nach einem der Ansprüche 33 bis 41, wobei der Breakpoint mehrere Auslösebedingungen aufweist und ausführbare Anweisungen umfasst, die, wenn sie von einem Prozessor ausgeführt werden, die Durchführung von Abläufen ermöglichen, umfassend: Auslösen des Breakpoints basierend mindestens auf dem Erfassen einer Aktion durch einen Benutzer der Anzeige und der View, die gleichzeitig dem Breakpoint zugeordnet ist.
  43. Nichtflüchtiges computerlesbares Speichermedium nach einem der Ansprüche 33 bis 42, wobei die Fehlerbereinigungsaktion das Präsentieren einer Fehlerbereinigungssteuerschnittstelle innerhalb der simulierten Realitätsumgebung unter Verwendung der Anzeige einschließt, die einem Benutzer der Anzeige ermöglicht, die Ausführung eines Prozesses zu steuern, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist.
  44. Nichtflüchtiges computerlesbares Speichermedium nach Anspruch 43, wobei die Fehlerbereinigungssteuerschnittstelle einem Benutzer ermöglicht, mindestens eine Funktion aus einem Satz von Funktionen bestehend aus Unterbrechung, Wiederaufnahme, Einstieg, Überstieg und Ausstieg auszuwählen.
  45. Nichtflüchtiges computerlesbares Speichermedium nach einem der Ansprüche 33 bis 44, wobei die Fehlerbereinigungsaktion das Präsentieren von Codes eines Prozesses unter Verwendung der Anzeige innerhalb der simulierten Realitätsumgebung einschließt, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist.
  46. Nichtflüchtiges computerlesbares Speichermedium nach einem der Ansprüche 33 bis 45, wobei die Fehlerbereinigungsaktion das Präsentieren von Werten von Zustandsvariablen eines Prozesses, der einem virtuellen Objekt in der simulierten Realitätsumgebung zugeordnet ist, unter Verwendung der Anzeige innerhalb der simulierten Realitätsumgebung einschließt.
  47. Nichtflüchtiges computerlesbares Speichermedium nach einem der Ansprüche 33 bis 46, wobei die Fehlerbereinigungsaktion das Erzeugen eines Protokolls von einem oder mehreren Parametern eines virtuellen Objekts in der simulierten Realitätsumgebung einschließt.
  48. Nichtflüchtiges computerlesbares Speichermedium nach einem der Ansprüche 33 bis 47, wobei die Anzeige ein Head-Mounted Display ist.
DE112019003239.9T 2018-06-26 2019-06-25 Breakpoints auf view-basis Pending DE112019003239T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862690012P 2018-06-26 2018-06-26
US62/690,012 2018-06-26
PCT/US2019/038919 WO2020005898A1 (en) 2018-06-26 2019-06-25 View-based breakpoints

Publications (1)

Publication Number Publication Date
DE112019003239T5 true DE112019003239T5 (de) 2021-04-08

Family

ID=67211972

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019003239.9T Pending DE112019003239T5 (de) 2018-06-26 2019-06-25 Breakpoints auf view-basis

Country Status (8)

Country Link
US (1) US20210286701A1 (de)
JP (1) JP7139456B2 (de)
KR (1) KR102501599B1 (de)
CN (1) CN112262373A (de)
AU (1) AU2019294492B2 (de)
DE (1) DE112019003239T5 (de)
GB (1) GB2588007B (de)
WO (1) WO2020005898A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022055650A1 (en) * 2020-09-14 2022-03-17 Sterling Labs Llc Content playback and modifications in a 3d environment

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111281B2 (en) * 2002-12-26 2006-09-19 International Business Machines Corporation Method, system, and article of manufacture for debugging utilizing screen pattern recognition and breakpoints
US8261199B2 (en) * 2007-10-16 2012-09-04 International Business Machines Corporation Breakpoint identification and presentation in virtual worlds
US20130247007A1 (en) * 2012-03-16 2013-09-19 International Business Machines Corporation Making debugger behavior conditional on past program state
AU2015297035B2 (en) * 2014-05-09 2018-06-28 Google Llc Systems and methods for biomechanically-based eye signals for interacting with real and virtual objects
US9703681B2 (en) * 2014-05-29 2017-07-11 Microsoft Technology Licensing, Llc Performance optimization tip presentation during debugging
US10725297B2 (en) * 2015-01-28 2020-07-28 CCP hf. Method and system for implementing a virtual representation of a physical environment using a virtual reality environment
EP3332322A4 (de) * 2015-08-06 2018-08-22 Avishai Abrahami System zur änderung eines kognitiven zustands mit mehreren rückmeldungstechnologien
KR20180041768A (ko) * 2015-10-12 2018-04-24 이 잉크 캘리포니아 엘엘씨 전기영동 디스플레이 디바이스
US20170109933A1 (en) * 2015-10-14 2017-04-20 Prime Software Systems, Inc. Visualizing the structure and execution of a program
US9436583B1 (en) * 2015-11-06 2016-09-06 International Business Machines Corporation Minimally disruptive debugging in a production environment
US20180005444A1 (en) * 2016-06-30 2018-01-04 Daqri, Llc Augmented reality failsafe mode
US20180101986A1 (en) * 2016-10-10 2018-04-12 Aaron Mackay Burns Drawing in a 3d virtual reality environment
US10540262B2 (en) * 2016-10-17 2020-01-21 Microsoft Technology Licensing, Llc Using edit and continue to dynamically set and unset optimizations in source code while debugging
JP6756236B2 (ja) * 2016-10-31 2020-09-16 富士通株式会社 アクション指示プログラム、アクション指示方法及び画像生成装置

Also Published As

Publication number Publication date
JP7139456B2 (ja) 2022-09-20
AU2019294492A1 (en) 2020-12-03
KR20210005274A (ko) 2021-01-13
CN112262373A (zh) 2021-01-22
JP2021524109A (ja) 2021-09-09
KR102501599B1 (ko) 2023-02-17
AU2019294492B2 (en) 2022-01-27
GB202018272D0 (en) 2021-01-06
US20210286701A1 (en) 2021-09-16
GB2588007B (en) 2022-10-12
GB2588007A (en) 2021-04-14
WO2020005898A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
US11467709B2 (en) Mixed-reality guide data collection and presentation
DE102017119812A1 (de) Ziehen von virtuellen elementen einer erweiterten und/oder virtuellen realitätsumgebung
US11520401B2 (en) Focus-based debugging and inspection for a display system
DE202017006742U1 (de) Eingabegerät-Stabilisierungstechniken für virtuelle Realitätssysteme
DE102019218787A1 (de) Verfahren, vorrichtung und system zum erzeugen von mit einer darstellung eines artikels verbundenen angeboten
US20190066380A1 (en) Systems and methods of physics layer prioritization in virtual environments
DE102022110363A1 (de) Verfahren und vorrichtung zur debugging-programmausführung und inhaltswiedergabe
KR20210030207A (ko) 인스턴스 검출 및 일반적인 장면 이해를 이용한 객체 검출
KR102471580B1 (ko) 합성 현실 설정을 위한 오브젝티브-이펙추에이터의 구성
DE112019003239T5 (de) Breakpoints auf view-basis
DE112020000573T5 (de) Anzeigen von darstellungen von umgebungen
US20230290042A1 (en) Content playback and modifications in a 3d environment
DE102022117756A1 (de) Anweisen eines virtuellen agenten basierend auf dem blinkverhalten eines benutzers
DE112018005224T5 (de) Anzeigevorrichtung und Anzeigevorrichtungssteuerverfahren
Thorstensen Visualization of robotic sensor data with augmented reality
DE102020101675A1 (de) Manipulation von virtuellen objekten mittels eines verfolgten physischen objekts
CN113678173A (zh) 用于虚拟对象的基于图绘的放置的方法和设备
DE112022001416T5 (de) Dreidimensionale programmierumgebung
JPWO2020005898A5 (de)
KR102286517B1 (ko) 컨트롤러 입력에 따른 회전 구동 제어 방법 및 이를 이용한 헤드 마운티드 디스플레이 시스템
US11966278B2 (en) System and method for logging visible errors in a videogame
DE112020002062T5 (de) Wahrnehmungseigenschaftsvektor für ein objekt
DE102022116074A1 (de) Augenverfolgungsdatenfilterung
DE102022206804A1 (de) Generieren und anzeigen von inhalt basierend auf jeweiligen positionen von personen
DE102022201468A1 (de) Messung basierend auf punktauswahl

Legal Events

Date Code Title Description
R012 Request for examination validly filed