CN117378000B - 用于虚拟现实环境的系统和方法 - Google Patents

用于虚拟现实环境的系统和方法 Download PDF

Info

Publication number
CN117378000B
CN117378000B CN202180094383.1A CN202180094383A CN117378000B CN 117378000 B CN117378000 B CN 117378000B CN 202180094383 A CN202180094383 A CN 202180094383A CN 117378000 B CN117378000 B CN 117378000B
Authority
CN
China
Prior art keywords
identifier
resource
virtual
virtual environment
computing device
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
CN202180094383.1A
Other languages
English (en)
Other versions
CN117378000A (zh
Inventor
斯科特·艾伦
蒂莫西·艾伦
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.)
Aubrey Technology Co ltd
Original Assignee
Aubrey Technology Co ltd
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
Priority claimed from US17/139,771 external-priority patent/US11610363B2/en
Application filed by Aubrey Technology Co ltd filed Critical Aubrey Technology Co ltd
Publication of CN117378000A publication Critical patent/CN117378000A/zh
Application granted granted Critical
Publication of CN117378000B publication Critical patent/CN117378000B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

在一些方面,本公开涉及用于具有对外部数据和资源的环境内访问的动态可重新配置的虚拟现实环境的方法和系统。这些系统的实现方式还提供用于修改虚拟现实体验的其他方面而无需重新编码或编译该体验的外部机制。这可以改变体验的主流,基于访问体验的特定用户来改变体验的行为,以及向应用添加品牌的或客户特定的方面。相同级别或环境可以为从初学者到专家的不同用户提供显著不同的体验,甚至允许通过简单配置由指导者或管理员可控制的随机或有序事件的选择。

Description

用于虚拟现实环境的系统和方法
相关申请的交叉引用
本申请要求于2020年12月31日提交的题目为“SYSTEMS AND METHODS FORVIRTUAL REALITY ENVIRONMENTS(用于虚拟现实环境的系统和方法)”的美国专利申请No.17/139,771的优先权和权益,出于所有的目的,特此通过引用将其所有内容全部并入本文。
技术领域
本公开总体上涉及用于虚拟现实环境的系统和方法。具体地,本公开涉及用于利用具有到数据的外部化和上下文敏感链接的虚拟对象来提供动态虚拟现实体验的系统和方法。
背景技术
虚拟现实环境允许对在现实中会是危险的环境(如核电厂或化学处理厂、模拟的紧急情况(如火灾或气体泄漏)、或其他此类环境)中的用户和操作者进行训练和认证。此类虚拟现实环境可以是高度沉浸式的,具有详细的模拟和逼真图形,提供优异的训练机会。
然而,开发和编程此类虚拟现实环境和场景可能是复杂且耗时的。此外,一旦被编程,环境或场景通常是固定的,并且在没有再次对所有事物进行重新编程的情况下难以改变。当前,大量信息已经存在于尚未集成到此类虚拟现实环境中的遗留训练系统中。为了添加这样的数据,可以类似地要求对整个环境进行重新编程。因而,由于将场景或训练工具移动到虚拟现实环境中的复杂性、费用和时间要求,很少开发者利用虚拟现实的高级能力和功能。
发明内容
附图说明
通过参考结合附图进行的详细说明,本公开的各个目的、方面、特征、和优点将变得更显而易见且更好理解,在附图中,相同的参考字符始终标识对应的元件。在附图中,相同的参考标号通常表示相同的、功能相似的和/或结构相似的元件。
图1A是根据一些实现方式的用于训练和认证的虚拟现实环境的图示;
图1B是根据一些实现方式的用于训练和认证的基于虚拟现实的训练系统的逻辑框图;
图2A是根据一些实现方式的用于基于虚拟现实的应用开发和部署的方法的流程图;
图2B是根据一些实现方式的用于基于虚拟现实的应用开发和部署的逻辑层级的树图;
图2C是根据一些实现方式的用于生成用于基于虚拟现实的应用开发和部署的配置构造的方法的流程图;
图2D是根据一些实现方式的用于修改用于基于虚拟现实的应用开发和部署的配置构造的方法的流程图;
图3A至图3B是根据一些实现方式的用于提供交互式虚拟现实环境的方法的流程图;
图4A是根据一些实现方式的用于提供交互式虚拟现实环境的系统的框图;
图4B是根据一些实现方式的用于训练和认证的虚拟现实环境的图示;
图4C是根据一些实现方式的用于训练和认证的虚拟现实系统的示例训练和认证日志;
图4D是根据一些实现方式的用于基于虚拟现实的训练和认证的方法的流程图;
图5A是根据一些实现方式的用于启动虚拟现实环境的方法的流程图;
图5B是根据一些实现方式的用于提供安全应用部署的方法的流程图;以及
图6A和图6B是描绘结合本文中所描述的方法和系统有用的计算设备的实施例的框图。
方法和系统的各个实施例的细节在附图和以下说明中进行阐述。
具体实施方式
为了阅读以下各个实施例的说明,本说明书的章节及其相应内容的以下说明可以是有帮助的:
-章节A描述了用于虚拟现实环境的系统和方法的实施例;以及
-章节B描述了可以用于实践本文所描述的实施例的计算环境。
A.用于虚拟现实环境的系统和方法
虚拟现实环境允许对在现实中会是危险的环境(如核电厂或化学处理厂、模拟的紧急情况(如火灾或气体泄漏)、或其他此类环境)中的用户和操作者进行训练和认证。此类虚拟现实环境可以是高度沉浸式的,具有详细的模拟和逼真图形,提供优异的训练机会。
例如,图1A是根据一些实现方式的用于训练和认证的虚拟现实环境10的图示。虚拟现实环境10可以包括三维环境并且可以从虚拟相机的视角观看,虚拟相机的视角可以对应于用户或操作者的视点。在一些实现方式中,可经由操纵杆、键盘或其他此类接口来控制虚拟相机,而在其他实现方式中,可经由对头戴式显示器(例如,虚拟现实护目镜或头带式耳机)的跟踪或类似头部跟踪来控制虚拟相机,使得用户在虚拟环境内的视图对应于其物理移动和定向。
虚拟现实环境可以包括一个或更多个对象20,一个或更多个对象20可以包括按钮、杠杆、车轮、面板、屏幕、计量器、管道、梯子、标牌或任何其他类型和形式的对象。对象20在许多实现方式中可具有三维边界,以及在一些实现方式中可包括用于真实性的纹理、阴影或着色,包括逼真纹理或图像。对象20可以是交互式的或者允许用户与对象交互以控制模拟的各个方面。例如,在一些实现方式中,用户可以(例如,在跟踪用户的移动的实现方式中,通过到达对象来物理地;利用用户接口设备(诸如操纵杆、鼠标、平板电脑、指示器或其他设备);根据语音至命令接口来口头地;通过将虚拟相机指向对象并按压选择按钮或等待预定时间段来在视觉上;或者任何其他这样的方法)选择对象,以及可以执行各种功能。
开发和编程此类虚拟现实环境和场景可能是复杂且耗时的。例如,在图1A的示例中,简单的控制面板可以包括具有对应功能的几十个单独对象。一旦被编程,环境或场景通常是固定的,并且在没有再次对所有事物进行重新编程的情况下难以改变。对环境或场景进行调整(例如,以反映真实环境中的更新的硬件)可能需要对环境重新编程或重新编译整个虚拟现实应用。此外,大量信息已经存在于尚未集成此类虚拟现实环境中的遗留训练系统中。为了添加这样的数据,可以类似地要求对整个环境进行重新编程。因而,由于将场景或训练工具移动到虚拟现实环境中的复杂性、费用和时间要求,很少开发者利用虚拟现实的高级能力和功能。
本文讨论的系统和方法提供了一种具有对外部数据和资源的环境内访问的动态的、可重新配置的虚拟现实环境。在本文所讨论的系统和方法的实现方式中,训练的最重要的方面之一,即学生可用的补充材料将可由终端客户配置,而无需附加的供应商参与。这些系统的实现方式还提供了用于修改虚拟现实体验的其他方面而无需重新编码或编译该体验的外部机制。这可以改变体验的主流,基于访问体验的特定用户来改变体验的行为,以及向应用添加品牌的或客户特定的方面。相同级别或环境可以为从初学者到专家的的各个用户提供显著不同的体验,甚至允许通过简单配置由指导者或管理员可控制的随机或有序事件的选择。
在一些实现方式中,在虚拟现实环境或场景的创建和/或修改期间,可以用元数据标记对象20,元数据包括对象的唯一标识符(在一些实现方式中,全局唯一标识符或GUID、或统一资源标识符(uniform resource identifier,URI))。在编译期间,生成提供用于端点URI和其他元数据的键/值对的构造。在运行时期间,如图1A的示例中所示,可用图标30注释具有相关联元数据的对象,或具有相关联元数据的对象可被另外标识以用于交互。可以为一般的“帮助”文件以及补充材料指定附加的URI。可以在创建体验期间为这些参数提供默认值。一旦被封装,该配置构造可供用户或管理员编辑,而不需要重新编译虚拟现实应用。配置中的改变值可以在该配置下次被启动和构造(和相关联的键/值对)被读取和解释时的体验中反映。在一些实现方式中,对于用这些参数编码的每个对象,如果存在值(或指示帮助文件或其他信息的某些类型的值),则可以为该信息显示图标30。这可限于特定运行模式,诸如训练模式或客人模式。响应于用户选择图标,系统可以实例化环境内web浏览器或其他界面40,该环境内web浏览器或其他界面40可以在虚拟环境内被渲染以便以可配置的表示样式与相关控件一起显示对应内容或资源的视图。
因此,本文所讨论的系统和方法提供了在虚拟现实中的动态内容的递送,而不需要重新创建现有内容,同时提供对信息的实时更新和对遗留数据(如文档、音频、视频和其他文件类型)的访问,这些遗留数据仍可以按原样使用。系统和方法允许通过重新配置外部配置构造来更新URI地址或端点资源,而不需要编程知识或不需要重新编码或重新编译可执行的应用。
图1B是根据一些实现方式的用于训练和认证的基于虚拟现实的训练系统的逻辑框图。开发者或设计者154或其他管理员(或在指导者或其他管理员的控制下的计算设备或代表指导者或其他管理员操作的计算设备)可利用开发环境150来生成虚拟现实体验152。开发环境150可包括用于生成三维虚拟现实内容的任何合适的开发应用、库或系统,并且可包括映射引擎、渲染引擎或其他此类应用或系统,诸如由旧金山的Unity Technologies开发的Unity引擎、或由北卡罗来纳州的Epic Games开发的虚幻引擎(Unreal Engine)、或任何其他此类开发工具包或引擎。虚拟现实体验152可以不同地指代(例如,包括对象、纹理、图像等的)虚拟环境、(例如,包括响应于改变虚拟环境内的一个或更多个对象的触发或时间而发生的事件的)用于虚拟环境的场景、或经编译的虚拟现实应用。因此,虚拟现实体验152可以包括用于提供沉浸式三维虚拟环境的应用或可由应用执行的数据,以及可以在开发环境150中开发虚拟现实体验152。
虚拟现实体验152可以被编译以生成虚拟现实运行时包156和配置构造158。虚拟现实运行时包156可包括用于提供虚拟现实环境的编译指令或可执行代码。如以上所讨论的,一旦被编译,虚拟现实环境通常是自含式的和固定的,需要针对任何改变进行重新编译。然而,通过使用链接配置构造158,本文所讨论的系统和方法的实现方式可以允许虚拟现实环境或场景的动态修改。
具体地,在环境内的对象和在运行时包156中指定的对象可以与唯一标识符相关联,该唯一标识符可以被称为资源标识符或GUID。配置构造158可以包括将资源标识符或GUID与外部资源的地址(URI)相关联的索引、阵列、数据库或其他数据结构。当学生160或其他用户(或由学生或其他用户操作的计算设备或代表学生或其他用户的计算设备)执行经编译的虚拟现实体验时,他们的计算设备可标识包括虚拟环境内的对象的资源标识符或GUID的元数据;从配置构造158读取链接URI地址;以及检索相关联的资源以在虚拟环境中的嵌入式浏览器或渲染器154内显示。为了动态地改变场景或环境,可在不改变经编译的虚拟现实运行时包156的情况下编辑配置构造158,从而允许选择和嵌入不同资源、触发附加功能等。在一些实现方式中,可以在不改变配置构造的情况下改变或替换外部链接资源,类似地导致不同资源的嵌入。在一些实现方式中,环境或场景内的每个对象可以具有唯一的资源标识符或GUID,但是在配置构造158中可以不必具有链接资源URI;此类链接资源可在编译之后被添加,将附加功能或数据添加到虚拟环境而无需修改运行时包或代码。
图2A是根据一些实现方式的用于基于虚拟现实的应用开发和部署的方法的流程图。在步骤202处,开发者或设计者或其他操作者的计算设备可启动开发环境,诸如用于生成和配置虚拟现实环境或场景的软件开发工具包或其他此类引擎。在步骤204处,开发者或设计者可将虚拟对象添加到该环境或场景。在步骤206处,可为虚拟对象分配(例如,随机地、递增地、或作为对象的数据的散列等的)唯一标识符,在步骤208处,可以设置对象的(例如,包括(诸如对象是否可以被操纵或交互的)锁定设置、动画或其他此类数据的)其他元数据和/或名称。在一些实现方式中,在步骤210处可利用和/或可设置默认元数据以应用于对象特定或自定义元数据未被指定的任何虚拟对象(步骤210可如图所示地进行,和/或在步骤202之后或在步骤214之前或在运行时的编译之前的任何其他合适的点处进行)。在一些实现方式中,在步骤212处,可以在元数据中设置对象或链接资源的可视化。步骤204-步骤212可以迭代地重复用于附加对象。
一旦添加了所有对象,在步骤214处,虚拟现实运行时代码可以被编译成应用或执行包(package)。包可包括可执行代码以及执行所需的资源,诸如纹理、图像、声音或其他媒体内容等。在一些实现方式中,在编译期间,可发生下列中的一者或更多者:
·系统标识并收集将被处理的所有对象,忽略具有特定元数据标
签值的那些对象;
·针对将被处理的那些对象,系统收集每个对象的元数据;以及
·如果元数据具有已经设置在对象上的值,则该值在特定信息类型(例如,Info、Supplement或Help)下在配置构造中用作默认值。对象可以具有相关联的类型来定义可以存储在其相关联的属性中的值或者可以对其执行的底层操作。
元数据值可以被设置为锁定的,以防止值的重写;和/或元数据值可以被指定为公共的或私有的,以在层级中或仅在当前上下文中标识确定元数据值的范围是否应在较低级别中。在完成该过程时,配置构造被保存为虚拟现实包或应用。
在步骤216处,可以生成配置构造,该配置构造包括每个GUID与默认资源(或例如在步骤210处指定的其他元数据)或对象特定的资源之间的关联。这样的关联可以包括GUID和外部资源的地址(URI)或标识符的键值对。例如,在一些实现方式中,URI可以包括私有URL方案(例如,自定义方案(诸如“tdxr://”而不是“http://”)或其他常见方案),以允许通过代理或URI处理程序拦截请求或将请求重定向至代理或URI处理程序。URI可进一步包括主机服务器(例如,域(诸如tdxr.example.com)处的服务器,以及可包括端口号或其他寻址信息)的标识符、门户标识符和/或资源标识符。在一些实现方式中,URI可以包括在对相关联资源的查询或请求中使用的动作,诸如“下载”或“运行”。
主机、门户和资源标识符可以用于组织系统内的对象。例如,主机、门户和资源标识符(以及在一些实现方式中的其他标识符)可以是将项目中的所有三维对象组织成类别或类型的分类体系和分类系统的一部分。针对在虚拟环境中表示的对象创建一组模板。这些模板包括GUID或其他标识符、对象的名称、和特定对象类型共有的其他元数据。例如,简要参照图2B,示出了根据一些实现方式的用于基于虚拟现实的应用开发和部署的逻辑层级的树图。如所示出的,对象可以与分层树的叶子节点相关联,其中更高层或级别包括组/用户层;项目层;门户层;组织层;以及站点层。在一些实现方式中,这些层可被定义为:
·站点:这个级别可以与应用管理员相关联。由于虚拟现实应用或环境可被提供为软件即服务(software-as-a-service,SaaS)模型,因此该层可表示维护由内容服务的整个站点和所有组织的顶级供应商;
·组织:这个级别可以与组织或客户相关联,并且可以由组织的
代表来管理;
·项目:项目是内容的内聚分组(cohesive grouping)。由于该内容可在许多位置(称为门户)中共享,因此该级别通过默认设置应在
那里的元数据,而不管在其中呈现信息的上下文;
·门户:这个级别可以包括项目集合,并且可以改变配置以覆盖
更高级别设置,提供对集合唯一的体验;以及
·用户/组:在该级别处,可以添加配置构造以基于登录环境为特定于用户或用户组提供独特的修改,从而提供针对单独体验定制的URL和元数据。
还存在在系统中的不同级别处被跟踪的元数据的各种类别,如:
·标识,包括用户名或登录名;显示名;或其他SAML/LDAP值;
·体验,包括作为整体描述体验的细节的属性,诸如地理位置、VR能力、控制器类型、训练方法等;以及
·对象,包括与环境内的虚拟对象的各方面相关的元数据。
此元数据通过基于所加载的数据管理启动参数来引导体验的行为,以指导呈现哪些链接、体验启动的训练模式以及其他相关动作。如果没有为所需的属性设置元数据,则在一些实现方式中,可以呈现菜单以允许用户选择应用的该实例的元数据选项。
返回图2A,可以通过确定是否应该将默认属性应用于元素(例如,在一些实现方式中,对于未设置自定义属性但在步骤212处设置为可见的元素)以及在步骤218处,向配置构造中的元素的键添加默认值来为每个虚拟对象或元素填充配置构造。默认值可指定通用帮助消息或其他交互,或任何其他此类资源。可以针对每个虚拟对象或元素重复该过程,并且一旦完成,可以在步骤220处结合虚拟现实运行时保存配置构造。
因此,经编译的虚拟现实体验包括作为外部对象的配置构造,该外部对象可以被编辑并放回包中。管理员或指导者具有通过以下操作来修改该文件的能力:通过标识相关对象、找到特定元数据属性和修改值参数来改变元数据和端点URI地址。在下次启动时在体验中反映配置中的改变值。对于用这些参数编码的每个对象,如果存在值,则在可接受显示的模式下,图标将对信息可见。选择图标将以可配置的表现样式提供具有相关控件的内容的视图。而且,可以在要递送的路径中的各个级别处操纵其他元数据以更改虚拟体验,使得不同用户能够执行相同虚拟现实应用,但是与大大不同的训练事件交互。
图2C是根据一些实现方式的用于生成用于基于虚拟现实的应用开发和部署的配置构造的另一方法的流程图。图2C的方法类似于上述过程并在上述过程上扩展。在步骤250处,计算设备可接收经编译的虚拟现实体验(例如,在步骤214处生成的应用或数据文件)。在步骤252处,可以从虚拟现实体验读取(例如,从对象代码、XML数据或其他此类数据结构中提取)对象;可以生成配置构造(例如,作为具有对应于每个对象的GUID的键的数据阵列或数据结构)。对于每个对象,在步骤254处,该对象的(例如,由管理员或训练员添加的)自定义元数据可以与数据结构中的该对象的GUID相关联地被读取和添加。如果自定义元数据不存在,并且存在默认元数据值(例如,对于与项目相对应的用户组;或者,如果默认元数据不存在于该层,则对于与项目对应的门户;或者,如果元数据不存在于该层,则对于与该项目对应的项目,等)则在步骤256处,该默认数据可以与对象的GUID相关联地被添加。类似地,如果自定义元数据存在,但该值被锁定在默认级别(例如,元数据对象的状态将不允许覆盖默认值,使得默认值应当被使用),然后在步骤256处,默认数据可以与对象的GUID相关联地被添加。这可以针对每个附加对象迭代地重复。最后,元数据可以在步骤258处被保存为外部化(例如,与虚拟现实运行时分离)的配置构造。
如以上所讨论的,经编译的虚拟现实体验包括作为外部对象的配置构造,该外部对象可以被编辑并且放回VR体验的系统表示(例如,容器或其他经编译的结构)。管理员或开发者具有通过以下操作来修改该文件的能力:通过标识相关对象、找到特定元数据属性和修改值参数来改变元数据和端点URI。当编辑完成时,构造被绑定回体验的系统表示中。图2D是根据一些实现方式的用于修改用于基于虚拟现实的应用开发和部署的配置构造的方法的流程图。在步骤280处,管理员可以选择虚拟现实体验(和相关联的配置构造)进行修改;在步骤282处,可以检索该配置构造。在步骤284处可以启动编辑器接口,该编辑器接口可以包括专用应用或文本编辑器(例如,对于其中配置对比度以人类可读格式(诸如XML数据、逗号分隔值或电子表格)存储的实现方式)。在步骤286处,管理员可以修改配置构造的URI和其他元数据,在步骤288处可以保存经修改的构造。随后,当运行虚拟现实运行时时,可以检索经修改的构造,并利用经修改的URI和其他元数据来检索内容或资源。
过程的最终阶段是执行运行时应用以允许学生运行虚拟训练会话。在执行虚拟现实体验时,读取配置构造来播种所有元数据值的数据,从而允许在运行时期间标识和显示正确的端点。所有信息、补充和帮助图标显示在具有那些键的对应元数据的对象上。
图3A至图3B是根据一些实现方式的用于提供交互式虚拟现实环境的方法的流程图。在步骤302处,可以启动虚拟现实体验。虚拟现实体验可作为可执行文件或作为用于虚拟现实体验的数据文件或可执行文件的地址(URL或URI)被启动,其可被下载和检索。例如,在一些实现方式中,客户端设备上的浏览器应用或其他应用可以读取单个自变量作为私有方案(例如,com.example.txdr:地址)中的URL或URI,或到可执行文件的文件路径。如果自变量是私有方案中的地址,则本地代理或处理程序可以经由从浏览器或操作系统(例如,通过注册私有方案)的重定向或拦截来自浏览器的请求来接收地址。
具体地,为了促进门户页面或资源与本机平台应用之间的某些操作,在一些实现方式中可以使用私有URL方案(com.example.tdxr)或类似方案。在许多实现方式中,方案名称可以符合IETF RFC 7595以避免与注册的URL方案或其他私有方案的名称空间冲突。方案URL可被用于标识扩展的现实资源而不考虑特定存储系统或检索位置,使得相同tdxr URL或URI可以表示本地文件系统上或远程数据服务器中的资源。
在许多实现方式中,私有方案URL可以符合以下模板:com.example.tdxr://{xr-host}/{xr-portal}/{xr-id}(?action)
xr-host可标识找到门户的远程数据服务器的授权(例如,主机名加上端口号);
xr-portal是拥有XR资源的门户;以及
xr-id是唯一地标识其拥有门户内的XR资源的路径组件。xr-id可以是任何有效URL路径组件,但推荐xr-id是该资源的人类可读标识符。xr-id不必匹配文件名或目录,但可以从文件名或目录的一个中导出。
在一些实现方式中,可选动作查询参数可以具有下载或运行的值之一。可以运行默认值,在这种情况下,可以省略参数。例如,链接<a href=“com.example.tdxr://xr.example.com/xr-demo/very-cool-vr?download”>可由适当的协议处理程序解释,以从xr.example.com/xr-demo门户下载id very-cool-vr的VR体验。
在一些实现方式中,为了避免不必要的下载,处理程序或本地代理可以扫描本地库或数据存储装置,以获得具有来自指定门户的给定xr-id的扩展的现实体验(例如,包含外部配置构造并具有到外部资源的链接的扩展的现实体验)(例如,除了站点之外的相关层级层以及在一些实现方式中的组织层可以在本地存储装置上复制,或者对应于用户、组、门户、或项目层的相关资源可以在本地存储或缓存)。如果文件存在,并且URL动作不是“下载”,则处理程序可以启动体验。如果文件不存在或URL动作是“下载”,则处理程序可以针对体验向xr-host/xr-portal给出的门户做出下载请求。一旦被下载,就可以对包(package)进行解压缩,以及在一些实现方式中,对数据包进行解密。如果动作是“运行”,则可以启动下载的体验(相反,如果动作是“下载”,则可以通知用户下载完成并向用户提供手动启动体验的提示)。
为了启动应用,在一些实现方式中,可以对文件进行验证(例如,检查损坏);系统可以验证文件被许可在当前上下文(例如,用户和/或平台)中运行。在一些实现方式中,如果体验包括设置文件,则在一些实现方式中,可以显示表单以收集如在设置文件中指定的运行时上下文信息。然后,可以启动VR体验作为新的过程。在步骤304处,还可以加载默认元数据以用于与缺乏特定或自定义元数据的对象一起使用。
在步骤306处,可以加载和读取配置构造以便为所有元数据值播种数据,从而允许在运行时期间标识和显示正确的端点。被单独存储的配置构造可以与VR运行时应用或数据分开下载。在一些实现方式中,在下载或运行体验的过程期间,仅可以(利用增量更新或差异更新)下载(例如,基于数据的比较)已经改变的体验的那些组件,诸如新图标、改进的配置构造、或体验本身(如果修改的话)。在体验的执行期间,所有信息、补充和帮助图标可被显示在具有那些键的对应元数据的对象上。例如,对于每个对象,该系统可标识其GUID并确定对于该GUID的配置构造中是否存在值。如果否,则可以利用默认元数据;否则,系统可以确定对象是否具有锁定属性。如果是,则对象可能不可用于交互。这可能是由于例如操作模式(例如,在测试模式中,在研究或引导模式中可用的附加帮助资源可能是不可用的),或者可能是由于场景(例如,在用户在执行一系列操作时被训练的情况下,一些对象或元素可在场景中最初被锁定和稍后被解锁)。在一些实现方式中,模式(例如,研究、引导和测试)可在元数据内指定,并且可具有用于不同模式的不同值(例如,不同模式期间的不同可视化),使得可基于针对该元数据属性所支持的模式来示出或忽略值。例如,在测试模式中,可以禁用帮助图标。然而,信息图标仍可被启用或可见,以提供已给出不正确回答的问题或动作的答案。体验内的图标可视化可由多个环境和元数据因素引导,以帮助维持现实设置。语音命令、控制器动作和键组合是三个示例,和/或在一些实现方式中,元数据可以指定如何显示关于该对象的信息,诸如一直打开、一直关闭、打开失败、距离等。
如果对象未被锁定,那么在步骤308处,可以从配置构造中读取对象元数据并且将对象元数据应用于该对象。一旦每个对象已经被处理,在步骤310处,虚拟现实体验就可以被加载和执行。
继续到图3B,在步骤320处,可以(例如,在根据环境的配置的坐标或位置处)绘制虚拟环境中的对象。对于每个对象,系统可以确定模拟是否处于可以(例如,根据该对象的元数据)显示图标的模式,以及是否存在这样的元数据;如果存在,则在步骤322处,可以在虚拟环境中显示图标以指示信息是可用的(例如,如在上面的图1A中所述)。这可以针对每个附加对象重复,并且可以随着模拟或场景的进行而重复(例如,以启用后续步骤的图标或禁用已经执行的步骤的图标,以减少视觉混乱)。
在步骤322处,在执行期间,系统可以检测用户与对象的交互。交互可包括按下按钮、拉动杆、旋转旋钮或拨号盘等,并且可以任何合适的方式(例如,通过跟踪用户的手位置并确定用户的虚拟化身的对应手位置与对象之间的交叉点;通过跟踪虚拟“激光指示器”或其他设备的位置;通过经由鼠标、键盘、操纵杆或其他接口元件的选择;经由语音至文本或语音至命令引擎接收的口头命令(例如,“按下蓝色按钮”或“将拨号盘转动至20”);通过经由头部跟踪(例如,观看特定按钮并保持用户的头部位置几秒)的选择;或者任何其他此类方法或方法的组合)执行。当检测到与对象的交互时,在步骤324处,本地代理或处理程序可以在用于对象的元数据中标识用于显示的资源的资源路径或地址和标识符。在一些实现方式中,可以在运行时从配置构造和应用到对象的元数据的值加载元数据,使得可以直接从对象元数据读取地址。在其他实现方式中,对象的元数据可以包括GUID,本地代理或处理程序可以响应于检测到交互而从配置构造读取对应的元数据值。
在步骤326处,处理程序或本地代理可以实例化虚拟环境内的浏览器。例如,处理程序或本地代理可以执行web浏览器(例如基于Chromium的web浏览器),其中视口被显示在虚拟环境内(例如,作为在接近虚拟对象的位置处、在平板计算机或其他计算设备的虚拟表示内、在模型菜单内、或在虚拟环境内的任何其他表示的浮动窗口)。浏览器可以尝试首先从本地存储装置或高速缓存检索在所标识的路径和地址处的资源。如果资源在本地不可用,那么在步骤328处,浏览器可以在标识的主机、路径和地址处检索资源(以及在一些实现方式中,在本地存储资源)。然后,在步骤330处,浏览器可以显示资源。资源可以是任何类型和形式,并且包括视频、图像、文本、指令列表、检查列表、引导、帮助信息、或可以与虚拟环境内的对象相关联的任何其他类型和形式的有用信息。
图4A是根据一些实现方式的用于提供交互式虚拟现实环境的系统的框图。客户端设备400可以包括膝上型计算机、台式计算机、便携式计算机、平板计算机、智能电话、视频游戏控制台、嵌入式计算机、电器或用于提供虚拟现实环境的任何其他类型和形式的计算设备。在一些实现方式中,客户端设备400可以包括可穿戴计算机,诸如独立或一体式虚拟现实头带式耳机。
客户端设备400可以包括一个或更多个处理器402、网络接口404和输入/输出设备406。处理器402可包括任何类型和形式的处理单元,包括中央处理单元(CPU)、图形处理单元(GPU)、张量处理单元(TPU)、协处理器、基于ASIC的处理器或用于执行逻辑指令的任何其他此类设备。网络接口404可以包括任何类型和形式的接口,包括蜂窝接口、无线接口(包括802.11(WiFi))、蓝牙接口、以太网接口或任何其他类型和形式的网络接口。网络接口404可以用于通过网络(未示出)(诸如互联网)与资源服务器430通信,资源服务器430可以类似地是包括一个或更多个处理器、网络接口和输入/输出设备(未示出)的计算设备。在一些实现方式中,资源服务器430可以包括一个或更多个物理计算设备,诸如服务器群;或者可以包括由一个或更多个物理计算设备执行的一个或更多个虚拟计算设备,诸如服务器云。
客户端设备400可以包括用于跟踪用户的移动的一个或更多个传感器408和包括虚拟现实或增强现实显示器410的一个或更多个显示器或客户端设备400可以与该一个或更多个传感器408和该一个或更多个显示器通信。尽管被示为是单独的(例如,通过从单独的传感器测量头戴式耳机和/或控制器上的发射器或反射器的位移来跟踪或由外而内的跟踪),但在一些实现方式中,传感器408和虚拟现实/增强现实显示器410可被集成(例如,用于通过测量从头戴式耳机上的传感器获取的物理环境的连续图像之间的平移进行跟踪或由内而外的跟踪)。可以实施各种跟踪系统,包括由内而外的、由外而内的、基于立体相机的跟踪、飞行时间测量和跟踪、基于人工智能的跟踪等。在一些实现方式中,跟踪系统可以跟踪用户的头部(例如,位置和定向)、用户的手(例如,经由控制器或来自观看手的相机的图像识别)、和/或用户的任何其他肢体或附件。
客户端设备400可以包括存储用于由处理器402执行的数据和应用的存储器设备412。例如,存储器412可包括浏览器应用414,浏览器应用414可包括web浏览器、远程访问应用、或用于选择、下载和启动虚拟现实环境或应用的其他此类应用。例如,浏览器应用414可用于登录到远程服务器并下载虚拟现实训练场景以用于本地存储和执行。
VR应用416可以包括用于提供交互式虚拟现实环境并且与该环境内的对象或事件进行交互的应用、服务器、服务、守护进程、例程、或其他可执行逻辑。VR应用416可以包括由浏览器应用414执行的插件或者可以是单独的应用。VR应用416可以执行由开发者针对环境或场景准备的数据文件,或者可以是由开发者编译并包括应用内的配置细节的独立应用。
浏览器(如浏览器应用414)能够基于URL将内容递送至用户,其中绝大多数包括穿插有脚本、富媒体和其他数据的静态或动态超文本标记语言(Hypertext MarkupLanguage,HTML)页面。为了访问数据,使用作为对web资源的引用的URL,该URL指定其在计算机网络上的位置和用于检索它的机制。通过其来访问信息的协议可以是通用协议,诸如超文本传输协议(Hypertext Transfer Protocol,HTTP)、安全超文本传输协议(HypertextTransfer Protocol Secure,HTTPS)或文件传输协议(File Transfer Protocol,FTP),或者该访问信息的协议可以是由安装在系统上并且注册到客户端设备400的操作系统的应用所处理的专用协议,诸如Titiania递送扩展现实协议(Titiania Delivery ExtendedReality Protocol,TDXR)。这允许基于内容的专用封装和解封装并且由客户端系统上的应用416来处理的虚拟现实内容的智能递送。
如以上所讨论的,VR应用416或针对这种应用的数据可以与配置构造相关联,该配置构造可以与该应用下载或绑定或单独地从资源服务器430检索。配置构造可以将虚拟环境内的对象的GUID映射到用于在运行时检索的路径和资源标识符。
在一些实现方式中,存储器412可以包括本地代理418。本地代理418可以包括应用、服务、服务器、守护进程、例程、浏览器应用414或VR应用416的插件、或用于检索配置构造和资源并提供资源以供VR应用416内的嵌入式浏览器或渲染器显示或渲染的其他可执行逻辑。本地代理418可以不同地称为应用处理程序、方案处理程序、内容递送代理、链接数据平台(linked data platform,LDP)代理、瘦客户端、助手程序或通过类似术语。
如果本地存储的文件与服务器位置指定的文件相同,则可以使用本地存储的文件,基于单独文件的状态来有条件地递送内容,或者如果本地没有存储文件,则下载该文件,基于单独文件的状态来有条件地递送内容。本地代理418可以被配置为启动、找到和下载VR体验或应用416。本地代理418可结合由资源服务器430计算设备的应用服务器432(例如,web服务器、FTP服务器、数据服务器或类似服务)提供的web门户或服务器来工作,以在门户与主机操作系统平台之间提供无缝的用户体验。本地代理418可以包括“瘦客户端”,提供网络浏览器应用414不容易提供的最小功能。本地代理可以使用私有方案(例如,com.example.tdxr,如以上所讨论的)经由重定向请求拦截或接收,并且针对其大部分数据和业务逻辑,本地代理可使用为门户或其他通信能力定义的代表性状态传输(representational state transfer,RESTful)API来与应用服务器432通信。例如,应用服务器432可包括链接数据平台(Linked Data Platform,LDP)或符合用于提供与资源描述框架(resource description framework,RDF)和非RDF资源的RESTful交互(GET、POST、PUT、DELETE等)的LDP规范的要求的HTTP服务器。RDF资源可支持围绕本体论、分类体系、起源、链接、元数据和规则的功能,为系统提供更大的功能和灵活性,包括搜索特定元素(例如,经由基于本体论或分类体系的搜索,用户可以搜索和检索虚拟训练场景,该虚拟训练场景包括在对象的元数据内的指定型号或类型的设备(例如,个人防护设备或呼吸装置))。
本地代理418可以经由应用服务器432检索存储在远程资源434中的配置构造,并且可以将这些构造的副本本地地存储在本地资源420中。如以上所讨论的,本地代理418可以接收请求并且可以确定该资源是否在本地可用,并且相应地提供本地资源或下载远程资源。
参考图5A,示出了根据一些实现方式的用于启动虚拟现实环境的方法的流程图。在步骤502处,本地代理可以经由通过操作系统的重定向拦截或接收利用私有URL方案的请求。在一些实现方式中,如果没有安装本地代理,则可以由虚拟现实应用和/或浏览器应用接收或拦截请求,并且在步骤504处,可以下载和/或安装本地代理。
如以上所讨论的,该请求可以通过GUID或资源标识符以及(在一些实现方式中的)门户标识符、项目标识符、或其他此类标识符来标识资源。本地代理可以确定是否存在资源的本地副本,在一些实现方式中,本地代理可以将本地副本与远程副本进行比较以(例如,通过向服务器发送包括资源的散列值或本地副本的版本号或其他标识符的标识的请求,以及接收尚未进行更新的通知,或接收资源的新副本)确定是否已经做出任何更新或修改。如果本地不存在资源或如果本地版本过时,则在步骤506处,可从远程服务器检索资源。远程服务器可以经由请求或域中的主机标识符被标识为如以上所讨论的资源的路径或地址的一部分。在步骤508处,例如,通过在虚拟环境内实例化嵌入式浏览器或渲染器并且在虚拟环境中的嵌入式浏览器或渲染器的窗口内显示或渲染资源,可以运行资源。
在一些实现方式中,可以控制对资源的访问,和/或可以对资源进行加密。在一些实现方式中,扩展现实内容(例如)可以基于以下因素中的一个或更多个来经受多个检查以确定递送的适合性:客户端设备是否具有针对内容的活动许可,用户是否具有活动许可,递送门户是否具有活动许可,客户端设备和/或用户是否具有访问递送门户的授权,是否存在用于用户、客户端设备或组织的有效键对,以及用户或客户端设备是否已经(例如,经由用户名、密码、生物特征标识符、双因素认证方案等)向远程服务器成功地认证。加密内容可以是未加密的并且仅在使用准时制(just-in-time,JIT)范例的存储器中执行,并且可以不在本地未加密地存储,从而在一些实现方式中施行访问控制。
图5B是根据一些实现方式的用于提供安全应用部署的方法的流程图。在步骤520处,开发者可准备虚拟现实包(例如,经编译的应用或数据和/或配置构造),或可准备对配置构造的修改。如果没有选择加密或禁用访问控制,那么,可以在步骤526处上传包或构造,并且在步骤530处保存包或构造(例如,存储或归档用于跨多个会话使用,尤其是用于具有虚拟化应用或资源服务器的基于云的部署)。如果选择加密,那么取决于开发者是否正在上传站点特定内容或客户特定内容,系统可检查对应的加密密钥对。如果没有密钥可用,则在步骤522处,可以向客户端返回错误,使得可以提供加密密钥(例如,共享公钥或对称加密密钥)。如果密钥可用,则在步骤524处启用加密。可在步骤526处上传该包(package)或构造,在步骤528处可使用该密钥对该包或构造进行加密。然后,在步骤530处,可以保存加密包或构造。
如以上所讨论的,在一些实现方式中,虚拟环境可以用于训练和/或认证。例如,训练者或技术用户可以记录与环境内的对象的一系列交互。他们的交互可在第二用户或学生的视图内、在环境中(例如,作为虚拟或“重影”化身)播放。这可以允许学生用户在与所记录的“重影”化身的同时经历相同的运动,从而允许通过模仿指导者进行直观学习。在一些实现方式中,“重影”化身可以以半透明形式显示,使得用户可以观看与“重影”化身重叠或在“重影”化身内的他们自己的化身。
例如,返回图4B,示出了根据一些实现方式的用于训练和认证的虚拟现实环境。如所示出的,用户的化身可包括手450,手450可被显示定位为对应于用户的实际手或由用户的手握持的控制器的跟踪。类似地,可以在环境中显示跟随指导者的手或控制器的先前记录的跟踪信息的“重影”化身452,“重影”化身452做出与指导者所做相同的动作。训练用户可以通过注意他们的移动如何偏离所记录的“重影”化身来容易地和直观地标识他们何时做出不正确的动作。
通过禁用指导者的“重影”化身452的显示,相同的功能可以用于认证目的。训练用户的移动仍然可以被跟踪并且与指导者的记录移动进行比较,在一些实现方式中,生成得分以确定训练用户与指导者的动作的偏差量。
例如,图4C是根据一些实现方式的用于训练和认证的虚拟现实系统的示例训练和认证日志。所示出的实现方式示出了与虚拟环境内的对象(如按钮和拨号盘)的事件或交互,连同指导者做出动作的场景内的时间(例如,从场景开始的相对时间,而不是绝对时间),以及用户与对象交互的时间。当针对相应用户记录事件或交互时,可以确定训练用户的位置与指导者用户的位置之间的距离(例如,在转动拨号盘时用户的手的位置或旋转与在转动同一拨号盘时指导者的手的位置或旋转之间的距离),并生成得分。在一些实现方式中,可以与该距离成反比地计算得分(例如,使较小的距离接收较高的得分)。
在一些实现方式中,可以对一系列交互进行排序,即,指导者的交互可以按特定顺序执行,可以将用户的交互中的每个与对应的交互进行比较。这在任务需要以特定顺序执行的一些实现方式中、或者对于特定对象交互可能不被记录的情况可以是有用的。例如,在一个这种实现方式中,如果指导者旋转拨号盘(例如,拨号盘2)作为第四交互,并且训练用户旋转不同的拨号盘(例如,拨号盘3)作为其第四交互,则(例如,在完全不同的拨号盘上的)指导者的手的位置与训练用户的手之间的距离可以是显著的。距离测量可以自动解决这个问题。在其他实现方式中,可以记录(例如,按压哪个按钮)交互的特定对象或交互的类型,除了距离之外或者代替距离,可基于得分与合适的对象或者交互类型的一致性来计算得分。另外,在一些实现方式中,可以基于指导者交互的记录的相对时间和训练用户交互的记录的相对时间之间的差来调整得分。在一些实现方式中这些时间可以相对于场景的开始来计算(例如,使得对延迟的惩罚被连续地应用,从而鼓励训练用户加速以在延迟之后恢复),或者可以相对于先前的交互来计算。例如,在图4C所示的表格中,指导者花费25秒从第二交互移动到第三交互,并花费5秒从第三交互移动到第四交互。训练用户在对应交互之间分别花费41秒和5秒。在使用后续交互之间的相对定时的此类实现方式中,训练用户的得分可基于第二交互与第三交互之间的延迟而不是基于第三交互与第四交互之间的延迟来惩罚(尽管它们的总时间较慢)。这可以避免过度惩罚用户。
出于认证目的,得分可以被相加、平均或以其他方式被聚合并且与阈值进行比较。在一些实现方式中,如果用户的聚合得分低于阈值,则潜在地在训练或引导模式中,虚拟场景可被自动重启以提供进一步的指令。
图4D是根据一些实现方式的用于基于虚拟现实的训练和认证的方法的流程图。在检测到交互时,可以在步骤480处记录交互的值(例如,相对时间、所交互的对象、对象的值(在一些实现方式中,诸如拨号盘设置或开关位置)、用户的位置、用户的一只或多只手的位置、或保存交互时模拟的状态的任何其他此类信息)。如果在(例如,用于指导者的)记录模式下模拟,则可以在步骤482处将值存储到配置构造中或者存储在对象的元数据中。如果不在记录模式下模拟,则在步骤484处,可以比较先前记录的交互和新的交互之间的差(例如,包括位置、定时、设置、对象或任何其他数据中的差)。在步骤486处,可基于差生成得分,例如与差成反比,使得较高准确性产生较高得分。在模拟期间和/或一旦模拟完成,根据实现方式,交互的得分可以被聚合并且与阈值进行比较。如果得分下降到阈值以下,则可以显示通知,并且如上所述以相同模式或者训练或引导模式自动地重新开始模拟。
因此,本文讨论的系统和方法提供了具有对外部数据和资源的环境内访问的动态、可重新配置的虚拟现实环境。这些系统的实现方式还提供用于修改虚拟现实体验的其他方面而无需重新编码或编译该体验的外部机制。这可以改变体验的主流,基于访问体验的特定用户来改变体验的行为,以及向应用添加品牌的或客户特定的方面。相同级别或环境可以为从初学者到专家的的各个用户提供显著不同的体验,甚至允许通过简单配置由指导者或管理员可控制的随机或有序事件的选择。
在一个方面,本公开涉及一种用于在虚拟环境内提供上下文敏感的动态链接的方法。该方法包括由计算设备接收指定与上下文相关联并且包括至少一个虚拟对象的虚拟环境的数据,该至少一个虚拟对象中的每一个与标识符相关联。该方法还包括:对于该至少一个虚拟对象中的每一个,由计算设备从根据与虚拟环境相关联的上下文的数据库检索与对应标识符相关联的资源的地址。该方法还包括:由计算设备显示虚拟环境的视图。该方法还包括:由计算设备检测由虚拟环境的用户与第一虚拟对象的交互。该方法还包括:由计算设备标识与第一虚拟对象的标识符相关联的第一资源的地址。该方法还包括:由计算设备在虚拟环境内实例化嵌入式浏览器或渲染器,嵌入式浏览器或渲染器在该地址处检索第一资源并且在虚拟环境内显示所检索的资源。
在一些实现方式中,该上下文与多层级中的节点相关联。在进一步的实现方式中,第一虚拟对象与在多层级中的第一层处的第一标识符和在多层级中的第二层处的第二标识符相关联;以及检索第一虚拟对象的地址还包括:响应于第一层低于第二层而检索与第一标识符相关联的地址。在另一实现方式中,上下文与在多层级中的每个层上的节点相关联,其中,每个节点与在多层级中的另一层上的上下文的另一节点具有父关系或子关系。
在一些实现方式中,第一资源的地址包括具有主机标识符、门户标识符、和资源标识符的私有统一资源标识符(URI)方案中的地址。在进一步的实现方式中,实例化嵌入式浏览器或渲染器进一步包括:确定第一资源的副本是否存在于与门户标识符相对应的本地存储库内。在又一实现方式中,实例化嵌入式浏览器或渲染器进一步包括:响应于确定在与门户标识符相对应的本地存储库内不存在第一资源的副本,而从与主机标识符相对应的远程存储库检索第一资源的副本。
在一些实现方式中,第一资源的地址包括执行动作的标识符;嵌入式浏览器或渲染器基于所标识的执行动作来处理第一资源。在一些实现方式中,每个虚拟对象与虚拟环境内的坐标集相关联;以及显示虚拟环境的视图还包括:在视图内在它们相应的相关联坐标处显示一个或更多个虚拟对象。在又一实现方式中,每个虚拟对象与显示模式相关联;以及显示该虚拟环境的视图进一步包括:显示具有与该虚拟环境的当前显示模式相对应的相关联的显示模式的虚拟对象的子集。
在另一方面,本公开涉及一种用于在虚拟环境内提供上下文敏感的动态链接的系统。该系统包括计算设备,该计算设备包括处理器。处理器被配置为:接收指定与上下文相关联并且包括至少一个虚拟对象的虚拟环境的数据,至少一个虚拟对象中的每一个与标识符相关联;对于至少一个虚拟对象中的每一个,从根据与虚拟环境相关联的上下文的数据库检索与对应标识符相关联的资源的地址;显示虚拟环境的视图;检测虚拟环境的用户与第一虚拟对象的交互;标识与第一虚拟对象的标识符相关联的第一资源的地址;以及在虚拟环境内实例化嵌入式浏览器或渲染器,嵌入式浏览器或渲染器在该地址处检索第一资源并且在虚拟环境内显示所检索的资源。
在一些实现方式中,该上下文与多层级中的节点相关联。在进一步的实现方式中,第一虚拟对象与在多层级中的第一层处的第一标识符和在多层级中的第二层处的第二标识符相关联;处理器还被配置为响应于第一层低于第二层而检索与第一标识符相关联的地址。在另一实现方式中,上下文与在多层级中的每个层上的节点相关联,其中,每个节点与在多层级中的另一层上的上下文的另一节点具有父关系或子关系。
在一些实现方式中,第一资源的地址包括具有主机标识符、门户标识符、和资源标识符的私有统一资源标识符(URI)方案中的地址。在进一步的实现方式中,处理器进一步被配置为确定第一资源的副本是否存在于与门户标识符相对应的本地存储库内。在又一实现方式中,处理器还被配置为响应于确定在与门户标识符相对应的本地存储库内不存在第一资源的副本,而从与主机标识符相对应的远程存储库检索第一资源的副本。
在一些实现方式中,第一资源的地址包括执行动作的标识符;嵌入式浏览器或渲染器基于所标识的执行动作来处理第一资源。在一些实施例中,每个虚拟对象与虚拟环境内的坐标集相关联;处理器进一步被配置为在视图内在其相应的相关联坐标处显示一个或更多个虚拟对象。在另一实现方式中,每个虚拟对象与显示模式相关联;以及该处理器进一步被配置为显示具有与该虚拟环境的当前显示模式相对应的相关联的显示模式的虚拟对象的子集。
在另一方面,本公开涉及一种用于提供基于虚拟环境的训练和认证的方法。该方法包括:(a)由计算设备的传感器跟踪物理环境内的用户的位置;(b)由计算设备经由虚拟现实显示器向用户显示与虚拟环境内的用户的跟踪位置相对应的化身;(c)由计算设备检测化身与虚拟环境内的虚拟对象的交互;(d)由计算设备测量所检测的交互和与虚拟对象相关联的预定交互之间的差;以及(e)由计算设备生成与所测量的差成反比的得分。
在一些实现方式中,该方法包括针对交互次序重复步骤(c)-(e);以及聚合所生成的得分。在进一步的实现方式中,所检测的交互的次序对应于具有预定顺序的预定交互的次序。在又一实现方式中,该方法包括响应于所检测的交互的次序具有与预定交互的次序不同的顺序而调整聚合得分。在另一实现方式中,该方法包括将聚合得分与阈值进行比较;以及响应于聚合得分低于阈值,重复步骤(a)-(e)。在又一实现方式中,该方法包括:将第一检测的交互和后续检测的交互之间的时间与对应的预定交互之间的时间进行比较,以及基于时间的比较,调整针对后续检测的交互的所生成的得分。
在一些实现方式中,该方法包括测量用户的跟踪位置和与预定交互相对应的第二用户的记录的跟踪位置之间的差。在进一步的实现方式中,该方法包括跟踪用户的手位置,测量用户的所跟踪的手位置与第二用户的手的记录的跟踪位置之间的差。
在一些实现方式中,该方法包括在该虚拟环境内将与该虚拟对象相关联的该预定交互显示为第二化身。在进一步的实现方式中,该方法包括在通过计算设备的传感器跟踪物理环境内的第二用户的位置的同时记录预定交互。
在另一方面,本公开涉及一种用于提供基于虚拟环境的训练和认证的系统。该系统包括计算设备,该计算设备包括至少一个传感器和处理器,并且该计算设备与虚拟现实显示器通信。处理器被配置为:(a)经由传感器跟踪物理环境内的用户的位置;(b)经由虚拟现实显示器向用户显示与虚拟环境内的用户的跟踪位置相对应的化身;(c)检测化身与虚拟环境内的虚拟对象的交互;(d)测量所检测的交互和与虚拟对象相关联的预定交互之间的差;以及(e)生成与所测量的差成反比的得分。
在一些实现方式中,该处理器进一步被配置为针对交互次序重复步骤(c)-(e);以及聚合所生成的得分。在进一步的实现方式中,所检测的交互的次序对应于具有预定顺序的预定交互的次序。在又一实现方式中,处理器进一步被配置为响应于所检测的交互的次序具有与预定交互的次序不同的顺序而调整聚合得分。在另一实现方式中,处理器还被配置为:将聚合得分与阈值进行比较;以及响应于聚合得分低于阈值,重复步骤(a)-(e)。在又一实现方式中,处理器进一步被配置为将第一检测的交互和后续检测的交互之间的时间与对应的预定交互之间的时间进行比较,以及基于时间的比较,调整针对后续检测的交互的所生成的得分。
在一些实现方式中,该处理器被进一步配置为测量用户的跟踪位置和与预定交互相对应的第二用户的记录的跟踪位置之间的差。在进一步的实现方式中,处理器进一步被配置为跟踪用户的手位置,以及测量用户的所跟踪的手位置与第二用户的手的记录的跟踪位置之间的差。
在一些实现方式中,该处理器进一步被配置为在该虚拟环境内将与该虚拟对象相关联的预定交互显示为第二化身。在进一步的实现方式中,处理器进一步被配置为在通过计算设备的传感器跟踪物理环境内的第二用户的位置的同时记录预定交互。
在另一方面,本公开涉及一种用于安全地提供动态虚拟环境的方法。方法包括由计算设备的web浏览器应用显示具有可选择链接的网页,可选择链接包括私有统一资源标识符(URI)方案、主机标识符、门户标识符和资源标识符。该方法还包括:由计算设备响应于对链接的选择来实例化本地代理。该方法还包括:由本地代理确定与资源标识符相对应的第一资源的副本不存在于与门户标识符相对应的地址处的本地存储库内。该方法还包括:由本地代理响应于确定在与门户标识符相对应的本地存储库内不存在第一资源的副本,从与主机标识符相对应的远程存储库中检索第一资源的副本。该方法还包括:由本地代理提取虚拟环境的配置信息。该方法还包括:由本地代理根据所提取的配置信息启动虚拟环境。
在一些实现方式中,方法包括:向数据库服务器发送查询,该查询包括与虚拟对象相关联的元数据的标识;以及从数据库服务器接收网页以供显示,该网页由数据库服务器响应于在对应于门户标识符和资源标识符的虚拟环境的配置信息中的与虚拟对象相关联的元数据的标识而生成。
在一些实现方式中,该方法包括对所检索的第一资源的副本进行解密。在进一步的实现方式中,该方法包括向远程服务器提供与计算设备相关联的认证信息。在另一实现方式中,所检索的第一资源的副本在活动存储器中被解密并且在虚拟环境终止之后从活动存储器中被刷新。在又一实现方式中,在虚拟环境终止之后,所检索的第一资源的加密副本被存储在本地存储库内,而无需解密。
在一些实现方式中,该配置信息包括该虚拟环境内的虚拟对象的子集的元数据,该方法包括:针对每个虚拟对象:确定该配置信息是包括虚拟对象的元数据,还是不包括该虚拟对象的元数据;以及分别将来自虚拟对象的配置信息的元数据添加到虚拟环境中,或者将与虚拟对象的主机标识符或门户标识符中的一个相关联的默认元数据添加到虚拟环境中。在进一步的实现方式中,虚拟对象的元数据包括URI方案、主机标识符、门户标识符、以及对应于包括关于虚拟对象的信息的第二资源的第二资源标识符。在另一进一步的实现方式中,该方法包括:在虚拟环境内显示每个虚拟对象。在一些实现方式中,方法包括:向计算设备的操作系统注册与本地代理相关联的私有URI方案;以及响应于由web浏览器使用私有URI方案生成请求来实例化本地代理。
在另一方面,本公开涉及一种用于安全地提供动态虚拟环境的系统。该系统包括计算设备,该计算设备包括存储本地存储库的存储器设备、网络接口和处理器。处理器被配置为:经由web浏览器应用显示具有可选择链接的网页,可选择链接包括私有统一资源标识符(URI)方案、主机标识符、门户标识符和资源标识符;响应于对链接的选择来实例化本地代理;经由本地代理确定与资源标识符相对应的第一资源的副本不存在于与门户标识符相对应的地址处的本地存储库内;响应于确定在与门户标识符相对应的本地存储库内不存在第一资源的副本,经由网络接口从与主机标识符相对应的远程存储库中检索第一资源的副本;经由本地代理提取虚拟环境的配置信息;以及由本地代理根据所提取的配置信息启动虚拟环境。
在一些实现方式中,该处理器进一步被配置为:经由该网络接口将查询发送至数据库服务器,查询包括与虚拟对象相关联的元数据的标识;以及从数据库服务器接收网页以供显示,网页由数据库服务器响应于在对应于门户标识符和资源标识符的虚拟环境的配置信息中的与虚拟对象相关联的元数据的标识而生成。
在一些实现方式中,处理器进一步被配置为对所检索的第一资源的副本进行解密。在进一步的实现方式中,处理器进一步被配置为向远程服务器提供与计算设备相关联的认证信息。在另一实现方式中,所检索的第一资源的副本在活动存储器中被解密并且在虚拟环境终止之后从活动存储器中被刷新。在又一实现方式中,在虚拟环境终止之后,所检索的第一资源的加密副本被存储在本地存储库内,而无需解密。
在一些实现方式中,配置信息包括虚拟环境内的虚拟对象的子集的元数据,处理器进一步被配置为:针对每个虚拟对象:确定配置信息是包括虚拟对象的元数据,还是不包括虚拟对象的元数据;以及分别将来自虚拟对象的配置信息的元数据添加到虚拟环境中,或者将与虚拟对象的主机标识符或门户标识符中的一个相关联的默认元数据添加到虚拟环境中。在进一步的实现方式中,虚拟对象的元数据包括URI方案、主机标识符、门户标识符、以及对应于包括关于虚拟对象的信息的第二资源的第二资源标识符。在另一进一步实现方式中,该处理器进一步被配置为在虚拟环境内显示每个虚拟对象。在一些实现方式中,处理器还被配置为向计算设备的操作系统注册与本地代理相关联的私有URI方案;以及响应于由web浏览器使用私有URI方案生成请求来实例化本地代理。
B.计算环境
已经讨论了本解决方案的具体实施例,结合本文中所描述的方法和系统来描述操作环境以及相关联的系统组件(例如,硬件元件)的方面可以是有帮助的。
本文讨论的系统可以被部署为任何类型和形式的计算设备和/或在任何类型和形式的计算设备上执行,该计算设备诸如能够在任何类型和形式的网络上通信并且执行本文描述的操作的计算机、网络设备或装置。图6A和图6B描述了用于实践无线通信设备602或接入点606的实施例的计算设备600的框图。如图6A和图6B所示,每个计算设备600包括中央处理单元621和主存储器单元622。如图6A所示,计算设备600可以包括存储设备628、安装设备616、网络接口618、I/O控制器623、显示设备624a-624n、键盘626和指示设备627(诸如鼠标)。存储设备628可以包括但不限于操作系统和/或软件。如图6B中所示,每个计算设备600还可包括附加的可选元件,例如,存储器端口603、桥接器670、一个或更多个输入/输出设备630a-630n(总体上使用参考数字630表示)以及与中央处理单元621通信的高速缓存存储器640。
中央处理单元621是对从主存储器单元622取得的指令作出响应和处理的任何逻辑电路。在许多实施例中,中央处理单元621由微处理器单元提供,微处理器单元诸如:由加利福尼亚Mountain View的Intel公司制造的那些;由纽约White Plains的国际商业机器(International Business Machines)制造的那些;或由加利福尼亚州森尼维尔的Advanced Micro Devices制造的那些。计算设备600可基于这些处理器中的任一者或能够进行如本文所描述操作的任何其他处理器。
主存储器单元622可以是能够存储数据并且允许任何存储位置由微处理器621直接访问的一个或更多个存储器芯片,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、铁电RAM(FRAM)、NAND闪存、NOR闪存和固态驱动器(SSD)的任何类型或变体。主存储器622可基于上文所描述的存储器芯片中的任一者或能够进行如本文中所描述的操作的任何其他可用存储器芯片。在图6A所示的实施例中,处理器621经由(下面更详细地描述的)系统总线650与主存储器622通信。图6B描绘了其中处理器经由存储器端口603直接与主存储器622通信的计算设备600的实施例。例如,在图6B中,主存储器622可以是DRDRAM。
图6B描绘了主处理器621经由有时被称为背面总线的次级总线直接与高速缓存存储器640通信的实施例。在其他实施例中,主处理器621使用系统总线650与高速缓存存储器640通信。高速缓存存储器640通常具有比主存储器622更快的响应时间且由例如SRAM、BSRAM或EDRAM提供。在图6B所示的实施例中,处理器621经由本地系统总线650与各个I/O设备630通信。各个总线可以用于将中央处理单元621连接到I/O设备630中的任一者,例如,VESA VL总线、ISA总线、EISA总线、微通道架构(MicroChannel Architecture,MCA)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。对于其中I/O设备是视频显示器624的实施例,处理器621可以使用高级图形端口(Advanced Graphics Port,AGP)来与显示器624通信。图6B描述了计算机600的实施例,其中,主处理器621可以例如经由HYPERTRANSPORT、RAPIDIO或INFINIBAND通信技术与I/O设备630b直接通信。图6B还描绘了其中本地总线和直接通信混合的实施例:处理器621使用本地互连总线与I/O设备630a通信,同时直接与I/O设备630b通信。
各种各样的I/O设备630a-630n可以存在于计算设备600中。输入设备包括键盘、鼠标、轨迹板、轨迹球、麦克风、拨号盘、触摸板、触摸屏和绘图板。输出设备包括视频显示器、扬声器、喷墨打印机、激光打印机、投影仪和染料升华打印机。I/O设备可以由如图6A所示的I/O控制器623控制。I/O控制器可以控制一个或更多个I/O设备,例如键盘626和指示设备627(例如鼠标或光学笔)。此外,I/O设备还可以为计算设备600提供存储和/或安装介质616。在其他实施例中,计算设备600可以提供USB连接(未示出)以接收手持USB存储设备,诸如由加利福尼亚州,洛斯阿拉莫斯的Twintech Industry公司制造的设备的USB闪存驱动线。
再次参见图6A,计算设备600可以支持任何合适的安装设备616,如磁盘驱动器、CD-ROM驱动器、CD-R/RW驱动器、DVD-ROM驱动器、闪存驱动器、各种格式的磁带驱动器、USB设备、硬盘驱动器、网络接口或适用于安装软件和程序的任何其他设备。计算设备600可以进一步包括存储设备(诸如一个或更多个硬盘驱动器或独立磁盘冗余阵列),用于存储操作系统和其他相关软件,以及用于存储应用软件程序,诸如用于实现(例如,被配置和/或设计为用于)本文描述的系统和方法的任何程序或软件620。可选地,任何安装设备616也可以用作存储设备。此外,操作系统和软件可以从可引导介质运行。
此外,计算设备600可以包括网络接口618,以通过各种连接与网络604接口交互,连接包括但不限于标准电话线、LAN或WAN链路(例如,802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(例如,ISDN、帧中继、ATM、千兆以太网、Ethernet-over-SONET)、无线连接、或以上连接的任何或全部的某些组合。可以使用多种通信协议(例如,TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布式数据接口(FDDI)、RS232、IEEE802.11、IEEE802.11a、IEEE802.11b、IEEE802.11g、IEEE802.11n、IEEE802.11ac、IEEE802.11ad、CDMA、GSM、WiMax和直接异步连接)来建立连接。在一个实施例中,计算设备600经由诸如安全套接层(Secure Socket Layer,SSL)或传输层安全(Transport Layer Security,TLS)的任何类型和/或形式的网关或隧道协议与其他计算设备600’通信。网络接口618可以包括内置网络适配器、网络接口卡、PCMCIA网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器或者适合于将计算设备600连接到能够进行通信并且执行本文中描述的操作的任何类型的网络的任何其他设备。
在一些实施例中,计算设备600可以包括或连接至一个或更多个显示设备624a-624n。照此,I/O设备630a-630n中的任一个和/或I/O控制器623可以包括任何类型和/或形式的合适的硬件、软件或硬件与软件的组合以支持、启用或提供计算设备600对显示设备624a-624n的连接和使用。例如,计算设备600可以包括任何类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与显示设备624a-624n交互、通信、连接或以其他方式使用显示设备624a-624n。在一个实施例中,视频适配器可以包括与显示设备624a-624n交互的多个连接器。在其他实施例中,计算设备600可以包括多个视频适配器,其中每个视频适配器连接到显示设备624a-624n。在一些实施例中,计算设备600的操作系统的任何部分可以被配置用于使用多个显示器624a-624n。本领域普通技术人员将认识到和理解计算设备600可以被配置为具有一个或更多个显示设备624a-624n的各种方式和实施例。
在另外的实施例中,I/O设备630可以是系统总线650与外部通信总线(如USB总线、苹果桌面总线、RS-232串行连接、SCSI总线、火线总线、火线800总线、以太网总线、AppleTalk总线、千兆以太网总线、异步传输模式总线、光纤通道总线、串行附接小型计算机系统接口总线、USB连接或HDMI总线)之间的桥接器。
图6A和图6B中所描绘的种类的计算设备600可以在操作系统的控制下操作,该操作系统控制任务的调度和对系统资源的访问。计算设备600可以运行任何操作系统,如任何版本的MICROSOFT WINDOWS操作系统、不同版本的Unix和Linux操作系统、任何版本的Macintosh计算机的MAC OS、任何嵌入式操作系统、任何实时操作系统、任何开源操作系统、任何专有操作系统、用于移动计算设备的任何操作系统、或能够在计算设备上运行并且执行本文所描述的操作的任何其他操作系统。典型的操作系统包括但不限于:由Google公司生产的Android;由华盛顿州雷蒙德市的微软公司生产的WINDOWS 8和10;由加利福尼亚州库比蒂诺的苹果计算机生产的MAC OS;由Research In Motion(RIM)生产的WebOS;由纽约阿蒙克的国际商业机器生产的OS/2;以及由犹他州盐湖城的Caldera Corp发行的自由可用的操作系统Linux;或任何类型和/或形式的Unix操作系统等。
计算机系统600可以是任何工作站、电话、台式计算机、膝上型或笔记本计算机、服务器、手持式计算机、移动电话或其他便携式电信设备、媒体播放设备、游戏系统、移动计算设备、或能够进行通信的任何其他类型和/或形式的计算、电信或媒体设备。计算机系统600具有足够的处理器功率和存储器容量来执行本文所描述的操作。
在一些实施例中,计算设备600可以具有与该设备一致的不同处理器、操作系统和输入设备。例如,在一个实施例中,计算设备600是智能电话、移动设备、平板或个人数字助理。在其他实施例中,计算设备600是基于Android的移动设备、由加利福尼亚州库比蒂诺的的苹果计算机制造的iPhone智能电话、或Blackberry或基于WebOS的手持设备或智能电话(诸如由Research In Motion Limited制造的设备)。此外,计算设备600可以是任何工作站、台式计算机、膝上型或笔记本计算机、服务器、手持式计算机、移动电话、任何其他计算机、或能够通信并且具有足够的处理器功率和存储器容量来执行本文所描述的操作的其他形式的计算或电信设备。
虽然本公开可以引用一个或更多个“用户”,但是这种“用户”可以指与用户相关联的设备或站(STA),例如,与用户相关联的设备或站(STA)与通常在多用户多输入多输出(multi-user multiple-input and multiple-output,MU-MIMO)环境的上下文中使用的术语“用户”和“多用户”一致。
尽管上述通信系统的示例可以包括根据802.11标准操作的设备和AP,但应理解的是,所描述的系统和方法的实施例可以根据其他标准操作并且使用除被配置为设备和AP的设备以外的无线通信设备。例如,在不背离本文所描述的系统和方法的范围的情况下,与蜂窝网络、卫星通信、车辆通信网络和其他非802.11无线网络相关联的多单元通信接口可利用本文所描述的系统和方法来实现改善的总容量和/或链路质量。
应注意的是,出于标识或区分彼此的目的,本公开的某些段落可以引用与设备、操作模式、发送链、天线等相关的术语,如“第一”和“第二”。这些术语不旨在仅时间上或根据顺序次序与实体(例如,第一设备和第二设备)相关,尽管在一些情况下,这些实体可以包括这种关系。这些术语也不限制可在系统或环境内操作的可能实体(例如,设备)的数量。
应当理解,上述系统可以提供那些组件中的任何组件或每个组件中的多个,并且可以在独立的机器上提供这些组件,或者在一些实施例中,在分布式系统中的多个机器上提供这些组件。此外,上述系统和方法可以被提供为一个或更多个计算机可读程序或可执行指令,一个或更多个计算机可读程序或可执行指令在一个或更多个制品上或在一个或更多个制品中体现。制品可以是软盘、硬盘、CD-ROM、闪存卡、PROM、RAM、ROM、或磁带。通常,计算机可读程序可以任何编程语言(诸如LISP、PERL、C、C++、C#、PROLOG或任何字节代码语言(诸如JAVA))来实现。软件程序或可执行指令可以作为对象代码存储在一个或更多个制品上或一个或更多个制品中。
虽然前面对方法和系统的书面描述使得本领域普通技术人员能够制造和使用目前被认为是其最佳模式的内容,但本领域普通技术人员将理解并认识到本文的具体实施例、方法和示例的变化、组合和等效物的存在。因此,本方法和系统不应受上述实施例、方法和示例的限制,而是受本公开的范围和精神内的所有实施例和方法的限制。

Claims (16)

1.一种用于在虚拟环境内提供上下文敏感的动态链接的方法,包括:
由计算设备接收指定与上下文相关联并且包括至少一个虚拟对象的虚拟环境的数据,所述至少一个虚拟对象中的每一个与标识符相关联,所述上下文与多层级中的节点相关联;
对于所述至少一个虚拟对象中的每一个,由所述计算设备从根据与所述虚拟环境相关联的上下文的数据库检索与对应标识符相关联的资源的地址;
由所述计算设备显示所述虚拟环境的视图;
由所述计算设备检测由所述虚拟环境的用户与第一虚拟对象的交互,其中所述第一虚拟对象与在所述多层级中的第一层处的第一标识符和在所述多层级中的第二层处的第二标识符相关联;
响应于所述多层级中的所述第一层低于所述第二层,由所述计算设备选择所述第一标识符而不是所述第二标识符;
响应于对所述第一标识符的选择,由所述计算设备标识与所述第一虚拟对象的所述第一标识符相关联的第一资源的地址;以及
由所述计算设备在所述虚拟环境内实例化所述第一资源的数据的渲染,渲染器在所述地址处检索所述第一资源,并在所述虚拟环境内显示所检索的资源。
2.根据权利要求1所述的方法,其中,所述上下文与在所述多层级中的每个层上的节点相关联,其中,每个节点与在所述多层级中的另一层上的所述上下文的另一节点具有父关系或子关系。
3.根据权利要求1所述的方法,其中,所述第一资源的地址包括:具有主机标识符、门户标识符、和资源标识符的私有统一资源标识符(URI)方案中的地址。
4.根据权利要求1所述的方法,其中,所述第一资源的地址包括:执行动作的标识符;其中,所述渲染器基于所标识的执行动作来处理所述第一资源。
5.根据权利要求1所述的方法,其中,每个虚拟对象与所述虚拟环境内的坐标集相关联;其中,显示所述虚拟环境的视图还包括:在所述视图内在一个或更多个虚拟对象的相应的相关联坐标处显示所述一个或更多个虚拟对象。
6.根据权利要求5所述的方法,其中,每个虚拟对象与显示模式相关联;其中,显示所述虚拟环境的视图还包括:显示具有与所述虚拟环境的当前显示模式相对应的相关联的显示模式的所述虚拟对象的子集。
7.一种用于在虚拟环境内提供上下文敏感的动态链接的方法,包括:
由本地计算设备接收指定与上下文相关联并且包括至少一个虚拟对象的虚拟环境的数据,所述至少一个虚拟对象中的每一个与标识符相关联;
对于所述至少一个虚拟对象中的每一个,由所述本地计算设备从根据与所述虚拟环境相关联的上下文的数据库检索与对应标识符相关联的资源的地址;
由所述本地计算设备显示所述虚拟环境的视图;
由所述本地计算设备检测由所述虚拟环境的用户与第一虚拟对象的交互;
由所述本地计算设备标识与所述第一虚拟对象的标识符相关联的第一资源的地址,所述第一资源的地址包括具有主机标识符、门户标识符、和资源标识符的私有统一资源标识符(URI)方案中的地址,其中所述主机标识符与存储在远程计算设备的存储器中的远程存储库相关联,其中所述门户标识符与存储在所述本地计算设备的存储器中的本地存储库相关联;
由所述本地计算设备确定所述第一资源的副本是否存在于与所述门户标识符相对应的本地存储库内;以及
由计算设备在所述虚拟环境内实例化所述第一资源的数据的渲染,渲染器在所述地址处检索所述第一资源,并在所述虚拟环境内显示所检索的资源。
8.根据权利要求7所述的方法,其中,实例化所述渲染还包括:响应于确定在与所述门户标识符相对应的所述本地存储库内不存在所述第一资源的副本,而从与所述主机标识符相对应的远程存储库检索所述第一资源的副本。
9.一种用于在虚拟环境内提供上下文敏感的动态链接的系统,包括:
计算设备,所述计算设备包括处理器,所述处理器被配置为:
接收指定与上下文相关联并且包括至少一个虚拟对象的虚拟环境的数据,所述至少一个虚拟对象中的每一个与标识符相关联,所述上下文与多层级中的节点相关联;
对于所述至少一个虚拟对象中的每一个,从根据与所述虚拟环境相关联的上下文的数据库检索与对应标识符相关联的资源的地址;
显示所述虚拟环境的视图;
检测由所述虚拟环境的用户与第一虚拟对象的交互,其中所述第一虚拟对象与在所述多层级中的第一层处的第一标识符和在所述多层级中的第二层处的第二标识符相关联;
响应于所述多层级中的所述第一层低于所述第二层,选择所述第一标识符而不是所述第二标识符;
响应于对所述第一标识符的选择,标识与所述第一虚拟对象的所述第一标识符相关联的第一资源的地址;以及
在所述虚拟环境内实例化渲染器,所述渲染器在所述地址处检索所述第一资源,并在所述虚拟环境内显示所检索的资源。
10.根据权利要求9所述的系统,其中,所述上下文与在所述多层级中的每个层上的节点相关联,其中,每个节点与在所述多层级中的另一层上的所述上下文的另一节点具有父关系或子关系。
11.根据权利要求9所述的系统,其中,所述第一资源的地址包括:具有主机标识符、门户标识符、和资源标识符的私有统一资源标识符(URI)方案中的地址。
12.根据权利要求9所述的系统,其中,所述第一资源的地址包括:执行动作的标识符;其中,所述渲染器基于所标识的执行动作来处理所述第一资源。
13.根据权利要求9所述的系统,其中,每个虚拟对象与所述虚拟环境内的坐标集相关联;其中,所述处理器还被配置为在所述视图内在一个或更多个虚拟对象的相应的相关联坐标处显示所述一个或更多个虚拟对象。
14.根据权利要求13所述的系统,其中,每个虚拟对象与显示模式相关联;其中,所述处理器还被配置为显示具有与所述虚拟环境的当前显示模式相对应的相关联的显示模式的所述虚拟对象的子集。
15.一种用于在虚拟环境内提供上下文敏感的动态链接的系统,包括:
本地计算设备,所述本地计算设备包括处理器,所述处理器被配置为:
接收指定与上下文相关联并且包括至少一个虚拟对象的虚拟环境的数据,所述至少一个虚拟对象中的每一个与标识符相关联;
对于所述至少一个虚拟对象中的每一个,从根据与所述虚拟环境相关联的上下文的数据库检索与对应标识符相关联的资源的地址;
显示所述虚拟环境的视图;
检测由所述虚拟环境的用户与第一虚拟对象的交互;
标识与所述第一虚拟对象的标识符相关联的第一资源的地址,所述第一资源的地址包括具有主机标识符、门户标识符、和资源标识符的私有统一资源标识符(URI)方案中的地址,其中所述主机标识符与存储在远程计算设备的存储器中的远程存储库相关联,其中所述门户标识符与存储在所述本地计算设备的存储器中的本地存储库相关联;
确定所述第一资源的副本是否存在于与所述门户标识符相对应的本地存储库内;以及
在所述虚拟环境内实例化渲染器,所述渲染器在所述地址处检索所述第一资源,并在所述虚拟环境内显示所检索的资源。
16.根据权利要求15所述的系统,其中,所述处理器还被配置为响应于确定在与所述门户标识符相对应的所述本地存储库内不存在所述第一资源的副本,而从与所述主机标识符相对应的远程存储库检索所述第一资源的副本。
CN202180094383.1A 2020-12-31 2021-12-30 用于虚拟现实环境的系统和方法 Active CN117378000B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/139,771 US11610363B2 (en) 2020-12-31 2020-12-31 Systems and methods for virtual reality environments
US17/139,771 2020-12-31
PCT/US2021/065784 WO2022147322A1 (en) 2020-12-31 2021-12-30 Systems and methods for virtual reality environments

Publications (2)

Publication Number Publication Date
CN117378000A CN117378000A (zh) 2024-01-09
CN117378000B true CN117378000B (zh) 2024-07-05

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102356373A (zh) * 2009-03-20 2012-02-15 微软公司 虚拟对象操纵
CN106462393A (zh) * 2014-05-30 2017-02-22 苹果公司 用于统一应用编程接口和模型的系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102356373A (zh) * 2009-03-20 2012-02-15 微软公司 虚拟对象操纵
CN106462393A (zh) * 2014-05-30 2017-02-22 苹果公司 用于统一应用编程接口和模型的系统和方法

Similar Documents

Publication Publication Date Title
US11615581B2 (en) Systems and methods for securely providing virtual reality environments
JP7411856B2 (ja) 仮想現実環境ベースの訓練及び認証を提供するためのシステム及び方法
US20130205277A1 (en) Environment and method for cross-platform development of software applications
US10447762B2 (en) Remote localization platform
US9189132B2 (en) Dynamic configurable menu using self-describing applications
CN112085988A (zh) 一种渗透攻击的虚拟仿真实验系统及方法
CN117378000B (zh) 用于虚拟现实环境的系统和方法
Khanna et al. Ionic: Hybrid Mobile App Development
Nair et al. Learning LibGDX Game Development
Toomey Jupyter Cookbook: Over 75 recipes to perform interactive computing across Python, R, Scala, Spark, JavaScript, and more
US20160188324A1 (en) Configuration of applications to desired application states
Skogberg Android application development
Harwani Android Programming Unleashed
Saini Hybrid Mobile Development with Ionic
Singh Ionic cookbook: Recipes to create cutting-edge, real-time hybrid mobile apps with ionic
Kovalenko PhoneGap By Example
Williams Xamarin Blueprints
Manfield Joomla for Developers
Louis et al. Mastering mobile test automation
Pamungkas PhoneGap 4 Mobile Application Development Cookbook
da Silva Development of a Mobile Application for Georeferenced data Collection in the Field
Vitas Designing mobile ambient applications
Tidwell Flash with Drupal
Kearney HUBcheck: Check the hub
Szpuszta et al. Pro ASP. NET 3.5 in C# 2008: Includes Silverlight 2

Legal Events

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