CN112262373B - 基于视图的断点 - Google Patents

基于视图的断点 Download PDF

Info

Publication number
CN112262373B
CN112262373B CN201980033646.0A CN201980033646A CN112262373B CN 112262373 B CN112262373 B CN 112262373B CN 201980033646 A CN201980033646 A CN 201980033646A CN 112262373 B CN112262373 B CN 112262373B
Authority
CN
China
Prior art keywords
view
breakpoint
reality environment
simulated reality
views
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980033646.0A
Other languages
English (en)
Other versions
CN112262373A (zh
Inventor
T·L·卡塞拉
N·N·王
B·B·洛金斯
D·M·德尔伍德
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 CN112262373A publication Critical patent/CN112262373A/zh
Application granted granted Critical
Publication of CN112262373B publication Critical patent/CN112262373B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/362Software debugging
    • 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
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Debugging And Monitoring (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开描述了用于基于模拟现实视图的断点的系统和方法。一些具体实施可包括访问使用一个或多个运动传感器捕获的运动数据;至少基于该运动数据,确定使用头戴式显示器呈现的模拟现实环境内的视图;检测到该视图是与断点相关联的一组视图的成员;至少基于该视图是该组视图的成员,触发该断点;响应于该断点被触发,执行与该断点相关联的调试动作;以及在执行该调试动作时,继续执行该模拟现实环境的模拟过程,以使该模拟现实环境中的至少一个虚拟对象的状态能够继续演化并用该头戴式显示器查看。

Description

基于视图的断点
技术领域
本公开涉及基于模拟现实视图的断点。
背景技术
头戴式显示器用于为用户提供虚拟现实、增强现实和/或模拟现实体验。调试工具被软件开发员用来追查和识别计算机指令代码中的错误(通常称为“调试”)。调试工具允许开发员指定一条软件代码的断点,这通常是通过将代码行指定为与断点相关联来进行的。当出现断点的条件时(例如,在软件的执行期间达到指定的代码行),则调试工具可触发动作,诸如在指定的代码行处暂停软件的执行和/或向软件开发员呈现便于检查软件的暂停状态和/或软件的受控执行(例如,一次一行地逐句通过代码,其中在行之间存在暂停)的调试界面。
发明内容
本文公开了基于模拟现实视图的断点的具体实施。
在第一方面中,本说明书中描述的主题可体现在系统中,该系统包括头戴式显示器和附接到头戴式显示器的一个或多个运动传感器。该系统包括处理装置,该处理装置被配置为访问使用一个或多个运动传感器捕获的运动数据;至少基于运动数据,确定使用头戴式显示器呈现的模拟现实环境内的视图;检测视图是否与断点相关联;至少基于检测到视图与断点相关联,触发断点并执行与断点相关联的调试动作;以及在执行调试动作时,继续执行模拟现实环境的模拟过程,以使模拟现实环境中的至少一个虚拟对象的状态能够继续用头戴式显示器查看并对使用一个或多个运动传感器接收的输入作出响应。
在第二方面中,本说明书中描述的主题可体现在方法中,该方法包括:访问使用一个或多个运动传感器捕获的运动数据;至少基于运动数据,确定使用头戴式显示器呈现的模拟现实环境内的视图;检测到视图是与断点相关联的一组视图的成员;至少基于视图是该组视图的成员,触发断点;响应于断点被触发,执行与断点相关联的调试动作;以及在执行调试动作时,继续执行模拟现实环境的模拟过程,以使模拟现实环境中的至少一个虚拟对象的状态能够继续演化并用头戴式显示器查看。
在第三方面中,本说明书中描述的主题可体现在系统中,该系统包括:头戴式显示器。该系统包括处理装置,该处理装置被配置为:确定使用头戴式显示器呈现的模拟现实环境内的视图;检测到视图是与断点相关联的一组视图的成员;至少基于视图是该组视图的成员,触发断点;响应于断点被触发,执行与断点相关联的调试动作;以及在执行调试动作时,继续执行模拟现实环境的模拟过程,以使模拟现实环境中的至少一个虚拟对象的状态能够继续演化并用头戴式显示器查看。
在第四方面中,本说明书中描述的主题可体现在一种非暂态计算机可读存储介质中。该非暂态计算机可读存储介质可包括可执行指令,该可执行指令在由处理器执行时,帮助执行操作,包括访问使用一个或多个运动传感器捕获的运动数据;至少基于运动数据,确定使用头戴式显示器呈现的模拟现实环境内的视图;检测视图是否与断点相关联;至少基于检测到视图与断点相关联,触发断点;响应于断点被触发,执行与断点相关联的调试动作;以及在执行调试动作时,继续执行模拟现实环境的模拟过程,以使模拟现实环境中的至少一个虚拟对象的状态能够继续演化并用头戴式显示器查看。
附图说明
在阅读本公开时通过结合附图对以下具体实施方式得以最佳理解。应当强调的是,根据惯例,附图的各种特征未按比例绘制。相反,为了清楚起见,各种特征部的尺寸被任意扩大或缩小。
图1是增强现实空间中的基于视图的断点使用场景的示例的图示。
图2是虚拟现实空间中的基于视图的断点使用场景的示例的图示。
图3是被配置为在模拟现实应用中启用基于视图的断点的系统的示例的框图。
图4是被配置为在模拟现实应用中启用基于视图的断点的系统的示例的框图。
图5是模拟现实应用的示例的框图。
图6是用于启用基于视图的断点的技术的示例的流程图。
图7是用于检测到视图是与断点相关联的一组视图的成员的技术的示例的流程图。
图8是用于响应于断点被触发而执行调试动作的技术的示例的流程图。
图9是用于响应于断点被触发而识别要调试的一个或多个虚拟对象的技术的示例的流程图。
具体实施方式
断点可与应用程序的代码行一起放置或以其他方式与应用程序的代码行相关联,这使应用程序的执行在遇到该代码行时暂停,从而允许软件开发员逐句通过代码行以便于识别和移除代码中的错误。
基于视图的断点可被实现用于调试模拟现实应用。用户能够指定由模拟现实应用呈现的模拟现实环境的一组视图(例如,就虚拟相机的位置和/或取向的范围而言),该组视图将触发断点。这可能是有用的,例如,当开发员遇到来自模拟现实应用的模拟现实环境内的某些有利点的故障或视觉伪影并希望逐句通过其代码来看看是什么导致了问题时。例如,除了代码行之外,用户还可在模拟现实环境的三维空间中设定位置和区域,并且当在执行期间到达代码行并且呈现给用户的视图在与断点相关联的一组指定的视图内时,可触发断点。
基于视图的断点可提供相比用于模拟现实应用的传统调试工具显著的优点。对于传统断点,该调试任务可能显著地更困难,因为例如开发员可能需要当创建断点时保持其头部静止,以确保代码从感兴趣的正确有利点运行。例如,可缩短应用程序开发时间,和/或可降低所得模拟现实应用的失败率。
物理环境
a.物理布景是指无需电子系统辅助,个体能够感知和/或个体能够交互的世界。物理布景(例如,物理森林)包括物理元素(例如,物理树、物理结构和物理动物)。个体可直接与物理布景相互作用和/或感知物理布景,诸如通过触摸、视觉、嗅觉、听觉和味觉。
模拟现实
a.相比之下,模拟现实(SR)布景是指经由电子系统,个体能够感知和/或个体能够交互的完全地或部分地由计算机创建的布景。在SR中,监测个体移动的子集,并且响应于该子集,以符合一个或多个物理定律的方式更改SR布景中的一个或多个虚拟对象的一个或多个属性。例如,SR系统可检测到个体向前走几步,并且响应于此,以类似于此类情景和声音在物理布景中会如何变化的方式来调节呈现给个体的图形和音频。也可响应于移动的表示(例如,音频指令)而进行对SR布景中一个或多个虚拟对象的一个或多个属性的修改。
b.个体可使用他的感觉(包括触觉、嗅觉、视觉、味觉和声音)中的任一种感觉与SR对象交互和/或感知SR对象。例如,个体可与创建多维(例如,三维)或空间听觉布景和/或实现听觉透明性的听觉对象进行交互和/或感知听觉对象。多维或空间听觉布景为个体提供了在多维空间中对离散听觉源的感知。在具有或不具有计算机创建的音频的情况下,听觉透明性选择性地结合来自物理布景的声音。在一些SR布景中,个体可仅与听觉对象进行交互和/
或仅感知听觉对象。
虚拟现实
a.SR的一个示例是虚拟现实(VR)。VR布景是指被设计为仅包括针对至少一种感觉的计算机创建的感官输入的模拟布景。VR布景包括个体可与之交互和/或对其进行感知的多个虚拟对象。个体可通过在计算机创建的布景内模拟个体动作的子集和/或通过对个体或其在计算机创建的布景内的存在的模拟,来与VR布景中的虚拟对象进行交互和/或感知VR布景中的虚拟对象。
混合现实
a.SR的另一个示例是混合现实(MR)。MR布景是指被设计为将计算机创建的感官输入(例如,虚拟对象)与来自物理布景的感官输入或其表示集成的模拟布景。在现实谱系上,混合现实布景介于(但不包括)一端的VR布景和另一端的完全物理布景之间。
b.在一些MR布景中,由计算机创建的感官输入可适应于来自物理布景的感官输入的变化。另外,用于呈现MR布景的一些电子系统可以监测相对于物理布景的取向和/或位置,以使虚拟对象能够与真实对象(即来自物理布景的物理元素或其表示)交互。例如,系统可监测运动,使得虚拟植物相对于物理建筑物看起来是静止的。
c.增强现实
i.混合现实的一个示例是增强现实(AR)。AR布景是指至少一个虚拟对象叠加在物理布景或其表示之上的模拟布景。例如,电子系统可具有不透明显示器和至少一个成像传感器,成像传感器用于捕获物理布景的图像或视频,这些图像或视频是物理布景的表示。系统将图像或视频与虚拟对象组合,并在不透明显示器上显示该组合。个体使用系统经由物理布景的图像或视频间接地查看物理布景,并且观察叠加在物理布景之上的虚拟对象。当系统使用图像传感器捕获物理布景的图像,并且使用那些图像在不透明显示器上呈现AR布景时,所显示的图像称为视频透传。另选地,用于显示AR布景的电子系统可具有透明或半透明显示器,个体可通过该显示器直接查看物理布景。该系统可在透明或半透明显示器上显示虚拟对象,使得个体使用该系统观察叠加在物理布景之上的虚拟对象。又如,系统可包括将虚拟对象投影到物理布景中的投影系统。虚拟对象可例如在物理表面上或作为全息图被投影,使得个体使用该系统观察叠加在物理布景之上的虚拟对象。
ii.增强现实布景也可指其中物理布景的表示被计算机创建的感官信息改变的模拟布景。例如,物理布景的表示的一部分可被以图形方式改变(例如,放大),使得所改变的部分仍可代表一个或多个初始捕获的图像但不是忠实再现的版本。又如,在提供视频透传时,系统可改变传感器图像中的至少一者以施加不同于一个或多个图像传感器捕获的视点的特定视点。再如,物理布景的表示可通过以图形方式将其部分进行模糊处理或消除其部分而被改变。
d.增强虚拟
i.混合现实的另一个示例是增强虚拟(AV)。AV布景是指计算机创建布景或虚拟布景并入来自物理布景的至少一个感官输入的模拟布景。来自物理布景的一个或多个感官输入可为物理布景的至少一个特征的表示。例如,虚拟对象可呈现由一个或多个成像传感器捕获的物理元素的颜色。又如,虚拟对象可呈现出与物理布景中的实际天气条件相一致的特征,如经由天气相关的成像传感器和/或在线天气数据所识别的。在另一个示例中,增强现实森林可具有虚拟树木和结构,但动物可具有从对物理动物拍摄的图像精确再现的特征。
硬件
许多电子系统使得个体能够与各种SR布景进行交互和/或感知各种SR布景。一个示例包括头戴式系统。头戴式系统可具有不透明显示器和一个或多个扬声器。另选地,头戴式系统可以被设计为接收外部显示器(例如,智能电话)。头戴式系统可具有分别用于拍摄物理布景的图像/视频和/或捕获物理布景的音频的一个或多个成像传感器和/或麦克风。头戴式系统也可具有透明或半透明显示器。透明或半透明显示器可结合基板,表示图像的光通过该基板被引导到个体的眼睛。显示器可结合LED、OLED、数字光投影仪、激光扫描光源、硅上液晶,或这些技术的任意组合。透射光的基板可以是光波导、光组合器、光反射器、全息基板或这些基板的任意组合。在一个实施方案中,透明或半透明显示器可在不透明状态与透明或半透明状态之间选择性地转换。又如,电子系统可以是基于投影的系统。基于投影的系统可使用视网膜投影将图像投影到个体的视网膜上。另选地,投影系统还可将虚拟对象投影到物理布景中(例如,投影到物理表面上或作为全息图)。SR系统的其他示例包括平视显示器、能够显示图形的汽车挡风玻璃、能够显示图形的窗口、能够显示图形的镜片、耳机或耳塞、扬声器布置、输入机构(例如,具有或不具有触觉反馈的控制器)、平板电脑、智能电话,以及台式计算机或膝上型计算机。
图1是增强现实空间中的基于视图的断点使用场景100的示例的图示。用户110佩戴头戴式显示器120并能够转动其头部以调整其模拟现实环境视图,该模拟现实环境包括覆盖在用户站立于的物理环境上的虚拟对象。用户在模拟现实环境中的视图的方向可与射线130(例如,投射穿过视图的中心的射线)相对应。与断点相关联的一组视图可与模拟现实环境中的区域140相对应。区域140是模拟现实环境的与断点相关联的一部分。在该示例中,区域140是立方体,但可指定区域的其他形状(例如,球形或不规则形状)。例如,开发员感兴趣的虚拟对象可位于区域140内。在一些具体实施中,区域140可被指定为以虚拟对象为中心。在一些具体实施中,区域140可被指定为虚拟对象的体积。
例如,断点可全部地或部分地在用户110的与断点所关联的区域140显著地相交的视图上调节。在一些具体实施中,断点的条件可被指定为视图的射线130穿过区域140。例如,确定用户110的视图是否满足断点的条件可包括确定视图的射线130是否穿过区域140。当射线130穿过区域140并且基于视图的条件被满足时,如果基于视图的条件是断点的唯一条件或如果断点的其他条件(例如,到达指定的代码行、关于虚拟对象的状态的条件或用户输入)也被满足,则可触发断点。一旦断点被触发,就可执行一个或多个调试动作,诸如暂停与虚拟对象相关联的过程的执行和/或使用头戴式显示器120向用户110呈现调试界面。
在一些具体实施中(图1中未示出),射线130可被扩展(例如,从射线扩展到以射线为中心的圆锥)以提供更多检测该基于视图的条件的余量。区域140可在模拟现实环境中具有非零体积。在一些具体实施中(图1中未示出),射线130可被扩展,并且区域140可塌缩到模拟现实环境中的某一个点。
图2是虚拟现实空间中的基于视图的断点使用场景200的示例的图示。用户的化身210移动通过模拟现实环境并在给定时间上与模拟现实环境中的位置相关联。与断点相关联的一组视图可与区域220和中心查看矢量230以及角度范围相对应。区域220被限定在模拟现实环境中。在该示例中,区域220与模拟现实环境的平面中的圆相对应。例如,为了确定化身210是否已经进入区域220,可将化身在较高维度虚拟空间(例如,三维虚拟空间)中的位置投射到区域220的平面上。可指定区域220的其他形状(图2中未示出),诸如在平面中的正方形、圆柱体、球体、立方体或不规则形状。
在给定时间上来自化身210的位置的当前视图确定模拟现实环境的哪个部分将出现在使用头戴式显示器呈现给用户的图像中。在该示例中,视图由当前视图的查看矢量240指定。例如,查看矢量240可平行于穿过呈现给用户的视图的中心的射线。例如,查看矢量240可从化身的位置指向。例如,中心查看矢量230可从区域220朝向一个或多个感兴趣虚拟对象指向。角度250可在中心查看矢量230与当前查看矢量240之间确定并用于评估视图是否是与断点相关联的一组视图的成员。
例如,在化身210定位在与断点相关联的区域220内时,断点可全部地或部分地在基本上对准中心查看矢量230的与化身210相关联的视图上调节。例如,确定化身210的视图是否满足断点的条件可包括确定视图的位置(例如,化身210的位置)是否在该组视图的区域220内;确定在视图的查看矢量240与该组视图的中心查看矢量230之间的角度250;以及确定角度250是否在该组视图的角度范围内。当该基于视图的条件被满足时,如果基于视图的条件是断点的唯一条件或如果断点的其他条件(例如,到达指定的代码行、关于虚拟对象的状态的条件或用户输入)也被满足,则可触发断点。一旦断点被触发,就可执行一个或多个调试动作,诸如暂停与虚拟对象相关联的过程的执行和/或使用头戴式显示器向控制化身210的用户呈现调试界面。
图3是被配置为在模拟现实应用中启用基于视图的断点的系统300的示例的框图。系统300包括处理装置310、数据存储设备320、一个或多个运动传感器330、头戴式显示器340以及处理装置310可通过其访问其他部件的互连件370。系统300可被配置为启用与使用头戴式显示器340显示给用户的模拟现实应用的模拟现实环境中的虚拟对象相关联的软件的基于视图的断点。例如,处理装置310可被配置为运行模拟现实应用(例如,图5的模拟现实应用500)。例如,系统300可被配置为实现图6的过程600。例如,系统300可被配置为实现图7的过程700。例如,系统300可被配置为实现图8的过程800。例如,系统300可被配置为实现图9的过程900。例如,系统300可实现为头戴式显示设备(例如,头戴式显示器120)的一部分。
处理装置310可操作为执行已存储在数据存储设备320中的指令。在一些具体实施中,处理装置310是具有随机存取存储器的处理器,用于在执行指令时临时存储从数据存储设备320读取的指令。处理装置310可包括单个或多个处理器,每个处理器具有单个或多个处理核心。另选地,处理装置310可包括能够操纵或处理数据的另一种类型的设备或多个设备。例如,数据存储设备320可为非易失性信息存储设备,诸如硬盘驱动器、固态驱动器、只读存储器设备(ROM)、光盘、磁盘,或者任何其他合适类型的存储设备诸如非暂态计算机可读存储器。数据存储设备320可包括能够存储用于由处理装置310检索或处理的数据的另一种类型的设备或多个设备。处理装置310可经由互连件370访问和操纵存储在数据存储设备320中的数据。例如,数据存储设备320可存储可由处理装置310执行的指令,该指令在由处理装置310执行时使处理装置310执行操作(例如,实现图6的过程600的操作)。在一些具体实施中,处理装置310和数据存储设备320附接到头戴式显示器340。
一个或多个运动传感器330可被配置为检测头戴式显示器340的运动。例如,一个或多个运动传感器330可包括一个或多个加速度计、陀螺仪和/或磁力仪。在一些具体实施中,一个或多个运动传感器330附接到头戴式显示器340。在一些具体实施中,可至少基于来自一个或多个运动传感器330的传感器数据和/或来自图像传感器的图像(例如,使用视觉惯性测程法(VIO))来确定头戴式显示器340在真实空间中的取向和/或位置。例如,头戴式显示器340的取向和/或位置的变化可用作控制界面,供用户改变使用头戴式显示器340呈现的模拟现实应用的模拟现实环境的视图。
头戴式显示器340包括屏幕、镜头或其他类型的光学组件,其被配置为将光引导到佩戴头戴式显示器340的用户的眼睛,以使得能够将图像(例如,视频帧)呈现给用户。头戴式显示器可通过紧固件(例如,头带或框架)保持在用户的面部上。在一些具体实施中,头戴式显示器340的屏幕直接位于用户眼前。屏幕可是不透明的,并且可使用户对周围环境的视图模糊不清。例如,可使用此类配置来提供沉浸式虚拟现实体验。在一些具体实施中,头戴式显示器340包括光学组件(例如,透镜和/或镜子),其直接地定位在用户的眼睛前方并被配置为将来自头戴式显示器340的屏幕或投影仪的光引导到用户的眼睛。光学组件还可将来自用户周围环境的光引导到用户的眼睛。例如,光学组件可包括应用于透明遮阳板内表面的部分反射偏振膜。光学组件可用作光学组合器。例如,光学组件的透镜还可让来自在用户前方的环境的光通过以到达用户的眼睛并允许用户在其自身前方看到,同时具有由覆盖于在用户前方的物理环境的视图上的头戴式显示器340呈现的图像中描绘的模拟现实环境的对象。在一些具体实施中,可调整光学组件(例如,镜头)的透明度以适合应用(例如,虚拟现实应用或增强现实应用)。
例如,互连件370可以是系统总线,或者有线或无线网络(例如,体域网)。
处理装置310可被配置为针对模拟现实应用(例如,图5的模拟现实应用500)启用基于视图的断点。例如,处理装置310可被配置为访问使用一个或多个运动传感器330捕获的运动数据,并且至少部分地基于该运动数据,确定使用头戴式显示器340呈现的模拟现实环境内的视图。处理装置310可被配置为检测到视图是与断点相关联的一组视图的成员,并且至少基于该视图是该组视图的成员,触发断点。例如,处理装置310可被配置为响应于断点被触发,执行与断点相关联的调试动作。处理装置310可被配置为在执行调试动作时,继续执行模拟现实环境的模拟过程(例如,模拟过程520),以使模拟现实环境中的至少一个虚拟对象的状态能够继续演化并用头戴式显示器340查看。在一些具体实施中,视图与模拟现实环境内的位置和来自该位置的查看矢量相对应,该组视图与模拟现实环境中的区域和相对于中心查看矢量的角度范围相对应,并且处理装置310被配置为通过以下操作来检测到该视图是该组视图的成员:确定该视图的位置是否在该组视图的区域内;确定在该视图的查看矢量与该组视图的中心查看矢量之间的角度;以及确定该角度是否在该组视图的角度范围内(例如,如关于图2所描述)。在一些具体实施中,视图与模拟现实环境内的射线相对应,该组视图与穿过模拟现实环境中的区域的一组射线相对应,并且处理装置310被配置为通过以下操作来检测到该视图是该组视图的成员:确定该视图的射线是否穿过该组视图的区域(例如,如关于图1所描述)。在一些具体实施中,视图与模拟现实环境内的焦点相对应,该组视图与模拟现实环境中的区域相对应,并且处理装置310被配置为通过以下操作来检测到该视图是该组视图的成员:确定该视图的焦点是否在该组视图的区域内。在一些具体实施中,处理装置310被配置为响应于断点被触发,至少基于视图来识别模拟现实环境中要通过射线投射来调试的一个或多个对象。处理装置310可被配置为对与一个或多个所识别的对象相关联的一个或多个过程执行调试动作。
断点可具有多个触发条件,该触发条件可一起使用逻辑函数(例如,逻辑与函数)来测试并应用以触发断点。例如,断点可具有基于视图的触发条件(例如,如上所述)并可具有附加触发条件,并且可当基于视图的触发条件和附加触发条件两者都被满足时触发断点。例如,处理装置310可被配置为至少基于到达与模拟现实环境中的虚拟对象相关联的过程中的代码行以及视图同时与断点相关联,触发断点。例如,处理装置310可被配置为至少基于满足关于模拟现实环境中的虚拟对象的状态的条件以及视图同时与断点相关联,触发断点。例如,处理装置310可被配置为至少基于检测到头戴式显示器340的用户的动作以及视图同时与断点相关联,触发断点。
处理装置310可被配置为响应于断点被触发而执行一个或多个调试动作,以便提供多种调试特征。在一些具体实施中,调试动作包括暂停与模拟现实环境中的虚拟对象相关联的过程的执行。例如,处理装置310可被配置为生成与所暂停的过程相关联的对象的视觉表示,并且在该过程暂停时使用头戴式显示器340继续在模拟现实环境内呈现视觉表示。在一些具体实施中,调试动作包括使用头戴式显示器340在模拟现实环境内呈现调试控制界面,该调试控制界面使头戴式显示器340的用户能够控制与模拟现实环境中的虚拟对象相关联的过程的执行(例如,在软件中的代码行的分辨率下)。例如,调试控制界面可使用户能够从由暂停、恢复、步入、步过和步出组成的一组功能选择至少一个功能。例如,调试控制界面可包括图标,该图标使用户能够发出步入命令、步过命令、步出命令、继续命令和/或暂停命令以控制与模拟现实环境中的虚拟对象相关联的过程的执行。在一些具体实施中,调试动作包括使用头戴式显示器340在模拟现实环境内呈现与模拟现实环境中的虚拟对象相关联的过程的代码。呈现代码的副本(例如,代码的语法颜色编码副本)可便于佩戴头戴式显示器340的用户调试代码。在一些具体实施中,调试动作包括使用头戴式显示器340在模拟现实环境内呈现与模拟现实环境中的虚拟对象相关联的过程的状态变量的值。在一些具体实施中,调试动作包括生成模拟现实环境中的虚拟对象的一个或多个参数的日志。
图4是被配置为在模拟现实应用中启用基于视图的断点的系统400的示例的框图。系统400包括头戴式显示器410和经由无线通信链路425通信的计算设备450。头戴式显示器410包括一个或多个运动传感器412、显示器414、无线通信接口416、头戴式显示器的部件可通过其交换信息(例如,在头戴式显示器410中的微控制器或其他处理装置(图4中未示出)的控制下)的互连件418,以及紧固件420,该紧固件被配置为将头戴式显示器410保持在佩戴头戴式显示器410的用户的头部的适当位置。计算设备450包括处理装置460、数据存储设备470、无线通信接口480、用户界面490,以及处理装置460可通过其访问计算设备450的其他部件的互连件494。计算设备450可位于佩戴头戴式显示器410的用户附近,并且可执行计算任务以控制头戴式显示器410。例如,计算设备450可为用户所在的房间中的桌子上的智能电话、平板计算机、台式计算机或家电(例如,智能电视机或智能扬声器),或者计算设备450可为佩戴在用户的不同的身体部位(例如,与胸部所穿戴的背心集成)的另一种可穿戴设备。系统400可被配置为针对模拟现实应用启用基于视图的断点,以便于佩戴头戴式显示器410的用户进行调试。例如,计算设备450可被配置为运行模拟现实应用(例如,图5的模拟现实应用500)。例如,系统400可被配置为实现图6的技术600。例如,系统400可被配置为实现图7的技术700。例如,系统400可被配置为实现图8的技术800。例如,系统400可被配置为实现图9的技术900。
头戴式显示器410包括一个或多个运动传感器412。一个或多个运动传感器412可被配置为检测头戴式显示器410的运动。例如,一个或多个运动传感器412可包括一个或多个加速度计、陀螺仪和/或磁力仪。一个或多个运动传感器412可附接到头戴式显示器410。在一些具体实施中,可至少基于来自一个或多个运动传感器412的传感器数据和/或来自图像传感器的图像(例如,使用视觉惯性测程法(VIO))来确定头戴式显示器410在真实空间中的取向和/或位置。例如,头戴式显示器410的取向和/或位置的变化可用作控制界面,供用户改变使用头戴式显示器410呈现的模拟现实应用的模拟现实环境的视图。
头戴式显示器410包括显示器414。显示器414可被配置为呈现图像,将数字图像转换为从显示器414投射的光。显示器414可使用投射可见光谱中的光的像素阵列来投射光。显示器414可包括屏幕、透镜,或者被配置为将光引导到佩戴头戴式显示器410的用户的眼睛以使得能够向用户呈现图像(例如,视频帧)的其他类型的光学组件。例如,显示器414可包括屏幕,诸如液晶显示器(LCD)、发光二极管(LED)显示器(例如,OLED显示器)或其他合适的屏幕。例如,显示器414可包括投影仪。在一些具体实施中,显示器414的屏幕定位在用户的眼睛正前方。屏幕可是不透明的,并且可使用户对周围环境的视图模糊不清。例如,可使用此类配置来提供沉浸式虚拟现实体验。在一些具体实施中,显示器414包括光学组件(例如,透镜和/或镜子),其直接地定位在用户的眼睛前方并被配置为将来自显示器414的屏幕或投影仪的光引导到用户的眼睛。光学组件还可将来自用户周围环境的光引导到用户的眼睛。例如,光学组件可包括应用于透明遮阳板内表面的部分反射偏振膜。光学组件可用作光学组合器。例如,光学组件的透镜还可让来自在用户前方的物理环境的光通过以到达用户的眼睛并允许用户在其自身前方看到,同时具有由覆盖于在用户前方的物理环境的视图上的显示器414呈现的图像中描绘的模拟现实环境的对象。在一些具体实施中,可调整光学组件(例如,透镜)的透明度以适合模拟现实应用(例如,虚拟现实应用或增强现实应用)。
头戴式显示器410包括无线通信接口416。无线通信接口416促成与包括计算设备450的其他设备的通信。例如,无线通信接口416可促成经由Wi-Fi网络、蓝牙链路或ZigBee链路的通信。在一些具体实施中,无线通信接口416可用于从计算设备450接收数据和/或调用使用显示器414对模拟现实环境的视图进行的呈现的指令。在一些具体实施中,无线通信接口416可用于将来自一个或多个运动传感器412的传感器数据传输到计算设备450。
例如,互连件418可为系统总线,或者有线或无线网络(例如,体域网)。
头戴式显示器410包括紧固件420。紧固件420可被配置为当用户佩戴头戴式显示器410时将头戴式显示器410保持在用户的头部上的适当位置。例如,紧固件420可包括头带。例如,紧固件420可包括具有臂的框架,该臂搁置在用户的耳朵上并将显示器414的透镜或屏幕保持在用户的眼睛前方。
计算设备450包括处理装置460。处理装置460可操作为执行已经存储在数据存储设备470中的指令。在一些具体实施中,处理装置460是具有随机存取存储器的处理器,用于在执行指令时临时地存储从数据存储设备470读取的指令。处理装置460可包括单个或多个处理器,每个处理器具有单个或多个处理核心。另选地,处理装置460可包括能够操纵或处理数据的另一类型的设备或多个设备。例如,数据存储设备470可为非易失性信息存储设备,诸如硬盘驱动器、固态驱动器、只读存储器设备(ROM)、光盘、磁盘,或者任何其他合适类型的存储设备诸如非暂态计算机可读存储器。数据存储设备470可包括能够存储用于由处理装置460检索或处理的数据的另一类型的设备或多个设备。处理装置460可经由互连件494访问和操纵存储在数据存储设备470中的数据。例如,数据存储设备470可存储可由处理装置460执行的指令,该指令在由处理装置460执行时使处理装置460执行操作(例如,实现图6的技术600的操作)。
计算设备450包括无线通信接口480。无线通信接口480促进与包括头戴式显示器410的其他设备的通信。例如,无线通信接口480可促成经由Wi-Fi网络、蓝牙链路或ZigBee链路的通信。无线通信接口480可用于与头戴式显示器410建立无线通信链路425。在一些具体实施中,无线通信接口480可用于从头戴式显示器410接收传感器数据(例如,运动传感器数据)。在一些具体实施中,无线通信接口480可用于向头戴式显示器410传输数据和/或调用使用显示器414对模拟现实环境的视图进行的呈现的指令。
计算设备450包括用户接口490。例如,用户接口490可包括触摸屏显示器。例如,用户界面490可包括被配置为接收语音命令的麦克风。例如,用户接口490可包括被配置为检测手势命令的图像传感器。例如,用户接口490可包括键盘、鼠标、操纵杆和/或另一种手持控制器。例如,用户界面490可使用户(例如,佩戴头戴式显示器410的用户)向在计算设备450上运行的模拟现实应用(例如,图5的模拟现实应用500)输入命令(例如,调试命令)和/或编辑与模拟现实应用的模拟现实环境的对象相关联的过程的代码。
例如,互连件494可为系统总线,或者有线或无线网络(例如,体域网)。
处理装置460可被配置为针对模拟现实应用(例如,图5的模拟现实应用500)启用基于视图的断点。例如,处理装置460可被配置为访问使用一个或多个运动传感器412捕获的运动数据,并且至少部分地基于该运动数据,确定使用头戴式显示器410呈现的模拟现实环境内的视图。处理装置460可被配置为检测到视图是与断点相关联的一组视图的成员,并且至少基于该视图是该组视图的成员,触发断点。例如,处理装置460可被配置为响应于断点被触发,执行与断点相关联的调试动作。处理装置460可被配置为在执行调试动作时,继续执行模拟现实环境的模拟过程(例如,模拟过程520),以使模拟现实环境中的至少一个虚拟对象的状态能够继续演化并用头戴式显示器410查看。在一些具体实施中,视图与模拟现实环境内的位置和来自该位置的查看矢量相对应,该组视图与模拟现实环境中的区域和相对于中心查看矢量的角度范围相对应,并且处理装置460被配置为通过以下操作来检测到该视图是该组视图的成员:确定该视图的位置是否在该组视图的区域内;确定在该视图的查看矢量与该组视图的中心查看矢量之间的角度;以及确定该角度是否在该组视图的角度范围内(例如,如关于图2所描述)。在一些具体实施中,视图与模拟现实环境内的射线相对应,该组视图与穿过模拟现实环境中的区域的一组射线相对应,并且处理装置460被配置为通过以下操作来检测到该视图是该组视图的成员:确定该视图的射线是否穿过该组视图的区域(例如,如关于图1所描述)。在一些具体实施中,视图与模拟现实环境内的焦点相对应,该组视图与模拟现实环境中的区域相对应,并且处理装置460被配置为通过以下操作来检测到该视图是该组视图的成员:确定该视图的焦点是否在该组视图的区域内。在一些具体实施中,处理装置460被配置为响应于断点被触发,至少基于视图来识别模拟现实环境中要通过射线投射来调试的一个或多个对象。处理装置460可被配置为对与一个或多个所识别的对象相关联的一个或多个过程执行调试动作。
断点可具有多个触发条件,该触发条件可一起使用逻辑函数(例如,逻辑与函数)来测试并应用以触发断点。例如,断点可具有基于视图的触发条件(例如,如上所述)并可具有附加触发条件,并且可当基于视图的触发条件和附加触发条件两者都被满足时触发断点。例如,处理装置460可被配置为至少基于到达与模拟现实环境中的虚拟对象相关联的过程中的代码行以及视图同时与断点相关联,触发断点。例如,处理装置460可被配置为至少基于满足关于模拟现实环境中的虚拟对象的状态的条件以及视图同时与断点相关联,触发断点。例如,处理装置460可被配置为至少基于检测到头戴式显示器410的用户的动作以及视图同时与断点相关联,触发断点。
处理装置460可被配置为响应于断点被触发而执行一个或多个调试动作,以便提供多种调试特征。在一些具体实施中,调试动作包括暂停与模拟现实环境中的虚拟对象相关联的过程的执行。例如,处理装置460可被配置为生成与所暂停的过程相关联的对象的视觉表示,并且在该过程暂停时使用头戴式显示器410继续在模拟现实环境内呈现视觉表示。在一些具体实施中,调试动作包括使用头戴式显示器410在模拟现实环境内呈现调试控制界面,该调试控制界面使头戴式显示器410的用户能够控制与模拟现实环境中的虚拟对象相关联的过程的执行(例如,在软件中的代码行的分辨率下)。例如,调试控制界面可使用户能够从由暂停、恢复、步入、步过和步出组成的一组功能选择至少一个功能。例如,调试控制界面可包括图标,该图标使用户能够发出步入命令、步过命令、步出命令、继续命令和/或暂停命令以控制与模拟现实环境中的虚拟对象相关联的过程的执行。在一些具体实施中,调试动作包括使用头戴式显示器410在模拟现实环境内呈现与模拟现实环境中的虚拟对象相关联的过程的代码。呈现代码的副本(例如,代码的语法颜色编码副本)可便于佩戴头戴式显示器410的用户调试代码。在一些具体实施中,调试动作包括使用头戴式显示器410在模拟现实环境内呈现与模拟现实环境中的虚拟对象相关联的过程的状态变量的值。在一些具体实施中,调试动作包括生成模拟现实环境中的虚拟对象的一个或多个参数的日志。
在一些具体实施中(图4中未示出),用于模拟现实应用(例如,图5的增强现实应用500)的处理可分布在头戴式显示器410中的处理装置与处理装置460之间。例如,可在头戴式显示器410的处理装置上运行模拟过程(例如,模拟过程520)以减少对模拟现实环境的视图的更新的延迟,而与模拟现实环境中的对象相关联的一个或多个过程(例如,过程A 530和过程B 532)可在处理装置460上运行以更新对象的状态。在一些具体实施中,可经由在头戴式显示器410与计算设备450之间的无线通信链路425传输现实片段(例如,现实片段540和现实片段542)。因此,头戴式显示器410的处理装置以及处理装置460可作为分布在头戴式显示器410与运行模拟现实应用并实现本文所述的技术(例如,图6的技术600)的计算设备450之间的单个处理装置操作。
图5是模拟现实应用500的示例的框图。模拟现实应用500包括一起实现用户在佩戴头戴式显示器510时可查看和/或交互的模拟现实环境的多个过程。模拟现实应用500包括模拟过程520,该模拟过程协调模拟现实环境的各种对象,并且使用头戴式显示器510生成模拟现实环境的视图并将其呈现给用户。模拟现实应用500包括与模拟现实环境的对象相关联的多个过程。在该示例中,模拟现实应用500包括可与一个或多个对象(例如,弹跳球)相关联的过程A 530和可与一个或多个对象(例如,另一个用户的化身)相关联的过程B532。过程A 530和过程B 532可维持其相应对象的状态。过程A 530和过程B 532将对其相应对象的状态的更新提供给模拟过程520作为现实片段540和现实片段542。然后,模拟过程520可使用头戴式显示器510将所更新的对象呈现给用户。
例如,头戴式显示器510可包括头戴式显示器340或头戴式显示器410。
模拟过程520可包括一个或多个线程。例如,模拟过程520可实现物理引擎,该物理引擎确定模拟现实环境中的对象如何彼此交互。模拟过程520可从与呈现实片段(例如,现实片段540和现实片段542)的形式的那些对象相对应的过程接收模拟现实环境的对象的所更新的状态信息。例如,现实片段540和现实片段542可经由过程间界面传递到模拟过程520。模拟过程520可从头戴式显示器510接收运动数据,并且可至少基于运动数据来更新视图。模拟过程520可渲染模拟现实环境的视图作为可传递到头戴式显示器510以呈现给用户的一个或多个图像(例如,用户的左眼的图像和用户的右眼的图像)。例如,视图的渲染图像可经由互连件(例如,互连件370)传送到头戴式显示器510。例如,视图的渲染图像可经由无线通信链路(例如,无线通信链路425)传送到头戴式显示器510。
过程A 530可包括一个或多个线程。过程A 530可维持和更新虚拟对象(例如,虚拟书籍或虚拟弹跳球)的状态。过程B 532可包括一个或多个线程。过程B 532可维持和更新虚拟对象(例如,虚拟电话或另一个用户的化身)的状态。在一些使用场景中,当触发过程A530的断点时,暂停过程A 530并产生新的过程(图5中未示出)来提供过程A 530的调试控制界面作为模拟现实环境中的新的虚拟对象。过程B 532可过程A 530在断点的触发之后进行调试时继续正常执行。还继续执行模拟过程520以使用头戴式显示器510向用户呈现模拟现实环境。可使得用户从模拟现实环境内调试过程A 530,同时保留继续与模拟现实环境中可能有帮助的其他对象诸如另一个用户的化身交互的选项。
图6是用于启用基于视图的断点的技术600的示例的流程图。技术600包括访问610使用一个或多个运动传感器捕获的运动数据;至少基于运动数据,确定620使用头戴式显示器呈现的模拟现实环境内的视图;检测630到视图与断点相关联;至少基于视图与断点相关联,触发640断点;响应于断点被触发,执行650与断点相关联的调试动作;以及在执行调试动作时,继续660执行模拟现实环境的模拟过程,以使模拟现实环境中的至少一个虚拟对象的状态能够继续演化并用头戴式显示器查看。例如,技术600可由图3的系统300实现。例如,技术600可由图4的系统400实现。
技术600包括访问610使用一个或多个运动传感器(例如,一个或多个运动传感器330或一个或多个运动传感器412)捕获的运动数据。例如,一个或多个运动传感器可包括一个或多个加速度计、陀螺仪和/或磁力仪。在一些具体实施中,一个或多个运动传感器附接到头戴式显示器(例如,头戴式显示器340或头戴式显示器410)。在一些具体实施中,可至少基于来自一个或多个运动传感器的传感器数据来确定头戴式显示器在真实空间中的取向和/或位置。可以多种方式访问610运动数据。例如,可通过直接地从传感器读取或经由互连件(例如,互连件370)从存储器读取来访问610传感器数据。例如,可经由通信链路(例如,无线通信链路425)接收传感器数据,访问610传感器数据。
技术600包括至少基于运动数据,确定620使用头戴式显示器(例如,头戴式显示器340或头戴式显示器410)呈现的模拟现实环境内的视图。例如,当佩戴头戴式显示器的用户转动其头部时,模拟现实环境的视图可在模拟现实环境内旋转对应量。例如,当佩戴头戴式显示器的用户行走时,模拟现实环境的视图可通过对模拟现实环境(例如,覆盖在物理环境上的增强现实应用的模拟现实环境)中的视图的位置(例如,用户的化身的位置)作出对应改变来移位。在一些具体实施中,其他输入也可用于改变模拟现实环境的视图。例如,操纵杆或鼠标输入可使化身和对应视图的位置改变(例如,改变视图的虚拟相机的位置),而运动数据可用于改变视图的取向(例如,改变视图的虚拟相机的取向)。例如,图像数据可与运动数据一起用来确定620视图(例如,通过使用视觉惯性测程法(VIO)确定显示设备的姿态)。
技术600包括检测630视图是否与断点相关联。例如,检测630视图是否与断点相关联可包括检测到630视图是与断点相关联的一组视图的成员。作为与断点相关联的该组视图的成员的视图可为断点的基于视图的触发条件。可以多种方式指定与断点相关联的该组视图。在一些具体实施中,该组视图与模拟现实环境中的区域和相对于中心查看矢量的角度范围相对应(例如,如关于图2的使用场景200所描述)。例如,图7的技术700可被实现为检测630到视图是该组视图的成员。在一些具体实施中,视图与模拟现实环境内的射线(例如,来自化身或虚拟相机的当前位置的射线)相对应,该组视图与穿过模拟现实环境中的区域(例如,区域140)的一组射线相对应,并且检测630到视图是该组视图的成员包括确定该视图的射线是否穿过该组视图的区域(例如,如关于图1的使用场景100所描述)。在一些具体实施中,视图与模拟现实环境内的焦点相对应,该组视图与模拟现实环境中的区域相对应,并且检测630到该视图是该组视图的成员包括确定该视图的焦点是否在该组视图的区域内。
技术600包括至少基于视图与断点相关联(例如,至少基于视图是与断点相关联的该组视图的成员),触发640断点。断点可与一个或多个触发条件相关联,包括视图是该组视图的成员。在一些具体实施中,视图是该组视图的成员是与断点相关联的唯一触发条件。在一些具体实施中,视图是该组视图的成员可为断点的多个触发条件中的一个触发条件。在断点具有多个触发条件的情况下,该触发条件可一起使用逻辑函数(例如,逻辑与函数)来测试并应用以触发断点。例如,当基于视图的触发条件和附加触发条件两者都被满足时,可触发断点。例如,触发640断点可包括至少基于到达与模拟现实环境中的对象(例如,弹跳球)相关联的过程(例如,过程A 530)中的代码行以及视图同时与断点相关联,触发断点。例如,有关到达代码行以及视图的条件可有助于用户调查在特定查看场景期间与对象相关联的过程的某些代码段的性能。例如,触发640断点可包括至少基于满足关于模拟现实环境中的虚拟对象的状态的条件以及视图同时与断点相关联,触发断点。例如,触发640断点可包括至少基于检测到由头戴式显示器的用户进行的动作(例如,手势或经由用户界面490的按钮按下输入)以及视图同时与断点相关联,触发断点。
技术600包括响应于断点被触发,执行650与断点相关联的调试动作。例如,调试动作可包括暂停与模拟现实环境中的虚拟对象相关联的过程(例如,过程A 530)的执行,和/或使用头戴式显示器向用户呈现调试控制界面以便于调试该过程。可响应于断点被触发而执行650一个或多个调试动作,以便提供多种调试特征。例如,可实现关于图8的技术800描述的动作的各种组合以执行650调试动作。
技术600包括在执行650调试动作时,继续660执行模拟现实环境的模拟过程(例如,模拟过程520),以使模拟现实环境中的至少一个虚拟对象的状态能够继续演化并用头戴式显示器查看。例如,用户可被允许独立地调试与模拟现实环境内的特定感兴趣对象相关联的过程,同时继续使用由模拟现实应用提供的模拟现实环境来查看模拟现实环境中的其他对象(例如,另一个用户的化身)和/或与其交互。例如,调试动作可包括暂停与模拟现实环境中的对象(例如,弹跳球)相关联的过程(例如,过程A530)的执行,并且在该过程暂停以进行调试时,用于其他对象(例如,化身)的其他过程(例如,过程B 532)可继续运行,从而使得能够继续与那些其他对象交互。
图7是用于检测到视图是与断点相关联的一组视图的成员的技术700的示例的流程图。该视图可被指定为模拟现实环境内的位置和来自该位置的查看矢量。该组视图可与模拟现实环境中的区域和相对于中心观察查看矢量的角度范围相对应。技术700包括确定710视图的位置是否在该组视图的区域内;确定720在该视图的查看矢量与该组视图的中心查看矢量之间的角度;以及确定730角度是否在该组视图的角度范围内。例如,技术700可由图3的系统300实现。例如,技术700可由图4的系统400实现。
技术700包括确定710视图的位置是否在该组视图的区域内。例如,视图的位置可与佩戴头戴式显示器的用户的化身的位置和/或与用户相关联的虚拟相机的位置相对应。视图的位置可与模拟现实环境(例如,作为三维空间的模拟现实环境)中的点的坐标相对应。在一些具体实施中,确定710视图的位置是否在该组视图的区域内包括检查视图的位置是否与该组视图的区域相交。在一些具体实施中,确定710视图的位置是否在该组视图的区域内包括将视图的位置投射到较低维度子空间上并检查视图的位置的投影与该组视图的区域的交点是否为非空。例如,三维位置可被投射到二维平面(例如,虚拟地板)上,在该二维平面上指定该组视图的区域(例如,如关于图2的使用场景200所描述)。
技术700包括确定720在视图的查看矢量与该组视图的中心查看矢量之间的角度。例如,查看矢量可平行于穿过使用头戴式显示器呈现给用户的视图的中心的射线。例如,查看矢量可从视图的位置指向。例如,中心查看矢量可从该组视图的区域朝向一个或多个感兴趣虚拟对象指向。技术700包括确定730角度是否在该组视图的角度范围内。例如,如果角度的量值小于阈值,则该角度可在该组视图的角度范围内。在一些具体实施中,可确定720和评估在该组视图的查看矢量和中心查看矢量之间的两个角度。例如,可确定720在两个查看矢量之间的俯仰旋转和偏航旋转,并且可将俯仰角的量值与第一阈值比较,以及可将偏航角的量值与可能与第一阈值不同的第二阈值比较。例如,如果视图的位置在区域内并且角度在角度范围内,则视图被检测为与断点相关联的该组视图的成员。
图8是用于响应于断点被触发而执行调试动作的技术800的示例的流程图。技术800包括暂停810与模拟现实环境中的虚拟对象相关联的过程的执行;生成820与所暂停的过程相关联的对象的视觉表示;在过程暂停时,使用头戴式显示器继续在模拟现实环境内呈现830视觉表示;使用头戴式显示器在模拟现实环境内呈现840调试控制界面;使用头戴式显示器在模拟现实环境内呈现850与模拟现实环境中的虚拟对象相关联的过程的代码;使用头戴式显示器在模拟现实环境内呈现860与模拟现实环境中的虚拟对象相关联的过程的状态变量的值;以及生成870模拟现实环境中的虚拟对象的一个或多个参数的日志。例如,技术800可由图3的系统300实现。例如,技术800可由图4的系统400实现。
技术800包括暂停810与模拟现实环境中的虚拟对象相关联的过程的执行。在相关联的过程被暂停810时,对象的状态可停止演进。暂停810用于对象的过程的执行可使佩戴头戴式显示器(例如,头戴式显示器410)的用户(例如,软件开发员)能够检查过程的代码和/或状态变量。例如,过程A 530可暂停810以便于调试过程A 530。
技术800包括生成820与所暂停的过程(例如,过程A 530)相关联的对象的视觉表示。例如,用于模拟现实环境的模拟过程(例如,模拟过程520)可至少基于在过程暂停810时对象的最新可用状态信息(例如,如被编码在现实片段540中的)来生成820对象(例如,暂停在空中的弹跳球)的视觉表示。技术800包括在过程暂停810时,使用头戴式显示器(例如,头戴式显示器340或头戴式显示器410)继续在模拟现实环境内呈现830视觉表示。
技术800包括使用头戴式显示器(例如,头戴式显示器340或头戴式显示器410)在模拟现实环境内呈现840调试控制界面,该调试控制界面使头戴式显示器的用户能够控制与模拟现实环境中的虚拟对象相关联的过程(例如,过程A 530)的执行(例如,在软件中的代码行的分辨率下)。例如,调试控制界面可使用户能够从由暂停、恢复、步入、步过和步出组成的一组功能选择至少一个功能。例如,调试控制界面可包括图标,该图标使用户能够发出步入命令、步过命令、步出命令、继续命令和/或暂停命令以控制与模拟现实环境中的虚拟对象相关联的过程的执行。在一些具体实施中,调试控制界面可在模拟现实环境中产生作为新的虚拟对象,其中相关联的过程被配置为管理正在调试的另一个过程的调试会话。在该示例中,被暂停810的过程正在调试。
技术800包括使用头戴式显示器在模拟现实环境内呈现850与模拟现实环境中的虚拟对象相关联的过程(例如,过程A 530)的代码。例如,所呈现850的代码的副本可为代码的语法颜色编码副本,这可便于佩戴头戴式显示器的用户调试代码。在一些具体实施中,代码可被呈现850在为被暂停810的过程呈现840的调试控制界面的一部分中。
技术800包括使用头戴式显示器在模拟现实环境内呈现860与模拟现实环境中的虚拟对象相关联的过程(例如,过程A 530)的状态变量的值。在一些具体实施中,状态变量的值可被呈现860在为被暂停810的过程呈现840的调试控制界面的一部分中。
技术800包括生成870模拟现实环境中的虚拟对象的一个或多个参数(例如,输出或内部状态变量)的日志。例如,日志可记录一个或多个参数的时间历史,并且日志中的条目可包括相应时间戳。例如,日志可被写入处理装置310的存储器和/或写入数据存储设备320。在一些具体实施中,日志的全部或一部分(例如,最近N个条目)可使用头戴式显示器呈现在模拟现实环境内。在一些具体实施中,日志条目可被呈现在为被暂停810的过程呈现840的调试控制界面的一部分中。
图9是用于响应于断点被触发而识别要调试的一个或多个虚拟对象的技术900的示例的流程图。例如,可至少基于在断点被触发时的视图来选择要调试的一个或多个对象。技术900包括响应于断点被触发,至少基于视图来识别910模拟现实环境中要通过射线投射来调试的一个或多个对象;以及对与一个或多个所识别的对象相关联的一个或多个过程执行920调试动作。例如,技术900可由图3的系统300实现。例如,技术900可由图4的系统400实现。
技术900包括响应于断点被触发,至少基于视图来识别910模拟现实环境中要通过射线投射来调试的一个或多个对象。例如,投射穿过使用头戴式显示器呈现给用户的视图的中心的射线可用于射线投射以识别910要调试的一个或多个对象。如果射线入射在模拟现实环境中的虚拟对象上,则可识别910要调试的对象。在一些具体实施中,仅识别910与射线相交的最靠近的对象。在一些具体实施中,识别910射线穿过的多个对象。在一些具体实施中,源自视图的多个射线被投射以识别910要调试的一个或多个对象。在一些具体实施中,视线检测用于识别910用户正在看的对象。
技术900包括对与一个或多个所识别910的对象相关联的一个或多个过程执行920调试动作。例如,图8的技术800可被实现为对与已经被识别910的对象中的一个或多个对象相关联的过程执行920调试动作。可针对这种过程执行调试动作的其他组合。在一些具体实施中,执行920调试动作包括针对与已经被识别910的对象相关联的每个过程产生独立的调试器过程。
本文所述的技术(例如,图6的技术600)可用于使用多种显示硬件呈现的模拟现实应用。例如,用于呈现如本文所述的模拟现实环境的显示器可为运行模拟现实应用的头戴式显示器、智能电话或平板计算机的部分。
上述公开的具体实施或具体实施的部分可采取计算机程序产品的形式,该计算机程序产品可从例如计算机可用介质或计算机可读介质访问。计算机可用介质或计算机可读介质可以是例如可有形地包含、存储、传送或传输程序或数据结构以供任何处理器使用或连接的任何设备。介质可以是(例如)电子设备、磁性设备、光学设备、电磁设备或半导体设备。也可使用其他合适的介质。此类计算机可用介质或计算机可读介质可被称为非暂态存储器或介质,并且可包括RAM或可随时间推移而变化的其他易失性存储器或存储设备。
一些具体实施可收集和/或使用数据以便于调试模拟现实应用。该数据可能包括识别特定人员的个人信息。个人信息的示例包括姓名、出生日期、地址、电话号码、位置、社交媒体用户名或其他账户用户名和/或生理信息。
在一些具体实施中,使用这种类型的信息可有利于增强对本文所述的系统和方法的使用。例如,个人信息可用于辨识真实环境中的位置以增强对增强现实应用的操作和调试。
收集、接收、传输和/或使用个人信息的人员应使用完善的政策和实践。例如,应当满足并超出行业标准实践和保护范围,以保持此类信息安全。在收集和使用信息之前以及每当政策和程序改变时,都应当使用户了解到这些政策和程序。应当限制访问该信息,以防止不当的使用和意外的泄露。收集、接收、传输和/或使用个人信息的人员还必须遵守相关司法管辖区内的所有法律和法规,并且应当认识到,这些法律和法规将因国家和地区而异。
本文中的系统和方法可允许用户限制或阻止个人信息的使用,诸如通过“选择加入”或“选择退出”类型的系统。这些选项可提供给用户,使得通过使用不同类型的信息来提供独立的控制。因此,可将位置数据和用户标识信息不同地指定为准许使用或禁止使用。
应当采取步骤各来应对未经授权的披露或使用的风险。示例包括限制数据收集、限制保持信息的时间段,以及删除不需要的数据。此外,一些类型的个人信息可被匿名化或以聚合用户间的数据的形式存储,而无需将该信息链接到特定用户。
此外,尽管个人信息可用于本文中的系统和方法,但个人信息并非是任何具体实施所需的,并且可消除个人信息的使用。例如,可基于非个人信息数据或绝对最小量的个人信息在没有地理定位数据的情况下来确定一些模拟现实环境中的视图。
虽然已结合某些实施方案描述了本公开,但应当理解,本公开并不限于所公开的实施方案,相反,其旨在涵盖所附权利要求范围内所包括的各种修改形式和等同布置,所述范围将被赋予最广泛的解释,以便涵盖所有此类修改形式和等同结构。

Claims (20)

1.一种用于呈现模拟现实环境的系统,所述系统包括:
显示器;
一个或多个运动传感器,所述一个或多个运动传感器附接到所述显示器;和
处理装置,所述处理装置被配置为:
访问使用所述一个或多个运动传感器捕获的运动数据;
至少基于所述运动数据,确定使用所述显示器呈现的模拟现实环境内的视图;
检测所述视图是否与断点相关联;
至少基于检测到所述视图与所述断点相关联,触发所述断点并执行与所述断点相关联的调试动作;以及
在执行所述调试动作时,继续执行所述模拟现实环境的模拟过程,以使所述模拟现实环境中的至少一个虚拟对象的状态能够继续用所述显示器查看并对使用所述一个或多个运动传感器接收的输入作出响应。
2.根据权利要求1所述的系统,其中所述视图与来自所述模拟现实环境中的位置的查看矢量相对应,所述断点与一组视图相关联,所述一组视图与所述模拟现实环境中的区域和相对于中心查看矢量的角度范围相对应,并且所述处理装置被配置为通过以下操作检测到所述视图与所述断点相关联:
确定所述视图的所述位置是否在所述一组视图的所述区域内;
确定在所述视图的所述查看矢量与所述一组视图的所述中心查看矢量之间的角度;以及
确定所述角度是否在所述一组视图的所述角度范围内。
3.根据权利要求1所述的系统,其中所述视图与所述模拟现实环境内的射线相对应,所述断点与一组视图相关联,所述一组视图与穿过所述模拟现实环境中的区域的一组射线相对应,并且所述处理装置被配置为通过以下操作检测到所述视图与所述断点相关联:
确定所述视图的所述射线是否穿过所述一组视图的所述区域。
4.根据权利要求1所述的系统,其中所述视图与所述模拟现实环境内的焦点相对应,所述断点与一组视图相关联,所述一组视图与所述模拟现实环境中的区域相对应,并且所述处理装置被配置为通过以下操作检测到所述视图与所述断点相关联:
确定所述视图的所述焦点是否在所述一组视图的所述区域内。
5.根据权利要求1至4中任一项所述的系统,其中所述断点具有多个触发条件,并且所述处理装置被配置为:
至少基于到达与所述模拟现实环境中的虚拟对象相关联的过程中的代码行以及所述视图同时与所述断点相关联,触发所述断点。
6.根据权利要求1至4中任一项所述的系统,其中所述断点具有多个触发条件,并且所述处理装置被配置为:
至少基于满足关于所述模拟现实环境中的虚拟对象的状态的条件以及所述视图同时与所述断点相关联,触发所述断点。
7.根据权利要求1至4中任一项所述的系统,其中所述断点具有多个触发条件,并且所述处理装置被配置为:
至少基于检测到由所述显示器的用户进行的动作以及所述视图同时与所述断点相关联,触发所述断点。
8.根据权利要求1至4中任一项所述的系统,其中所述处理装置被配置为:
响应于所述断点被触发,至少基于所述视图来识别所述模拟现实环境中要通过射线投射来调试的一个或多个对象;以及
对与一个或多个所识别的对象相关联的一个或多个过程执行所述调试动作。
9.根据权利要求1至4中任一项所述的系统,其中所述调试动作包括暂停与所述模拟现实环境中的虚拟对象相关联的过程的执行。
10.根据权利要求9所述的系统,其中所述处理装置被配置为:
生成与所暂停的过程相关联的所述对象的视觉表示;以及
在所述过程暂停时,使用所述显示器继续在所述模拟现实环境内呈现所述视觉表示。
11.根据权利要求1至4中任一项所述的系统,其中所述调试动作包括使用所述显示器在所述模拟现实环境内呈现调试控制界面,所述调试控制界面使所述显示器的用户能够控制与所述模拟现实环境中的虚拟对象相关联的过程的执行。
12.根据权利要求1至4中任一项所述的系统,其中所述调试动作包括使用所述显示器在所述模拟现实环境内呈现与所述模拟现实环境中的虚拟对象相关联的过程的代码。
13.根据权利要求1至4中任一项所述的系统,其中所述显示器是头戴式显示器。
14.一种用于呈现模拟现实环境的方法,所述方法包括:
访问使用一个或多个运动传感器捕获的运动数据;
至少基于所述运动数据,确定使用显示器呈现的模拟现实环境内的视图;
检测所述视图是否与断点相关联;
至少基于检测到所述视图与所述断点相关联,触发所述断点;
响应于所述断点被触发,执行与所述断点相关联的调试动作;以及
在执行所述调试动作时,继续执行所述模拟现实环境的模拟过程,以使所述模拟现实环境中的至少一个虚拟对象的状态能够继续演化并用所述显示器查看。
15.根据权利要求14所述的方法,其中所述视图与来自所述模拟现实环境中的位置的查看矢量相对应,所述断点与一组视图相关联,所述一组视图与所述模拟现实环境中的区域和相对于中心查看矢量的角度范围相对应,并且检测到所述视图与所述断点相关联包括:
确定所述视图的所述位置是否在所述一组视图的所述区域内;
确定在所述视图的所述查看矢量与所述一组视图的所述中心查看矢量之间的角度;以及
确定所述角度是否在所述一组视图的所述角度范围内。
16.根据权利要求14所述的方法,其中所述视图与所述模拟现实环境内的射线相对应,所述断点与一组视图相关联,所述一组视图与穿过所述模拟现实环境中的区域的一组射线相对应,并且检测到所述视图与所述断点相关联包括:
确定所述视图的所述射线是否穿过所述一组视图的所述区域。
17.根据权利要求14所述的方法,其中所述视图与所述模拟现实环境内的焦点相对应,所述断点与一组视图相关联,所述一组视图与所述模拟现实环境中的区域相对应,并且检测到所述视图与所述断点相关联包括:
确定所述视图的所述焦点是否在所述一组视图的所述区域内。
18.根据权利要求14至17中任一项所述的方法,包括:
至少基于到达与所述模拟现实环境中的虚拟对象相关联的过程中的代码行以及所述视图同时与所述断点相关联,触发所述断点。
19.根据权利要求14至17中任一项所述的方法,包括:
响应于所述断点被触发,至少基于所述视图来识别所述模拟现实环境中要通过射线投射来调试的一个或多个对象;以及
对与一个或多个所识别的对象相关联的一个或多个过程执行所述调试动作。
20.根据权利要求14至17中任一项所述的方法,其中所述调试动作包括暂停与所述模拟现实环境中的虚拟对象相关联的过程的执行。
CN201980033646.0A 2018-06-26 2019-06-25 基于视图的断点 Active CN112262373B (zh)

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 (2)

Publication Number Publication Date
CN112262373A CN112262373A (zh) 2021-01-22
CN112262373B true CN112262373B (zh) 2024-05-31

Family

ID=67211972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980033646.0A Active CN112262373B (zh) 2018-06-26 2019-06-25 基于视图的断点

Country Status (8)

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

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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462743A (zh) * 2014-05-09 2017-02-22 谷歌公司 用于向安全移动通信使用眼睛信号的系统和方法
CN106462488A (zh) * 2014-05-29 2017-02-22 微软技术许可有限责任公司 调试期间的性能优化提示呈现
CN107850936A (zh) * 2015-01-28 2018-03-27 Ccp公司 用于提供物理环境的虚拟显示的方法和系统

Family Cites Families (11)

* 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
US10888270B2 (en) * 2015-08-06 2021-01-12 Avishai Abrahami Cognitive state alteration system integrating multiple feedback technologies
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 富士通株式会社 アクション指示プログラム、アクション指示方法及び画像生成装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106462743A (zh) * 2014-05-09 2017-02-22 谷歌公司 用于向安全移动通信使用眼睛信号的系统和方法
CN106462488A (zh) * 2014-05-29 2017-02-22 微软技术许可有限责任公司 调试期间的性能优化提示呈现
CN107850936A (zh) * 2015-01-28 2018-03-27 Ccp公司 用于提供物理环境的虚拟显示的方法和系统

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6730286B2 (ja) 拡張現実視野オブジェクトフォロワー
CN106662925B (zh) 使用头戴式显示器设备的多用户注视投影
US11520401B2 (en) Focus-based debugging and inspection for a display system
US11712628B2 (en) Method and device for attenuation of co-user interactions
KR102590957B1 (ko) 컴퓨터 생성 렌더링 환경을 위한 시각적 검색 세분화
CN112639685A (zh) 模拟现实(sr)中的显示设备共享和交互
US11768590B2 (en) Configuring objective-effectuators for synthesized reality settings
CN111602391B (zh) 用于根据物理环境定制合成现实体验的方法和设备
CN115297314A (zh) 用于调试程序执行和内容回放的方法和设备
CN112262373B (zh) 基于视图的断点
US20230290042A1 (en) Content playback and modifications in a 3d environment
CN113678173A (zh) 用于虚拟对象的基于图绘的放置的方法和设备
US11836842B2 (en) Moving an avatar based on real-world data
KR20210046781A (ko) 계산 효율적인 모델 선택
JPWO2020005898A5 (zh)
US11966278B2 (en) System and method for logging visible errors in a videogame
US11763517B1 (en) Method and device for visualizing sensory perception
WO2024064909A2 (en) Methods, systems, and computer program products for alignment of a wearable device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant