首页> 中国专利> 用于在混合现实环境中针对视觉数字创作处理和划分真实世界的部分的方法和系统

用于在混合现实环境中针对视觉数字创作处理和划分真实世界的部分的方法和系统

摘要

公开了一种生成数字岛的方法。关于数字岛的局部坐标系,创建数字岛虚拟对象的基本形状。将条件与数字岛相关联。条件包括用于环境内对象的属性的标准。将附加虚拟对象与数字岛相关联。接收描述环境的数据。分析数据以确定与条件匹配的环境的一个或更多个部分。基于条件的匹配,对数字岛同时与环境的视图一起在混合现实显示装置中的显示进行定位、缩放和定向。基于条件以及一个或更多个传感器和混合现实显示装置的运动,将数字岛与一个或更多个部分中的至少一个部分对准。

著录项

  • 公开/公告号CN113168735A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 犹尼蒂知识产权有限公司;

    申请/专利号CN201980077020.X

  • 发明设计人 安德鲁·彼得·马纳里;

    申请日2019-10-22

  • 分类号G06T19/00(20060101);G06T19/20(20060101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人杜诚;杨林森

  • 地址 丹麦哥本哈根

  • 入库时间 2023-06-19 11:55:48

说明书

相关申请的交叉引用

本申请要求于2018年10月22日提交的美国临时申请第62/749,064号的权益,其通过引用整体并入本文。

技术领域

本发明涉及用于在针对混合现实环境创建和操纵数字内容中使用的工具的领域。

背景技术

在混合现实(MR)环境内创建和编辑诸如游戏和应用的数字内容时,由于其上放置虚拟对象的真实世界的动态性,使用传统坐标系是有问题的。关于坐标系的问题使得对混合现实体验的直接视觉创作(例如,创建和编辑)几乎是不可能的。对混合现实体验的直接视觉创作涉及当数字内容经由移动装置(例如,头戴式显示器或移动电话或平板计算机)在混合现实环境中出现时用户直接操纵数字内容。数字内容必须在创作阶段期间被放置、定向、缩放和赋予属性,使得数字内容在执行时间期间(例如,在游戏或仿真运行时期间)如创作者所期望的那样出现。例如,当创作旨在在真实世界的桌子上执行(例如,被显示)的MR体验时,在编辑时间没有明确的位置安置内容。这是因为在创建处理期间,创作者无法知道在运行时关于环境和用户装置的某些事实,包括:真实世界中的桌子相对于本地环境的位置和方向;用户装置将会把桌子安置在数字坐标系中的何处;在真实世界环境中是否有桌子;以及如果在真实世界环境中有桌子,在环境中是否有不只一张桌子;桌子的尺寸等。关于运行时MR环境的许多遗漏细节使得高效且直接地创作数字内容变得困难,并且有时是不可能的。目前,MR内容必须在隔离视图中被创作、被打包在装置上执行的应用中、被手动地应用于真实世界表面、以及然后被检查以查看其一些部分是否被损坏(例如,未对准、未适当缩放等)。如果MR内容中的某些损坏,则用户(例如,开发者)将返回至隔离视图,通过猜测需要何种改变来编辑内容,重新部署至应用中,在装置上重新执行应用,并且根据需要重复操作,从而导致缓慢、低效的工作流程。

附图说明

根据结合附图进行的以下详细描述,本发明的其他特征和优点将变得明显,在附图中:

图1是示出根据一个实施方式的MR数字岛系统的示意图;

图2是示出根据一个实施方式的用于创作MR数字岛的方法的流程图示意图;

图3A是示出根据一个实施方式的示出数字岛的创作的在虚拟环境中的视图的示意图;

图3B是示出根据一个实施方式的如从MR装置看到的具有数字岛的MR环境的示意图;

图4是示出可以与本文中描述的各种硬件架构结合使用的示例软件架构的框图;以及

图5是示出根据一些示例实施方式的机器的部件的框图,该机器的部件被配置成从机器可读介质(例如,机器可读存储介质)读取指令并执行本文讨论的方法中的任意一种或更多种方法。

将注意的是,在所有附图中,相同的特征由相同的附图标记标识。

具体实施方式

以下描述单独地或组合地描述了构成本公开内容的说明性实施方式的系统、方法、技术、指令序列和计算机器程序产品。在以下描述中,出于说明的目的,阐述了许多具体细节以提供对发明主题的各种实施方式的理解。然而,对于本领域技术人员而言将明显的是,可以在没有这些具体细节的情况下实践本发明主题的各种实施方式。

在示例实施方式中,公开了生成数字岛的方法。关于数字岛的局部坐标系,创建数字岛虚拟对象的基本形状。将条件与数字岛相关联。条件包括用于环境内对象的属性的标准。将附加虚拟对象与数字岛相关联。接收描述环境的数据。分析数据以确定与条件匹配的环境的一个或更多个部分。基于条件的匹配,对数字岛同时与环境的视图一起在混合现实显示装置中的显示进行定位、缩放和定向。基于条件以及一个或更多个传感器和混合现实显示装置的运动,将数字岛与所述一个或更多个部分中的至少一部分对准。

本发明包括执行本文中描述的方法、一个或更多个操作或者操作的一个或更多个组合的设备,该设备包括执行这些方法的数据处理系统和具有指令的计算机可读介质,指令在数据处理系统上执行时,使系统执行这些方法、操作或者操作的组合,包括非例行的操作和非常规的操作。

本文所使用的术语“游戏”应当被理解为包括视频游戏和装置上的执行和呈现视频游戏的应用,以及装置上的执行和呈现仿真的应用。术语“游戏”还应当被理解为包括装置上的用于创建和执行游戏的编程代码(源代码或者可执行二进制代码)。

在本文的整个说明书中使用的术语“环境”应当被理解为包括2D数字环境(例如,2D视频游戏环境、2D仿真环境等)、3D数字环境(例如,3D游戏环境、3D仿真环境、3D内容创建环境、虚拟现实环境等)以及包括数字(例如,虚拟)部件和真实世界部件两者的增强现实环境。

本文所使用的术语“游戏对象”应理解为包括在环境内的任何数字对象或数字元素。游戏对象几乎可以代表(例如,以相应的数据结构)在环境内的任何事物;包括角色、武器、场景元素(例如,建筑物、树木、汽车、宝物等)、背景(例如,地形、天空等)、灯光、摄像机、效果(例如,声音和视觉)、动画等。游戏对象与定义该对象的属性和行为的数据相关联。

本文所使用的术语“资产”、“游戏资产”和“数字资产”应理解为包括可以用于描述游戏对象或者可以用于描述游戏或项目的方面的任何数据。例如,资产可以包括用于图像、3D模型(纹理、装配等)、一组3D模型(例如,整个场景)、音频声音、视频、动画、3D网格等的数据。描述资产的数据可以存储在文件内,或者可以包含在文件的集合内,或者可以被压缩并存储在一个文件(例如,压缩文件)中,或者可以存储在存储器内。可以使用描述资产的数据以在运行时使在游戏内的一个或更多个游戏对象实例化。

本文所使用的术语“构建”和“游戏构建”应当被理解为包括游戏的编译二进制代码,该编译二进制代码可以在装置上被执行并且在被执行时可以提供游戏的可玩版本(例如,由人类或者由人工智能代理可玩的)。

本文所使用的术语“运行时”应当被理解为包括程序(例如,应用、视频游戏、仿真等)正在运行或执行(例如,执行编程代码)的时间。该术语应当被理解为包括由人类用户或者人工智能代理正在玩视频游戏的时间。

在本文的整个说明书中,术语“混合现实”(MR)应当被理解为包括现实与虚拟现实(VR)之间的范围中的所有组合环境,包括虚拟现实、增强现实(AR)和增强虚拟。

在本文的整个说明书中使用的术语“客户端”和“应用客户端”应理解为包括可以访问(包括通过网络进行访问)服务器上的数据和服务的软件客户端或者软件应用。

本文描述了混合现实数字岛系统,该混合现实数字岛系统在混合现实环境中针对混合现实应用提供了数字内容的视觉创作(例如,内容创建)和调试。当数字内容经由移动装置(例如,头戴式显示器、移动电话、平板计算机等)在混合现实环境中出现时,对混合现实体验的直接视觉创作(例如,创建和编辑)涉及对该数字内容的(例如,由人类用户的)直接操纵。在创作期间,数字内容被放置、定向、缩放和赋予属性以使得:在执行时间期间(例如,在游戏或仿真运行时期间)如创作者所期望的那样显示数字内容。

使用MR数字岛系统在混合现实中创建数字内容,创作者可以仅通过观察数字内容与环境的同时显示来确定是否存在数字内容与数字内容在环境中的整合的不一致。例如,创作者可以看到虚拟对象是否被叠加到墙的中途,或者是否由于没有通往目标的路径而无法达到特定的游戏目标。此外,使用MR数字岛系统,创作者在没有MR装置(例如,台式计算机或虚拟现实耳机)的情况下,可以合理地创作MR内容,并且知道其在真实生活中将看起来如何和表现得如何。这是一种有效并且高效的创作方式。

本文描述了MR数字岛系统和相关联的方法。MR数字岛系统被配置成在MR环境内显示和操纵数字内容。在示例实施方式中,用户(例如,HMD的佩戴者,或者持有智能电话、平板计算机或其他MR功能装置的某人)经由MR装置体验如由MR数字岛系统呈现的MR环境。MR环境包括真实世界(例如,MR装置的直接周围环境)与由MR数字岛系统提供的显示的虚拟内容一起的视图。在一些实施方式中,MR装置包括被配置成捕获MR装置周围的真实世界的数字视频或者图像的前向摄像机,数字视频或者图像可选地包括深度数据,MR数字岛系统可以分析数字视频或者图像以提供本文中描述的MR数字岛特征中的一些。

在一些实施方式中,本文中描述的MR数字岛系统以及各种相关联的硬件和软件部件可以提供虚拟现实(VR)内容而不是AR内容,或者除了AR内容之外还可以提供虚拟现实(VR)内容。应当理解,可以关于AR内容执行本文中描述的系统和方法,并且照此,本公开内容的范围涵盖AR和VR环境以及应用两者。

现在转向附图,示出了根据本发明的实施方式的用于在混合现实环境中针对混合现实应用提供数字内容的视觉创作(例如,内容创建)和调试的系统和方法。图1是被配置成向用户130提供MR数字岛功能的示例MR数字岛系统100和相关联的装置的图。在示例实施方式中,MR数字岛系统100包括由用户130操作的MR装置102。MR装置102是能够向用户130提供混合现实体验的计算装置。在一些实施方式中,MR装置102是由用户130佩戴的头戴式显示器(HMD)装置,例如,增强现实(AR)面甲(visor)或虚拟现实(VR)面甲(例如,谷歌

在示例实施方式中,MR装置102包括一个或更多个中央处理单元(CPU)104、图形处理单元(GPU)106以及可选地全息处理单元(HPU)108。处理装置104是任意类型的处理器、包括多个处理元件(未示出)的处理器组件,该处理装置104能够访问存储器110以检索存储在其上的指令并执行这样的指令。在执行这样的指令时,指令使处理装置104执行一系列任务(例如,如本文参照图2所描述的)。MR装置102还可以包括用于通过网络150进行通信的一个或更多个联网装置112(例如,用于通过包括蜂窝网络、Wi-Fi网络、因特网等的网络进行通信的有线网络适配器或无线网络适配器)。MR装置102还包括一个或更多个摄像机装置114,所述一个或更多个摄像机装置114可以被配置成在操作期间捕获MR装置102附近的真实世界的数字视频。MR装置102还可以包括一个或更多个传感器116,例如,全球定位系统(GPS)接收器(例如,用于确定MR装置102的GPS位置)、生物特征传感器(例如,用于捕获用户130的生物特征数据)、运动或方位传感器(例如,用于捕获用户130或接近MR装置102的其他对象的方位数据和运动数据)或者音频麦克风(例如,用于捕获声音数据)。一些传感器116可以在MR装置102的外部并且可以被配置成与MR装置102进行无线通信(例如,诸如在微软

MR装置102还包括用于以由处理装置104可读的数据信号的形式输入信息的一个或更多个输入装置118,例如键盘或小键盘、鼠标、定点装置、触摸屏、麦克风、摄像机、手持装置等(例如,手部运动跟踪装置)。MR装置102还包括一个或更多个显示装置120,例如平板计算机或智能电话的触摸屏、或者VR HMD或AR HMD的镜片或面甲(visor),所述一个或更多个显示装置120可以被配置成将虚拟对象连同真实世界视图一起向用户130显示。

MR装置102还包括被配置成存储MR数字岛模块124的存储器110。存储器110可以是任意类型的存储器装置,例如,随机存取存储器、只读或可重写存储器、内部处理器缓存等。

根据实施方式,在MR装置102(例如,HMD)上执行的客户端MR数字岛模块124可以被配置成捕获来自摄像机装置114或传感器116的数据,以执行MR数字岛系统100的各种功能。在示例实施方式中,摄像机装置114和传感器116从装置102周围的环境捕获数据,该数据包括视频数据、音频数据、深度数据、GPS位置数据等。客户端模块124可以被配置成直接分析传感器数据或者分析经处理的传感器数据(例如,检测到和识别出的对象的实时列表、对象形状数据、深度图等)。

根据实施方式,数字岛是占据可变大小的空间体积的数字对象,在数字岛中,坐标系是稳定的,并且数字岛可以包括数字对象并且可以在MR环境内被放置和操纵。数字岛可以表示真实世界中的真实对象(例如,桌子、沙发、椅子、灯、长凳等)。数字岛可以表示真实世界中真实对象的一部分(例如,桌子的上表面)。例如,当数字岛表示真实世界中的真实平坦表面(例如,桌子的顶部)时,数字岛可以是虚拟平面。对于更复杂的对象(例如,沙发、椅子、灯等),数字岛可以替代地由用于该对象的3D模型来表示。根据实施方式,数字岛包括3D模型的表面。

根据实施方式,数字岛包括描述一个或更多个条件(例如,标准)的数据,所述一个或更多个条件提供了对真实世界对象的真实世界属性的限制,由此必须满足所述条件以便将数字岛放置在真实世界对象上或真实世界对象附近的MR环境内。条件可以包括位置标准、接近标准、方向标准、光照标准、颜色标准、纹理标准以及混合现实环境的任何其他属性或真实世界对象的任何其他属性。与数字岛相关联的条件指定数字岛可以放置在MR环境内的何处以及数字岛可以如何放置在MR环境内,包括数字岛的位置、方向和规模(scale)。根据实施方式,对于多个条件的任何组合(例如,如果在MR环境中检测到多个桌子,则放置多个数字岛),MR数字岛模块124确定在MR环境中的最优场景布局。例如,一组条件可以包括以下标准:使得表示虚拟平面的数字岛在MR环境中被放置在检测到的真实世界平面(或虚拟平面)之上,该真实世界平面(或虚拟平面)在一定大小范围内并且以特定的方式定向,并且有一定量的光打在其上。作为另一示例,一组条件可以包括以下标准:使得表示虚拟沙发的数字岛在MR环境中被放置在检测到的真实世界沙发(或虚拟沙发)之上,该真实世界沙发(或虚拟沙发)在一定的大小范围内并且以特定的方式定向,并且有一定量的光打在其上。

根据实施方式,数字岛提供了用于(例如,由用户的)数字创作的局部坐标系。在数字岛上的数字创作包括将一个或更多个数字对象添加到数字岛,并且其中,所述一个或多个数字对象成为数字岛的一部分(例如,在数字岛上具有固定的大小、位置和方向,以及具有亲子关系,其中,数字对象子对象与数字岛父对象共享一些属性)。在运行时,数字岛的局部坐标系被映射到与数字岛相关联的一组条件匹配的真实世界数据。例如,如果将具有给定大小和方向的虚拟马放置在表示桌面的平面数字岛上,并且如果在满足数字岛的条件的MR环境中检测到真实世界桌面(例如,与条件指定的大小、形状和方向匹配的真实世界桌子),则将平面数字岛放置在MR环境中以与真实世界桌面对准。

根据实施方式,条件可以包括非空间条件,非空间条件包括以下标准:该标准涉及光(例如,打在对象上的光的量)、或颜色、或纹理、物理属性(例如,硬、软)以及其他用户定义的属性。非空间条件定义非空间边界,然而,非空间边界条件仍可以在创作时被可视化(例如,在作为方法200的一部分的操作206期间)。非空间条件的示例可以是将表面声明为具有软的柔性边界的“沙发”的条件。作为示例的一部分,可以给具有沙发条件的数字岛的边界赋予物理性质以表示柔软的对象,其中放置在沙发数字岛上的对象将与表面相互作用,就好像该表面是软且有柔性的。

根据实施方式,图2中示出的是用于在MR环境中创建和自主放置数字岛的方法200的流程图。在操作202处,(例如,由用户130)创建表示真实世界对象或真实世界对象的一部分的数字岛。作为操作202的一部分,为数字岛选择形状。形状可以是平的、简单的几何形状(球体、立方体、棱柱体等)或复杂3D形状的精细3D模型。在操作204处,将一个或更多个条件与数字岛相关联(例如,平面大小、光照要求、对准等)。在操作206处,客户端MR数字岛模块124在显示装置120上(例如,在用户界面内)显示具有条件的数字岛。例如,可以在虚拟现实耳机(例如,由用户130佩戴)内根据条件显示数字岛,从而允许用户以视觉方式体验这些条件。用户可能看到以平面形状显示的具有如在条件中所指定的大小、对准和光照的虚拟对象。在操作208中,在数字岛上创作数字内容。创作包括在数字岛上或者在数字岛内添加、删除、定位、定向以及调整虚拟对象。根据实施方式,作为操作208的一部分,创作可以在MR装置HMD内由用户添加数字内容的情况下在MR环境中直接发生。根据另一实施方式,作为操作208的一部分,创作可以在用户界面内发生(例如,在用户经由拖放方法添加数字内容的情况下)。在操作210处,将创作的内容和数字岛打包在应用内(例如,在构造(build)内)并且在MR装置102上运行(例如,执行)。在操作212处,使用内部和外部传感器116、摄像机装置114和其他输入装置118将真实世界数据带入应用(例如导入)。根据实施方式,当MR装置102移动通过环境时,内部和外部传感器116捕获数据。所捕获的数据包括视频数据、图像数据、声音数据、红外深度数据等。根据实施方式,可以处理(例如,利用图像处理)真实世界数据以提取环境的语义数据,其中,所提取的语义数据可以被添加到真实世界数据。根据实施方式,可以将真实世界数据从预先存在的真实世界环境扫描带入应用(例如,作为经由网络从云的导入)。真实世界数据可以包括描述表面、识别的对象、语义标记数据、颜色、光等的数据。根据实施方式,世界数据可以同时来自不同的来源。在操作214中,分析世界数据(例如,包括语义数据)以搜索与数字岛的条件匹配的环境的各方面。当MR环境扫描中的数据(例如,与世界的方面匹配的世界数据)满足用于数字岛的一组创作条件时,根据与数字岛相关联的条件在MR环境内激活、定位、调整和显示数字岛。在一些实施方式中,当MR装置102在整个MR环境中移动时,显示数字岛使得数字岛的一些属性与匹配的真实世界对象保持同步(例如,数字岛显示在其真实世界对象之上)。在操作216处,根据MR装置102的运动对(例如,在操作208处的)与数字岛相关联的数字内容进行移动和调整。由于在操作208中的创作是在真实世界条件下执行的,因此在MR环境中的(例如,根据操作214的)显示的数字岛看上去与预期一致。

根据实施方式,提供了用于定义两个或更多个数字岛之间的关系的方法。关系包括多个数字岛之间必须满足的一个或更多个条件。关系可以包括两个或更多个数字岛(例如,两个具有球形的数字岛)之间必须共有的一个或更多个条件。关系还可以包括将一个或更多个关于相对距离、方向和大小的标准置于两个或更多个数字岛之间的条件。作为关系的示例,考虑具有包括以下内容的关系条件的两个平面形状的数字岛:“相距3米至5米之间的2个共面表面”。作为方法200的操作206的一部分,关系可以被显示。继续示例,客户端MR数字岛模块124可以在显示装置120上的用户界面中显示两个共面表面。例如,可以以约束距离的平均值显示两个共面表面(例如,连同最小距离和最大距离一起示出)。所显示的数字岛(例如,示出示例关系条件)允许“可视调试”,因为可以确定(例如,由用户)放置在数字岛上的数字内容满足关系条件。例如,可视地显示关系可以示出两个数字岛是否相距太远而无法支持角色跳转(character jump),或者数字内容是否未正确对准等。

根据实施方式,在方法200的操作212处,导入来自仿真环境(例如,虚拟现实环境)的数据(例如,代替来自真实世界环境的数据)。可以使用来自仿真环境的数据以便在没有移动电话或其他MR装置来扫描真实世界环境的情况下测试数字岛条件。

根据实施方式,第一数字岛可以嵌套在第二数字岛内。根据该实施方式,在操作208处,用于第一数字岛的数据被用作数字内容并且被添加到第二数字岛,使得第一数字岛存在于第二数字岛之内或第二数字岛之上。

根据实施方式,图3A中示出的是关于包括数字岛301的虚拟环境300的视图。视图可以来自虚拟现实耳机内或者来自装置(例如,台式计算机)上的用户界面。所显示的视图将作为方法200中的操作206和操作208的一部分被用户看到。图3A所示的示例中的数字岛301是平面。还针对用户在视图中显示用于数字岛平面的真实世界条件。例如,显示用于可以接收数字岛的真实世界平面的大小范围的条件。在图3A中的示例中,显示了最大边界302A、最小边界302C和几何平均边界302B。作为操作206的一部分,用户可以在数字岛301上放置(例如,利用虚拟手304)数字对象(306A、306B、306C和306D)。添加到数字岛的数字对象(306A、306B、306C和306D)可以被固定到数字岛平面。数字对象(306A、306B、306C和306D)可以是突出数字岛平面的3D虚拟对象。因为图3A所示的数字岛平面301相对于例如桌子的物理对象被设定大小,所以查看图3A中的显示的用户可以确切地看到数字岛301的局部坐标系所示的数字对象(306A、306B、306C和306D)在真实世界桌子上在MR环境中被显示时在真实世界条件下将如何被看到。

根据实施方式,在图3B中示出的是作为操作214的一部分的如在MR装置102内显示的混合现实环境350(例如,空间)。MR环境350包括真实物理桌子352,真实物理桌子352具有在针对图3A所示的数字岛301的最小边界302C和最大边界302A内适合的尺寸。当桌子352的上表面的尺寸和形状与数字岛301的尺寸和形状匹配时,由客户端MR数字岛模块124在桌子352上显示与数字岛相关联的数字对象(306A、306B、306C和306D)。数字对象在桌子352上以与其在图3A中的开发环境300中显示时的相对尺寸相同的相对尺寸进行显示。根据实施方式,在MR环境350中不显示数字岛301的结构(例如,平面),而仅显示添加的作为操作208的一部分的数字对象。

根据实施方式,客户端MR数字岛模块124提供包括开发环境的用户界面(例如,在显示装置120上),该开发环境包括与图3A中所示的环境类似的虚拟环境300。用户界面可以包括用于数字岛的条件的数值的显示。

根据实施方式,数字岛可以包括描述用于数字岛的条件的最佳匹配的数据,由此可以在方法200的操作214期间使用该数据来确定条件与环境的优选匹配。作为示例,数字岛可以具有与中灰或更浅颜色的环境中的任何对象相匹配的条件,但是也可以具有将最佳匹配描述为具有在中灰或较浅的范围内的最深颜色的环境中的对象的数据。

根据实施方式,作为方法200的操作214的一部分,数字岛可以被复制并且与来自环境的不只一个数据集合相匹配(例如,环境内的若干不同类型的桌子可以满足用于数字岛的条件)。基于与用于数字岛的条件匹配的来自环境的不只一个数据集合,可以将数字岛的唯一副本(例如,拷贝)与每个数据集合匹配。根据实施方式,模糊逻辑可以应用于数字岛的条件以允许数字岛与大的数据集合匹配。

虽然在框图中示出为经由不同的数据信号连接彼此通信的离散部件的组,但是本领域技术人员将理解,优选实施方式是由硬件部件和软件部件的组合提供的,其中一些部件通过硬件系统或软件系统的给定功能或操作来实现,并且示出的许多数据路径通过计算机应用或操作系统内的数据通信来实现。因此,所示出的结构是出于教导本优选实施方式的效率而提供的。

应当注意的是,本公开内容可以作为方法来执行,可以在系统、计算机可读介质或者电子或电磁信号中实施。上面所描述并在附图中示出的实施方式仅旨在是示例性的。对于本领域技术人员而言将明显的是,可以在不脱离本公开内容的情况下进行修改。这样的修改被认为是可能的变型,并且处于本公开内容的范围内。

本文中某些实施方式被描述为包括逻辑或多个部件、模块或机构。模块可以构成软件模块(例如,在机器可读介质上或在传输信号中实施的代码)或硬件模块。“硬件模块”是能够执行某些操作并且可以以某种物理方式配置或布置的有形单元。在各种示例实施方式中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或更多个硬件模块(例如,处理器或一组处理器)可以由软件(例如,应用或应用部分)配置为操作以执行如本文中描述的某些操作的硬件模块。

在一些实施方式中,硬件模块可以机械地、电子地或以其任何合适的组合来实现。例如,硬件模块可以包括被永久地配置成执行某些操作的专用电路或逻辑电路。例如,硬件模块可以是专用处理器,例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件模块还可以包括由软件临时地配置成执行某些操作的可编程逻辑或电路。例如,硬件模块可以包括包含在通用处理器或者其他可编程处理器内的软件,该软件将处理器转换为专用处理器。应理解的是,可以通过成本和时间考虑来推动在专用且永久地配置的电路中或在临时地配置的电路(例如,由软件进行配置)中机械地实现硬件模块的决策。

因此,短语“硬件模块”应当被理解成包括有形实体,即,被物理构造、永久配置(例如,硬连线)或临时地配置(例如,编程)成以特定方式操作或者执行本文中描述的某些操作的实体。如本文所使用的,“硬件实现的模块”指硬件模块。考虑其中硬件模块被临时地配置(例如,被编程)的实施方式,硬件模块中的每一个无需在任一时刻及时被配置或实例化。例如,在硬件模块包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为各自不同的专用处理器(例如,包括不同的硬件模块)。软件可以将特定的一个或多个处理器相应地配置成例如以在一个时刻构成特定的硬件模块并且在不同的时刻构成不同的硬件模块。

硬件模块可以向其他硬件模块提供信息并且从其他硬件模块接收信息。因此,所描述的硬件模块可以被视为通信地耦接。在同时存在多个硬件模块的情况下,可以通过硬件模块中的两个或更多个硬件模块之间或之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件模块在不同时间处被配置或实例化的实施方式中,可以例如通过将信息存储在多个硬件模块能够访问的存储器结构中并且在该存储器结构中检索信息来实现在这样的硬件模块之间的通信。例如,一个硬件模块可以执行操作,并且将该操作的输出存储在通信地耦接的存储器装置中。然后,其他硬件模块可以在稍后的时间处访问存储器装置,以检索并处理所存储的输出。硬件模块还可以发起与输入或输出装置的通信,并且可以对资源(例如,信息的集合)进行操作。

本文中描述的示例方法的各种操作可以至少部分地由临时地配置(例如,由软件)或永久地配置成执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是被永久地配置,这样的处理器都可以构成处理器实现的模块,所述处理器实现的模块进行操作以执行本文中描述的一个或更多个操作或功能。如本文中使用的,“处理器实现的模块”是指使用一个或更多个处理器实现的硬件模块。

类似地,本文中描述的方法可以至少部分地由处理器实现,其中特定的一个或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或更多个处理器或者处理器实现的模块来执行。此外,一个或更多个处理器还可以操作以支持“云计算”环境中的相关操作的执行或者作为“软件即服务”(SaaS)进行操作。例如,至少一些操作可以由一组计算机(作为包括处理器的机器的示例)来执行,其中这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,应用程序接口(API))来访问。

某些操作的执行可以分布在处理器之间,不是仅驻留在单个机器内,而是部署在许多机器中。在一些示例实施方式中,处理器或处理器实现的模块可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器场内)。在其他示例实施方式中,处理器或处理器实现的模块可以分布在许多地理位置中。

图4是示出示例软件架构702的框图700,该示例软件架构702可以与本文中描述的各种硬件架构结合使用,以提供游戏引擎701和/或MR数字岛系统100的部件。图4是软件架构的非限制性示例,并且应当理解,可以实现许多其他架构以促进本文描述的功能。软件架构702可以在诸如图5的机器800的硬件上执行,机器800除了其他以外还包括处理器810、存储器830和输入/输出(I/O)部件850。代表性硬件层704被示出并且可以表示例如图5的机器800。代表性硬件层704包括具有相关联的可执行指令708的处理单元706。可执行指令708表示软件架构702的可执行指令,包括本文描述的方法、模块等的实现。硬件层704还包括存储器/存储装置710,存储器/存储装置710还包括可执行指令708。硬件层704还可以包括其他硬件712。

在图4的示例架构中,软件架构702可以被概念化为层的堆叠,其中每个层提供特定的功能。例如,软件架构702可以包括例如操作系统714、库716、框架或中间件718、应用720和呈现层744的层。在操作上,应用720和/或层内的其他部件可以通过软件堆叠调用应用编程接口(API)724并接收作为消息726的响应。所示出的层本质上是代表性的,并且并非所有软件架构都具有所有层。例如,一些移动操作系统或专用操作系统可能不提供框架/中间件718,而其他操作系统可能提供这样的层。其他软件架构可以包括附加层或不同层。

操作系统714可以管理硬件资源并且提供公共服务。操作系统714可以包括例如内核728、服务730和驱动器732。内核728可以用作硬件与其他软件层之间的抽象层。例如,内核728可以负责存储器管理、处理器管理(例如,调度)、部件管理、联网、安全设置等。服务730可以针对其他软件层提供其他公共服务。驱动器732可以负责控制底层硬件或与底层硬件对接。例如,根据硬件配置,驱动器732可以包括显示驱动器、摄像机驱动器、

库716可以提供可以由应用720和/或其他部件和/或层使用的共用基础设施。与和底层操作系统714功能(例如,内核728、服务730和/或驱动器732)直接对接相比,库716通常提供允许其他软件模块以更容易的方式执行任务的功能。库816可以包括系统库734(例如,C标准库),该系统库可以提供诸如存储器分配功能、字符串操作函数、数学函数等的功能。另外,库716可以包括API库736,例如媒体库(例如,支持各种媒体格式如MPEG4、H.264、MP3、AAC、AMR、JPG、PNG的呈现和操纵的库)、图形库(例如,可以用于在显示器上呈现2D和3D图形内容的OpenGL框架)、数据库库(例如,可以提供各种关系数据库功能的SQLite)、网络库(例如,可以提供网络浏览功能的WebKit)等。库716还可以包括各种各样的其他库738,以向应用720和其他软件部件/模块提供许多其他API。

框架718(有时也称为中间件)提供可以由应用720和/或其他软件部件/模块使用的更高水平的共用基础设施。例如,框架/中间件718可以提供各种图形用户接口(GUI)功能、高级资源管理、高级位置服务等。框架/中间件718可以提供可以由应用720和/或其他软件部件/模块利用的广范围的其他API,其中一些可以特定于特定操作系统或平台。

应用720包括内置应用740和/或第三方应用742。代表性内置应用740的示例可以包括但不限于:联系人应用、浏览器应用、书籍阅读器应用、位置应用、媒体应用、消息应用和/或游戏应用。第三方应用742可以包括由除了特定平台的供应商以外的实体使用Android

应用720可以使用内置操作系统功能(例如,内核728、服务730和/或驱动器732)、库716或框架/中间件718来创建用户接口,以与系统的用户交互。替选地或另外地,在一些系统中,与用户的交互可以通过诸如呈现层744的呈现层来发生。在这些系统中,应用/模块“逻辑”可以从与用户交互的应用/模块的各方面分离。

一些软件架构使用虚拟机。在图4的示例中,这由虚拟机748示出。虚拟机748创建软件环境,在该软件环境中应用/模块可以像在硬件机器(例如,诸如图5的机器800)上执行一样执行。虚拟机748由主机操作系统(例如,操作系统714)托管,并且通常但并非总是具有虚拟机监控器746,该虚拟机监控器管理虚拟机748的操作以及与主机操作系统(即操作系统714)的对接。软件架构在诸如操作系统(OS)750、库752、框架754、应用756和/或呈现层758的虚拟机748内执行。在虚拟机748内执行的软件架构的这些层可以与先前描述的相应层相同或者可以不同。

图5是示出根据一些示例实施方式的机器800的部件的框图,该机器800的部件被配置成从机器可读介质(例如,机器可读存储介质)读取指令并执行本文讨论的方法中的任意一种或更多种方法。在一些实施方式中,机器110类似于HMD 102。具体地,图5以计算机系统的示例形式示出了机器800的图形表示,在该机器800内可以执行用于使机器800执行本文讨论的方法中的任意一种或更多种方法的指令816(例如,软件、程序、应用、小程序、app或其他可执行代码)。因此,可以使用指令816以实现本文中描述的模块或部件。指令将通用的未编程的机器转变为被编程以按所描述的方式执行所描述和示出的功能的特定机器。在替选实施方式中,机器800操作为独立装置或者可以耦接(例如,联网)至其他机器。在联网部署中,机器800可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器800可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动装置、可穿戴装置(例如,智能手表)、智能家庭装置(例如,智能电器)、其他智能装置、web电器、网络路由器、网络交换机、网路桥接器或者能够顺序地或以其他方式执行指令816的任何机器,该指令816指定要由机器800采取的动作。此外,虽然仅示出了单个机器800,但是术语“机器”还应该被理解为包括单独或联合地执行指令816以执行本文讨论的方法中的任意一种或更多种方法的机器的集合。

机器800可以包括可以被配置成例如经由总线802彼此通信的处理器810、存储器830和输入/输出(I/O)部件850。在示例实施方式中,处理器810(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另外的处理器或其任意合适的组合)可以包括例如可以执行指令816的处理器812和处理器814。术语“处理器”旨在包括可以包含可以同时执行指令的两个或更多个独立处理器(有时称为“核”)的多核处理器。虽然图5示出了多个处理器810,但是机器800可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器或其任意组合。

存储器/存储装置830可以包括诸如主存储器832、静态存储器834或其他存储器的存储器以及存储单元836,两者都能够由处理器810例如经由总线802访问。存储单元836和存储器832、存储器834存储实施本文中描述的方法或功能中的任何一种或更多种的指令816。指令816还可以在其由机器800执行期间,完全地或部分地驻留在存储器832、存储器834内,存储单元836内,处理器810中的至少一个内(例如,在处理器的高速缓冲存储器内)或其任意合适的组合内。因此,存储器832、存储器834、存储单元836和处理器810的存储器是机器可读介质838的示例。

如本文所使用的,“机器可读介质”是指能够临时或永久地存储指令和数据的装置,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪速存储器、光学介质、磁介质、高速缓冲存储器、其他类型的存储装置(例如,可擦除可编程只读存储器(EEPROM))和/或其任意合适的组合。术语“机器可读介质”应被视为包括能够存储指令816的单个介质或多个介质(例如,集中式数据库或分布式数据库或相关联的高速缓冲存储器和服务器)。术语“机器可读介质”还应当被认为包括任何介质或多个介质的组合,该任何介质或多个介质的组合能够存储用于由机器(例如,机器800)执行的指令(例如,指令816),使得该指令在由机器800的一个或更多个处理器(例如,处理器810)执行时使机器800执行本文中描述的方法的任意一种或更多种。因此,“机器可读介质”是指单个存储设备或装置,以及包括多个存储设备或装置的“基于云”的存储系统或存储网络。术语“机器可读介质”不包括信号本身。

输入/输出(I/O)部件850可以包括用于接收输入、提供输出、产生输出、传送信息、交换信息、捕获测量等的各种各样的部件。包括在特定机器中的特定输入/输出(I/O)部件850将取决于机器的类型。例如,诸如移动电话的便携式机器将很可能包括触摸输入装置或其他这样的输入机构,而无终端服务器(headless server)机器将很可能不包括这样的触摸输入装置。应当理解,输入/输出(I/O)部件850可以包括图5中未示出的许多其他部件。根据功能对输入/输出(I/O)部件850进行分组仅是为了简化以下讨论,并且该分组决不是限制性的。在各种示例实施方式中,输入/输出(I/O)部件850可以包括输出部件852和输入部件854。输出部件852可以包括视觉部件(例如,诸如等离子显示板(PDP)的显示器、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT))、声学部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件854可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。

在另外的示例实施方式中,输入/输出(I/O)部件850可以包括生物部件856、运动部件858、环境部件860或方位部件862以及各种其他部件。例如,生物部件856可以包括用于检测表达(例如,手表达、面部表达、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑电波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件858可以包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件860可以包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,用于检测危险气体的浓度以确保安全或测量大气中的污染物的气体检测传感器)、或者可以提供对应于周围物理环境的指示、测量或信号的其他部件。方位部件862可以包括位置传感器部件(例如,全球定位系统(GPS)接收器部件)、高度传感器部件(例如,检测可以从其得到高度的气压的高度计或气压计)、方向传感器部件(例如,磁力计)等。

可以使用各种各样的技术来实现通信。输入/输出(I/O)部件850可以包括通信部件864,通信部件864能够操作成分别经由耦合882和耦合872将机器800耦接至网络880或装置870。例如,通信部件864可以包括网络接口部件或其他合适的装置以与网络880对接。在另外的示例中,通信部件864可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、

此外,通信部件864可以检测标识符或者可以包括能够操作成检测标识符的部件。例如,通信部件864可以包括射频识别(RFID)标签读取器部件、NFC智能标签检测部件、光学读取器部件(例如,用于检测下述内容的光学传感器:一维条形码,例如通用产品代码(UPC)条形码;多维条形码,例如快速响应(QR)码、Aztec码、数据矩阵、数据图示符(Dataglyph)、麦克斯码(MaxiCode)、PDF417、超代码、UCC RSS-2D条形码和其他光学代码)或者声学检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件862获得各种信息,例如,经由因特网协议(IP)地理定位的位置、经由

在整个说明书中,多个实例可以实现被描述为单个实例的部件、操作或结构。尽管一种或更多种方法的个体操作被示出和描述为分立的操作,但是个体操作中的一个或更多个可以同时执行,并且不要求以所示的顺序执行操作。在示例配置中作为独立部件呈现的结构和功能可以被实现为组合的结构或部件。类似地,作为单个部件呈现的结构和功能可以被实现为独立的部件。这些和其他变型、修改、添加以及改进落入本文中的主题的范围内。

对本文所示出的实施方式进行了足够详细地描述,以使得本领域技术人员能够实践所公开的教导。其他实施方式可以被使用并且从中得到,使得可以在不偏离本公开内容的范围的情况下进行结构和逻辑的替代和改变。因此,具体实施方式不以限制性意义而被采用,并且各种实施方式的范围仅由所附权利要求以及这些权利要求所赋予的等同内容的全部范围来限定。

如本文所使用的,术语“或”可以被解释为包含性或排他性意义。此外,可以为本文中描述为单个实例的资源、操作或结构提供多个实例。另外,各种资源、操作、模块、引擎和数据存储之间的边界有些随意,并且特定的操作在特定说明性配置的上下文中示出。功能的其他分配被预见并且可以落入本公开内容的各种实施方式的范围内。通常,在示例配置中呈现为独立资源的结构和功能可以被实现为组合的结构或资源。类似地,呈现为单个资源的结构和功能可以被实现为独立资源。这些和其他变型、修改、添加和改进落入如由所附权利要求书表示的本公开内容的实施方式的范围内。因此,说明书和附图被认为是说明性的而不是限制性意义的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号