虚拟纸张的制作方法

文档序号:22327852发布日期:2020-09-25 17:58阅读:184来源:国知局
虚拟纸张的制作方法

相关申请的交叉引用

本申请要求提交于2019年3月18日的美国临时专利申请62/820,137的权益,该申请据此以引用方式全文并入。

本公开整体涉及多功能设备上的计算机生成现实(cgr)应用。



背景技术:

在先前可用的计算机生成现实(cgr)体验中,通常根据表征用户cgr环境的一组世界坐标来显示2d虚拟内容和立体(或3d)虚拟内容。继而,与2d虚拟内容和立体虚拟内容两者相关联的显示范围和用户交互可能性限于基于表征用户cgr环境的世界坐标组渲染和显示虚拟内容。

附图说明

因此,本公开可被本领域的普通技术人员理解,更详细的描述可参考一些例示性实施方案的方面,其中一些实施方案在附图中示出。

图1a和图1b为根据一些实施方案的操作环境的示例的图示。

图2为根据一些实施方案的示例性控制器的框图。

图3为根据一些实施方案的示例性计算机生成现实(cgr)设备的框图。

图4a至图4o示出了根据一些实施方案的虚拟纸张的示例。

图5a至图5m示出了根据一些实施方案的与在示例性虚拟纸张中的虚拟内容的交互的示例。

图6a和图6b表示根据一些实施方案的用于显示有界表面的方法的流程图。

图7a和图7b表示根据一些实施方案的用于与在有界区域的周边内显示的内容进行交互的方法的流程图。

图8为根据一些实施方案的计算设备的框图。

根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。



技术实现要素:

本文所公开的各种实施方案包括用于将立体虚拟内容和适形虚拟内容混合到虚拟纸张的设备、装置、系统和方法。在各种实施方案中,该方法在包括一个或多个处理器、非暂态存储器以及一个或多个显示器的设备处执行。该方法包括在本机用户计算机生成现实(cgr)环境中显示有界表面,其中基于表征本机用户cgr环境的第一组世界坐标来显示该有界表面。该方法还包括在该有界表面的第一侧的周边内显示第一立体虚拟对象,其中根据第二组世界坐标来显示第一立体虚拟对象,第二组世界坐标不同于表征本机用户cgr环境的第一组世界坐标。

本文所公开的各种实施方案包括用于在虚拟纸张中与虚拟内容进行交互的设备、装置、系统和方法。在各种实施方案中,该方法在包括一个或多个处理器、非暂态存储器以及一个或多个显示器的设备处执行。该方法包括基于第一组世界坐标来显示有界区域,其中在有界区域内的内容包括根据第二组世界坐标显示的立体虚拟对象。该方法还包括接收针对该内容的输入。该方法另外包括根据该输入在有界区域的周边内移动该内容,其中该移动包括根据该输入在有界区域的周边内移动立体虚拟对象;以及根据第二组世界坐标以动画方式显示立体虚拟对象。

在一些实施方案中,设备包括一个或多个处理器、非暂态存储器以及一个或多个程序;该一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且该一个或多个程序包括用于执行或使得执行本文所述方法中的任一种的指令。在一些实施方案中,非暂态计算机可读存储介质中存储有指令,当由设备的一个或多个处理器执行时,这些指令使得该设备执行或使得执行本文所述方法中的任一种。在一些实施方案中,设备包括:一个或多个处理器、非暂态存储器以及用于执行或使得执行本文所述方法中的任一种的装置。

具体实施方式

描述了许多细节以便提供对附图中所示的示例性实施方案的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将理解,其他有效方面和/或变体不包括本文所述的所有具体细节。此外,没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性实施方案的更多相关方面。

与前述可用的计算机生成现实(cgr)系统相比,本文所公开的各种实施方案提供了多维cgr环境。在一些实施方案中,多维cgr环境包括表示为有界表面或有界区域的虚拟纸张的显示。在一些实施方案中,基于表征本机用户cgr环境的第一组世界坐标来显示有界表面。另外,在有界表面内,基于第二组世界坐标来显示立体虚拟内容。在一些实施方案中,适形虚拟内容(例如,在实例的子集中的2d虚拟内容)也显示在有界表面内。根据一些实施方案,适形虚拟内容适形于基于第一组世界坐标的有界表面的轮廓。

例如,当显示3d虚拟内容使得3d虚拟内容被限定在虚拟纸张的周边内时,3d虚拟内容能够从虚拟纸张的第一侧突出,并且基于第二组世界坐标来显示3d虚拟内容。另一方面,2d虚拟内容显示为适形于基于第一组世界坐标的虚拟纸张的表面。在一些实施方案中,与虚拟纸张的第一侧相对的虚拟纸张的第二侧(例如,背面)显示为具有3d虚拟内容的光栅化适形表示(例如,3d虚拟内容的模糊效果或阴影)以及2d虚拟内容的光栅化适形表示。

根据本文所述的实施方案的虚拟纸张不仅改善了cgr环境中虚拟内容的显示方式,而且还改善了cgr环境中虚拟内容的交互方式。例如,当存在相比于可在窗口(或应用程序)窗格内显示的更多的2d内容时,先前可用的显示方法通常显示2d内容的一部分。响应于滚动输入,窗口或应用程序窗格的边界将在边界处剪辑2d内容,使得2d内容的另一部分将显示在边界内。在用于在立体内容内呈现有界区域的cgr环境中,先前可用的系统和方法不提供用于剪辑旨在在有界区域内保持至少部分可见的立体虚拟内容的有效且优雅的方式。

相比之下,本文所公开的各种实施方案将立体(或3d)虚拟内容结合在有界区域的周边内。因此,在一些实施方案中,响应于移动超出有界区域的周边的立体虚拟对象的滚动输入,起初从有界区域的表面突出的立体虚拟对象回缩到有界区域的表面的相对侧。另外,在一些实施方案中,当立体虚拟对象太大而不能适配在本机用户cgr环境内侧时(例如,远洋游轮),立体虚拟对象被放置在由第二组世界坐标表征的有界区域内。将立体虚拟对象放置在有界区域内使得用户随后可透过有界区域的表面看,以便从适当的距离以全尺寸观察立体虚拟对象。

图1a为根据一些实施方案的计算机生成现实(cgr)环境100a的示例的框图。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性实施方案的更多相关方面,未示出各种其他特征。

如本文所述,物理环境是指人们在没有电子系统帮助的情况下能够感测和/或交互的物理世界。物理环境诸如物理公园包括物理物品,诸如物理树木、物理建筑物和物理人。人们能够诸如通过视觉、触觉、听觉、味觉和嗅觉来直接感测物理环境和/或与物理环境交互。相比之下,cgr环境是指人们经由电子系统感测和/或交互的完全或部分模拟的环境。在cgr中,跟踪人的物理运动的一个子集或其表示,并且作为响应,以符合至少一个物理定律的方式调节在cgr环境中模拟的一个或多个虚拟对象的一个或多个特征。例如,cgr系统可以检测人的头部转动,并且作为响应,以与此类视图和声音在物理环境中变化的方式类似的方式调节呈现给人的图形内容和声场。在一些情况下(例如,出于可达性原因),对cgr环境中虚拟对象的特征的调节可以响应于物理运动的表示(例如,声音命令)来进行。

人可以利用其感官中的任一者来感测cgr对象和/或与cgr对象交互,包括视觉、听觉、触觉、味觉和嗅觉。例如,人可以感测音频对象和/或与音频对象交互,该音频对象创建3d或空间音频环境,该3d或空间音频环境提供3d空间中点音频源的感知。又如,音频对象可以使能音频透明度,该音频透明度在有或者没有计算机生成的音频的情况下选择性地引入来自物理环境的环境声音。在某些cgr环境中,人可以感测和/或只与音频对象交互。cgr的示例包括虚拟现实和混合现实。

如本文所用,虚拟现实(vr)环境是指被设计成对于一个或多个感官完全基于计算机生成的感官输入的模拟环境。vr环境包括人可以感测和/或交互的多个虚拟对象。例如,树木、建筑物和代表人的化身的计算机生成的图像是虚拟对象的示例。人可以通过在计算机生成的环境内人的存在的模拟、和/或通过在计算机生成的环境内人的物理运动的一个子组的模拟来感测和/或与vr环境中的虚拟对象交互。

与被设计成完全基于计算机生成的感官输入的vr环境相比,混合现实(mr)环境是指被设计成除了包括计算机生成的感官输入(例如,虚拟对象)之外还引入来自物理环境的感官输入或其表示的模拟环境。在虚拟连续体上,混合现实环境是完全物理环境作为一端和虚拟现实环境作为另一端之间的任何状况,但不包括这两端。

在一些mr环境中,计算机生成的感官输入可以对来自物理环境的感官输入的变化进行响应。另外,用于呈现mr环境的一些电子系统可以跟踪相对于物理环境的位置和/或取向,以使虚拟对象能够与真实对象(即,来自物理环境的物理物品或其表示)交互。例如,系统可以导致运动使得虚拟树木相对于物理地面看起来是静止的。混合现实的示例包括增强现实和增强虚拟。

如本文所用,增强现实(ar)环境是指其中一个或多个虚拟对象叠加在物理环境或物理环境的表示之上的模拟环境。例如,用于呈现ar环境的电子系统可具有透明或半透明显示器,人可以透过该显示器直接查看物理环境。该系统可以被配置成在透明或半透明显示器上呈现虚拟对象,使得人利用该系统感知叠加在物理环境之上的虚拟对象。另选地,系统可以具有不透明显示器和一个或多个成像传感器,成像传感器捕获物理环境的图像或视频,这些图像或视频是物理环境的表示。系统将图像或视频与虚拟对象组合,并在不透明显示器上呈现组合物。人利用系统经由物理环境的图像或视频而间接地查看物理环境,并且感知叠加在物理环境之上的虚拟对象。如本文所用,在不透明显示器上显示的物理环境的视频被称为“透传视频”,意味着系统使用一个或多个图像传感器捕获物理环境的图像,并且在不透明显示器上呈现ar环境时使用那些图像。进一步另选地,系统可以具有投影系统,该投影系统将虚拟对象投射到物理环境中,例如作为全息图或者在物理表面上,使得人利用该系统感知叠加在物理环境之上的虚拟对象。

如本文所用,增强现实环境也是指其中物理环境的表示通过计算机生成的感官信息变换的模拟环境。例如,在提供透传视频中,系统可以对一个或多个传感器图像进行转换以施加与成像传感器所捕获的视角不同的选择视角(例如,视点)。又如,物理环境的表示可以通过图形地修改(例如,放大)其部分而进行转换,使得经修改部分可以是原始捕获图像的代表性的但不是真实的版本。再如,物理环境的表示可以通过以图形方式消除其部分或将其部分进行模糊处理而进行转换。

如本文所用,增强虚拟(av)环境是指其中虚拟环境或计算机生成的环境结合了来自物理环境的一项或多项感官输入的模拟环境。感官输入可以是物理环境的一个或多个特征的表示。例如,av公园可以具有虚拟树木和虚拟建筑物,但人的脸部是从对物理人拍摄的图像逼真再现的。又如,虚拟对象可以采用一个或多个成像传感器所成像的物理物品的形状或颜色。再如,虚拟对象可以采用符合太阳在物理环境中的位置的阴影。

有许多不同类型的电子系统使人能够感测和/或与各种cgr环境交互。示例包括头戴式系统、基于投影的系统、平视显示器(hud)、集成有显示能力的车辆挡风玻璃、集成有显示能力的窗户、被形成为被设计用于放置在人眼睛上的透镜的显示器(例如,类似于隐形眼镜)、耳机/听筒、扬声器阵列、输入系统(例如,具有或没有触觉反馈的可穿戴或手持控制器)、智能电话、平板电脑、和台式/膝上型计算机。头戴式系统可以具有一个或多个扬声器和集成的不透明显示器。另选地,头戴式系统可以被配置成接受外部不透明显示器(例如,智能电话)。头戴式系统可以结合用于捕获物理环境的图像或视频的一个或多个成像传感器、和/或用于捕获物理环境的音频的一个或多个麦克风。头戴式系统可以具有透明或半透明显示器,而不是不透明显示器。透明或半透明显示器可以具有媒介,代表图像的光通过该媒介被引导到人的眼睛。显示器可以利用数字光投影、oled、led、uled、硅基液晶、激光扫描光源或这些技术的任意组合。媒介可以是光学波导、全息图媒介、光学组合器、光学反射器、或它们的任意组合。在一个实施方案中,透明或半透明显示器可被配置成选择性地变得不透明。基于投影的系统可以采用将图形图像投影到人的视网膜上的视网膜投影技术。投影系统也可以被配置成将虚拟对象投影到物理环境中,例如作为全息图或在物理表面上。

为此,作为非限制性示例,cgr环境100a包括控制器102和cgr设备(例如,头戴式设备(hmd))104。在图1的示例中,cgr设备104由用户10佩戴。在一些实施方案中,cgr设备104对应于头戴式设备(hmd)、平板电脑、移动电话、可穿戴计算设备等。在一些实施方案中,cgr设备104被配置为向用户10呈现cgr体验。在一些实施方案中,cgr设备104包括软件、固件和/或硬件的合适组合。

根据一些实施方案,当用户10虚拟地和/或物理地存在于场景106内时,cgr设备104向用户10呈现cgr体验。在一些实施方案中,在呈现cgr体验时,cgr设备104被配置为呈现cgr内容并实现对场景106的视频透传(例如,cgr设备104对应于支持ar的移动电话或平板电脑)。在一些实施方案中,在呈现ar体验时,cgr设备104被配置为呈现ar内容并实现对场景106的光学透视(例如,cgr设备104对应于支持ar的眼镜)。在一些实施方案中,在呈现虚拟现实(vr)体验时,cgr设备104被配置为呈现vr内容并任选地实现场景106的视频透传(例如,cgr设备104对应于支持vr的hmd)。

在一些实施方案中,用户10将cgr设备104佩戴到他/她的头部(例如,如图1所示)。因此,cgr设备104包括被提供用于显示cgr内容的一个或多个显示器。例如,cgr设备104围出了用户10的视场。在一些实施方案中,采用被配置为呈现cgr内容的cgr(例如,ar/vr)室、壳体或房间代替cgr设备104,其中用户10不佩戴cgr设备104。在一些实施方案中,用户10将cgr设备104保持在他/她的一只或两只手中。

在一些实施方案中,控制器102被配置为管理和协调用户10的cgr体验。在一些实施方案中,控制器102包括软件、固件和/或硬件的合适组合。在一些实施方案中,控制器102是相对于场景106处于本地或远程位置的计算设备。例如,控制器102是位于场景106内的本地服务器。在另一个示例中,控制器102是位于场景106之外的远程服务器(例如,云服务器、中央服务器等)。在一些实施方案中,控制器102经由一个或多个有线或无线通信信道(例如,bluetooth、ieee802.11x、ieee802.16x、ieee802.3x等)与cgr设备104通信耦接。在一些实施方案中,控制器102的功能由cgr设备104提供和/或与该cgr设备结合。

如图1a所示,cgr设备104呈现场景106。在一些实施方案中,场景106由控制器102和/或cgr设备104生成。在一些实施方案中,场景106包括虚拟场景,该虚拟场景是真实世界场景的模拟替换。换句话讲,在一些实施方案中,场景106由控制器102和/或cgr设备104模拟。在此类实施方案中,场景106不同于cgr设备104所在的真实世界场景。在一些实施方案中,场景106包括作为真实世界场景的修改版本的增强场景。例如,在一些实施方案中,控制器102和/或cgr设备104修改(例如,增强)cgr设备104所在的真实世界场景以便生成场景106。在一些实施方案中,控制器102和/或cgr设备104通过模拟cgr设备104所在的真实世界场景的副本来生成场景106。在一些实施方案中,控制器102和/或cgr设备104通过从cgr设备104所在的真实世界场景的模拟副本中移除和/或向其中添加物项来生成场景106。

参见图1b,图1b为根据一些实施方案的示例性操作环境100b的图示。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性实施方案的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,操作环境100b包括网络20、计算设备30、真实世界场景40和设备104b。

在图1b的示例中,真实世界场景40包括用户10。在各种实施方案中,设备104b捕获真实世界场景40的一组图像,并且将表示场景106的数据经由网络20传输至计算设备30。在一些实施方案中,设备104b包括控制器102和相机104a。在一些实施方案中,相机104a捕获该组图像,并且控制器102基于该组图像生成表示场景106的数据。在一些实施方案中,表示场景106的数据包括在相机104a的视场中的用户10的身体姿势信息108。

在各种实施方案中,身体姿势信息108指示在相机104a的视场中的用户10的身体姿势。例如,在一些实施方案中,身体姿势信息108指示用户10的关节位置和/或关节取向(例如,肩关节、肘关节、腕关节、骨盆关节、膝关节和踝关节的位置/取向)。在一些实施方案中,身体姿势信息108指示用户10的各种身体部分的位置/取向(例如,头部、躯干、上臂、下臂、大腿和小腿的位置/取向)。

在各种实施方案中,通过网络20传输身体姿势信息108消耗的带宽小于传输由相机104a捕获的图像消耗的带宽。在一些实施方案中,网络资源有限,并且设备104b可访问可用量的带宽。在此类实施方案中,传输身体姿势信息108消耗的带宽小于可用量的带宽,而传输由相机104a捕获的图像消耗的带宽将大于可用量的带宽。在各种实施方案中,传输身体姿势信息108(例如,而不是传输图像),通过例如使用更少的网络资源(例如,通过使用更小的带宽),改善了网络20的可操作性。

在一些实施方案中,计算设备30使用身体姿势信息108来渲染用户10的头像。例如,计算设备30可将身体姿势信息108提供给显示引擎(例如,渲染和显示管线),该显示引擎利用身体姿势信息108以便在虚拟场景中渲染该头像。由于计算设备30采用身体姿势信息108来渲染头像,因此头像的身体姿势相对于用户10在真实世界场景40中的身体姿势处于一定相似度以内。因此,观看虚拟场景中的头像相对于观看真实世界场景40中的图像处于一定的相似度以内。

图2为根据一些实施方案的控制器102的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不使本文所公开的实施方案的更多相关方面晦涩难懂,未示出各种其他特征。出于该目的,作为非限制性示例,在一些实施方案中,控制器102包括一个或多个处理单元202(例如,微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)、图形处理单元(gpu)、中央处理单元(cpu)、处理核心等)、一个或多个输入/输出(i/o)设备206、一个或多个通信接口208(例如,通用串行总线(usb)、firewire、thunderbolt、ieee802.3x、ieee802.11x、ieee802.16x、全球移动通信系统(gsm)、码分多址(cdma)、时分多址(tdma)、全球定位系统(gps)、红外(ir)、bluetooth、zigbee等类型接口)、一个或多个编程(例如,i/o)接口210、存储器220以及用于互连这些部件和各种其他部件的一条或多条通信总线204。

在一些实施方案中,一条或多条通信总线204包括互连和控制系统部件之间的通信的电路。在一些实施方案中,一个或多个i/o设备206包括键盘、鼠标、触控板、操纵杆、一个或多个麦克风、一个或多个扬声器、一个或多个图像传感器、一个或多个显示器等中的至少一种。

存储器220包括高速随机存取存储器,诸如动态随机存取存储器(dram)、静态随机存取存储器(sram)、双倍数据速率随机存取存储器(ddrram)或者其他随机存取固态存储设备。在一些实施方案中,存储器220包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器220任选地包括与一个或多个处理单元202远程定位的一个或多个存储设备。存储器220包括非暂态计算机可读存储介质。在一些实施方案中,存储器220或者存储器220的非暂态计算机可读存储介质存储下述程序、模块和数据结构或者它们的子集,其中包括任选的操作系统230和cgr体验模块240。

操作系统230包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些实施方案中,cgr体验模块240被配置为管理和协调一个或多个用户的单重或多重cgr体验(例如,一个或多个用户的单重cgr体验,或一个或多个用户的相应群组的多重cgr体验)。为此,在各种实施方案中,cgr体验模块240包括数据获取单元242、跟踪单元244、协调单元246和数据传输单元248。

在一些实施方案中,数据获取单元242被配置为从至少cgr设备104获取数据(例如,呈现数据、交互数据、传感器数据、位置数据等)。出于该目的,在各种实施方案中,数据获取单元242包括指令和/或用于指令的逻辑以及启发法和用于启发法的元数据。

在一些实施方案中,跟踪单元244被配置为标绘场景106并且跟踪至少cgr设备104相对于场景106的位置/定位(图1a)。出于该目的,在各种实施方案中,跟踪单元244包括指令和/或用于指令的逻辑以及启发法和用于启发法的元数据。

在一些实施方案中,协调单元246被配置为管理和协调cgr设备104向用户呈现的cgr体验。出于该目的,在各种实施方案中,协调单元246包括指令和/或用于指令的逻辑以及启发法和用于启发法的元数据。

在一些实施方案中,数据传输单元248被配置为向至少cgr设备104传输数据(例如,呈现数据、位置数据等)。出于该目的,在各种实施方案中,数据传输单元248包括指令和/或用于指令的逻辑以及启发法和用于启发法的元数据。

尽管数据获取单元242、跟踪单元244、协调单元246和数据传输单元248被示出为驻留在单个设备(例如,控制器102)上,但应当理解,在其他实施方案中,数据获取单元242、跟踪单元244、协调单元246和数据传输单元248的任何组合可位于独立计算设备中。

此外,图2更多地用作可以存在于特定实施方案中的各种特征的功能描述,与本文所述的实施方案的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图2中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种实施方案中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据实施方案而变化,并且在一些实施方案中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。

图3为根据一些实施方案的cgr设备104(图1a)的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不使本文所公开的实施方案的更多相关方面晦涩难懂,未示出各种其他特征。出于该目的,作为非限制性示例,在一些实施方案中,cgr设备104包括一个或多个处理单元302(例如,微处理器、asic、fpga、gpu、cpu、处理核心等)、一个或多个输入/输出(i/o)设备和传感器306、一个或多个通信接口308(例如,usb、firewire、thunderbolt、ieee802.3x、ieee802.11x、ieee802.16x、gsm、cdma、tdma、gps、ir、bluetooth、zigbee等类型的接口)、一个或多个编程(例如,i/o)接口310、一个或多个cgr显示器312、一个或多个面向内部和/或面向外部的图像传感器314、存储器320以及用于互连这些部件和各种其他部件的一条或多条通信总线304。

在一些实施方案中,一条或多条通信总线304包括互连和控制系统部件之间的通信的电路。在一些实施方案中,一个或多个i/o设备和传感器306包括惯性测量单元(imu)、加速度计、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测仪、心率监测仪、血氧传感器、血糖传感器等)、一个或多个麦克风307a、一个或多个扬声器307b(例如,耳机或扩音器)、触觉引擎、一个或多个深度传感器(例如,结构光、飞行时间等)等中的至少一者。

在一些实施方案中,一个或多个cgr显示器312被配置为向用户提供cgr体验。在一些实施方案中,一个或多个cgr显示器312对应于全息、数字光处理(dlp)、液晶显示器(lcd)、硅基液晶(lcos)、有机发光场效应晶体管(olet)、有机发光二极管(oled)、表面传导电子发射显示器(sed)、场发射显示器(fed)、量子点发光二极管(qd-led)、微机电系统(mems)等显示器类型。在一些实施方案中,一个或多个cgr显示器312对应于衍射显示器、反射显示器、偏振显示器、全息波导显示器等。例如,cgr设备104包括单个cgr显示器。在另一个示例中,cgr设备104包括针对用户的每只眼睛的cgr显示器。在一些实施方案中,一个或多个cgr显示器312能够呈现cgr内容。

在一些实施方案中,一个或多个内部的、外部的、朝内的、朝外的、朝向正面的和/或朝向背面的图像传感器314被配置为获取对应于用户面部的至少一部分的图像数据,其中用户面部的至少一部分包括用户的眼睛(因而可称为眼睛跟踪相机)。在一些实施方案中,一个或多个内部的、外部的、朝内的、朝外的、朝向正面的和/或朝向背面的图像传感器314被配置成面向前方(或者向外),以便获取对应于当不存在cgr设备104时用户将看到的场景的图像数据(因而可以被称为向外相机)。一个或多个内部的、外部的、朝内的、朝外的、朝向正面的和/或朝向背面的图像传感器314可包括一个或多个rgb相机(例如,具有互补金属氧化物半导体(cmos)图像传感器或电荷耦合器件(ccd)图像传感器)、一个或多个红外(ir)相机以及/或者一个或多个基于事件的相机等。

存储器320包括高速随机存取存储器,诸如dram、sram、ddrram或其他随机存取固态存储器设备。在一些实施方案中,存储器320包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器320任选地包括与一个或多个处理单元302远程定位的一个或多个存储设备。存储器320包括非暂态计算机可读存储介质。在一些实施方案中,存储器320或者存储器320的非暂态计算机可读存储介质存储下述程序、模块和数据结构或者它们的子集,其中包括任选的操作系统330和cgr呈现模块340。

操作系统330包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些实施方案中,cgr呈现模块340被配置为经由一个或多个cgr显示器312向用户呈现cgr内容。出于该目的,在各种实施方案中,cgr呈现模块340包括数据获取单元342、音频/cgr呈现单元344和数据传输单元346。

在一些实施方案中,数据获取单元342被配置为从控制器102(例如,经由一个或多个通信接口308)、一个或多个i/o设备和传感器306或者一个或多个内部的、外部的、朝内的、朝外的、朝向正面的和/或朝向背面的图像传感器314中的一者或多者获取数据(例如,呈现数据、交互数据、传感器数据、位置数据等)。出于该目的,在各种实施方案中,数据获取单元342包括指令和/或用于指令的逻辑以及启发法和用于启发法的元数据。

在一些实施方案中,音频/cgr呈现单元344被配置为经由一个或多个cgr显示器312(以及在各种实施方案中的扬声器307b和/或麦克风307a)呈现音频/cgr体验。出于该目的,在各种实施方案中,音频/cgr呈现单元344包括指令和/或用于指令的逻辑以及启发法和用于启发法的元数据。

在一些实施方案中,数据传输单元346被配置为向至少控制器102传输数据(例如,呈现数据、位置数据等)。出于该目的,在各种实施方案中,数据传输单元346包括指令和/或用于指令的逻辑以及启发法和用于启发法的元数据。

尽管数据获取单元342、音频/cgr呈现单元344和数据传输单元346被示出为驻留在单个设备(例如,cgr设备104)上,但应当理解,在其他实施方案中,数据获取单元342、音频/cgr呈现单元344和数据传输单元346的任何组合可位于独立计算设备中。

此外,图3更多地用作可能存在于特定实施方案中的各种特征的功能描述,与本文所述的实施方案的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图3中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种实施方案中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据实施方案而变化,并且在一些实施方案中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。

图4a示出了根据一些实施方案的cgr环境400的示例,在该cgr环境中显示虚拟纸张405的第一侧(例如,正面)。在一些实施方案中,cgr环境400为本机用户cgr环境。在一些实施方案中,本机用户cgr环境为用户或代表用户的头像所在的cgr环境。例如,cgr环境400包括用户401或代表用户401的头像。因此,图4a中所描绘的场景可以为从用户401或旁观者的角度来看的cgr环境400的视图。

在一些实施方案中,在本机用户cgr环境400内,虚拟纸张405被显示为有界表面,例如,围绕虚拟表面的周边具有边缘或边界的虚拟表面。因此,虚拟纸张405在下文有时也被称为有界表面405。在一些实施方案中,根据表征本机用户cgr环境400的第一组世界坐标来显示有界表面405。在一些实施方案中,表征本机用户cgr环境400的世界坐标系是描绘本机用户cgr环境400的场景的主要坐标系或通用坐标系。例如,在典型笛卡尔坐标系中,世界有一个原点以及x轴线、y轴线和z轴线。在本机用户cgr环境400中,轴线x1、y1和z1分别大致对应于右/左、上/下和前/后,就像用户401或代表用户401的头像位于原点并在原点处对齐一样,如图4a所示。因此,对象在本机用户cgr环境400中的位置可由表征本机用户cgr环境400的世界坐标组来描述,例如(x1,y1,z1)。换句话讲,对象的位置,包括虚拟纸张405,在本机用户cgr环境400中显示,就像从用户401或代表用户401的头像的角度来看一样。

在一些实施方案中,至少一个立体虚拟对象(例如,3d小鸡420、3d球体对象430和/或3d工具箱对象440)在虚拟纸张405的正面的周边内显示。在一些实施方案中,根据一组世界坐标显示至少一个立体虚拟对象420-440,例如,根据世界坐标组(x2,y2,z2)显示3d小鸡420或根据世界坐标组(x3,y3,z3)显示3d工具箱对象440。尽管未在图4a中示出,3d工具箱对象440中的每一个可根据其自身的世界坐标组来显示。

在一些实施方案中,这些世界坐标组(x2,y2,z2)和(x3,y3,z3)与表征本机用户cgr环境400的世界坐标组(x1,y1,z1)不同。因此,如下文将详细描述的,立体虚拟对象420-440中的每一个可根据相应的世界坐标组移动,并且虚拟纸张405和在虚拟纸张405内显示的虚拟对象可根据相应的世界坐标组以动画方式显示。在一些其他实施方案中,世界坐标组(x2,y2,z2)或(x3,y3,z3)与表征本机用户cgr环境400的世界坐标组(x1,y1,z1)相同。换句话讲,这些世界坐标组(x1,y1,z1)、(x2,y2,z2)和/或(x3,y3,z3)为可桥接的或不相交的。

在一些实施方案中,适形虚拟对象,例如2d文本“矩阵”410和示能表示“<”412也显示在虚拟纸张405的周边内。2d文本“矩阵”410和示能表示412被显示为适形于虚拟纸张405的轮廓和/或表面。因为适形虚拟对象410和412适形于由第一组世界坐标(x1,y1,z1)表征的虚拟纸张405的轮廓和/或表面,并且3d小鸡420根据第二组世界坐标(x2,y2,z2)显示,所以这些虚拟对象410、412和420可彼此遮挡。如图4a所示,2d文本“矩阵”410看起来漂浮在虚拟纸张405的正面的表面上,并且3d小鸡420看起来在虚拟纸张405内侧。因此,从用户401的角度来看,2d文本“矩阵”410看起来位于3d小鸡420的前面(例如,覆盖在其上)。因此,2d文本“矩阵”410遮挡了在虚拟纸张405内侧的3d小鸡420的鸡冠的一部分。

在cgr环境400中显示的虚拟纸张405与先前存在的系统中的虚拟纸张不同。当被约束到常规的3d空间时,3d虚拟对象通常显示在纸张的前面(或顶部)。因此,在常规的3d空间中,3d虚拟对象将遮挡在虚拟纸张上的其他内容(例如,文本)。相比之下,如下文将详细描述的,虚拟纸张405可作为从由世界坐标组(x1,y1,z1)表征的本机用户cgr环境400到另一个3d世界(例如,由世界坐标组(x2,y2,z2)表征的3d世界)的入口。因此,将立体虚拟对象420-440插入到虚拟纸张405中并且显示为在虚拟纸张405内侧。这允许立体虚拟对象420-440与相关联的文本(例如,2d文本“矩阵”410或示能表示412)共存以便于阅读,从而提供令人赏心悦目的页面布局。

在一些实施方案中,不同的世界照明照亮不同的虚拟对象。在一些实施方案中,一个光源照亮在虚拟纸张405内和该虚拟纸张内侧(例如,在距虚拟纸张的表面的阈值距离内)的一组虚拟对象,而不同的光源照亮接近虚拟纸张405或位于该虚拟纸张的表面上的虚拟对象。在图4a中,根据第二组世界坐标(x2,y2,z2)在虚拟纸张405内和该虚拟纸张内侧显示的立体虚拟对象3d小鸡420上方的光源导致3d小鸡420下方的阴影422。相比之下,靠近虚拟纸张405的表面(例如,在距虚拟纸张405的表面的阈值距离内)的立体虚拟对象430的下方没有阴影。此外,如立体虚拟对象430的一部分(例如,从虚拟纸张405的表面突出的发光表面)所示,立体虚拟对象430可由在由第一组世界坐标(x1,y1,z1)表征的本机用户cgr环境400中的光源照亮。具体地讲,具有小而强烈的镜面强光的发光表面显示,强光是由来自本机用户cgr环境400中的光源的漫反射导致的。

应当指出的是,图4a示出了世界照明的一个示例。在一些其他实施方案中,在虚拟纸张405内显示的虚拟对象共享同一世界照明。另外,在一些实施方案中,同一光源照亮虚拟纸张405和本机用户cgr环境400两者。在此类实施方案中,同一光源(例如,点光源、聚光灯、定向光、区域光、体积光、环境光等)可根据多个世界坐标提供照明效果。例如,用户401、2d文本“矩阵”410、示能表示412和立体虚拟对象420-440可共享一个世界照明,并且此类照明的效果可根据各种世界坐标而不同。

在一些实施方案中,在图4a中示出的虚拟纸张405具有第二侧,例如背面。图4b示出了根据一些实施方案的虚拟纸张405的背面。在一些实施方案中,虚拟纸张405的背面包括立体虚拟对象的光栅化适形表示。如本领域已知的,光栅化是将图形组件转换成由像素制成的位图图像的过程。如果图形组件是3d对象,则将3d对象转换为对象的2d图像。例如,光栅化在虚拟纸张405的正面上的3d小鸡420(图4a),并且生成并在背面上显示3d小鸡420的2d表示420-b,如图4b所示。同样,还光栅化在虚拟纸张405的正面上的3d球体对象430和3d工具箱对象440-1、440-2、440-3、440-4和440-5(图4a),并且生成并在背面上显示3d内容的2d表示430-b、440-1-b、440-2-b、440-3-b、440-4-b和440-5-b,如图4b所示。

在一些实施方案中,虚拟纸张405是半透明的。在一些实施方案中,使在虚拟纸张405的背面上的光栅化适形表示420-b、430-b、440-1-b、440-2-b、440-3-b、440-4-b和440-5-b模糊。除了使3d内容的光栅化适形表示模糊之外,虚拟纸张405的背面还包括模糊的2d内容,诸如模糊的2d文本“矩阵”410-b和模糊的2d导航示能表示412-b。来自虚拟纸张405的正面的内容的模糊造成了半透明的虚拟纸张405存在于用户401的本机用户cgr环境中的效果,同时仍提示虚拟纸张405的正面上的内容。

在一些实施方案中,可响应于针对虚拟纸张405的输入变换虚拟纸张405的显示。例如,该输入可以为用户对虚拟纸张405进行放置、扭曲、摆动、抛动、转动、翻转、旋转、弯曲、卷曲和/或折叠。在一些实施方案中,响应于接收到输入,虚拟纸张405的轮廓改变。例如,如图4c至图4e所示,虚拟纸张405在从正面转向背面时起皱,例如,虚拟纸张405的轮廓具有曲线。又如,如图4f和图4g所示,虚拟纸张405在被从正面转向背面时扭曲或翘曲。因此,虚拟纸张405的显示从平坦表面变换为弯曲表面,其中弯曲表面的某些部分被弯曲表面的其他部分遮挡。例如,在图4f中,2d文本的一部分被虚拟纸张405的弯曲表面的一部分遮挡。

在一些实施方案中,对虚拟纸张405的输入不限于虚拟纸张405的移动,使得来自用户401的针对虚拟纸张405的输入包括用户401的身体姿势变化。例如,用户401的身体姿势变化可包括用户401为了从不同角度观察虚拟纸张405而步行至虚拟纸张405的背面和/或倾斜cgr设备(例如,图1a中的设备104或移动设备)。在一些实施方案中,通过cgr设备104的i/o设备和传感器306和/或一个或多个通信接口308(图3)获取输入,例如,用户单击按钮或示能表示、用户发出语音命令或通过一个或多个通信接口308从远程设备接收输入。

如图4c至图4g所示,在虚拟纸张405的显示变换期间,响应于虚拟纸张405的轮廓的变换,与虚拟纸张405相关联的虚拟内容的显示也变换。例如,3d小鸡的部分从虚拟纸张405的一侧突出(图4c至图4e),并且3d狗的部分从虚拟纸张405的一侧突出(图4f和图4g),就像响应于虚拟纸张405的摆动而抛动3d小鸡或3d狗一样。此外,虚拟纸张405上的文本也发生变换,例如,在图4c中文本“小鸡”是倾斜的,并且在图4f中3d狗下方的文本段落看起来是弯曲的。下面参考图4h至图4m进一步详细描述这些变换。

转到图4h至图4k,图4h至图4k示出了根据一些实施方案的响应于旋转虚拟纸张405的输入的虚拟纸张405的显示的变换。在图4h中,响应于如由虚线箭头所指示的输入,虚拟纸张405的显示变换并且虚拟纸张的轮廓改变。例如,虚拟纸张405的右竖直边缘看起来较短,并且虚拟纸张405的顶部边缘和底部边缘是倾斜的,就像虚拟纸张405被旋转或摆动远离用户401(未示出)一样。如图4i至图4k所示,当虚拟纸张405进一步围绕竖直轴线450旋转时,虚拟纸张405的右竖直边缘变得越来越短,并且虚拟纸张405的顶部边缘和底部边缘更加倾斜。

除了变换虚拟纸张405的显示之外,在虚拟纸张405的周边内的适形虚拟对象的显示同时变换。尽管适形虚拟对象的显示有所改变,但适形虚拟对象的显示仍适形于虚拟纸张405的显示。例如,在图4a中,适形虚拟对象(例如,2d文本“矩阵”410)被显示为与虚拟纸张405的顶部边缘平行。当虚拟纸张405围绕竖直轴线450旋转时,在图4h至图4k中2d文本“矩阵”410看起来是倾斜的,这与虚拟纸张405的显示一致。

如上文参考图4a所述,虚拟纸张405根据一组世界坐标(x1,y1,z1)来显示,而立体虚拟对象420-440根据不同的世界坐标组来显示。因此,当虚拟纸张405在世界坐标组(x1,y1,z1)中沿竖直轴线450旋转,虚拟纸张405的显示基于世界坐标组(x1,y1,z1)而变换。相比之下,立体虚拟对象的显示基于不同的世界坐标组而变换。

例如,如图4h至图4k所示,在虚拟纸张405旋转的同时,除了被虚拟纸张405带离用户(未示出)的表现之外,3d小鸡420还根据不同的世界坐标组围绕不同的轴线452旋转。此外,如图4k所示,在一些实施方案中,3d虚拟对象420-440的变换包括基于不同的世界坐标组从虚拟纸张405的正面突出3d虚拟对象420-440的至少一部分。例如,当3d小鸡420基于第二组世界坐标(x2,y2,z2)围绕不同的轴线452旋转时,3d小鸡420的喙、头部的一部分和被覆盖在夹克中的翅膀的一部分从虚拟纸张405的正面突出,如图4k所示。同样,3d球体对象430的一部分从虚拟纸张405的正面突出,如图4j和图4k所示。

在一些实施方案中,显示在虚拟纸张405的第一侧的周边内的虚拟对象彼此遮挡。例如,在图4a中,用户401被示出为站在虚拟纸张405的前面。因此,虚拟纸张405显示为从与用户401的用户姿势相关联的近垂直视线来看。从近垂直视线来看,2d文本“矩阵”410看起来在3d小鸡420的前面并且遮挡3d小鸡420的部分。在图4h和图4i中,当虚拟纸张405被显示为从与用户401的用户姿势相关联的近垂直视线看是倾斜的时,2d文本“矩阵”410看起来漂浮在3d小鸡420的顶部上。此外,在图4h和图4i中,尽管3d小鸡420的鸡冠仍被2d文本“矩阵”410遮挡,但当虚拟纸张405围绕竖直轴线450旋转时遮挡减少。在图4j中,当虚拟纸张405进一步旋转时,显示体积区域的斜视图,使得2d文本“矩阵”410不再遮挡3d小鸡420的鸡冠。相反,2d文本“矩阵”410被显示为位于3d小鸡420的鸡冠的一侧上,以显露虚拟纸张405内的虚拟内容。又如图4j所示,在虚拟纸张405内侧的3d小鸡420的其余部分由于遮挡而消失在虚拟纸张405的边界后面。

应当指出的是,在一些实施方案中,响应于接收到输入而执行在图4c至图4k中示出的立体对象变换的显示,例如,响应于用户转动(图4c至图4e)、扭曲(图4f和图4g)或旋转(图4h至图4k)虚拟纸张405而从虚拟纸张405的正面突出3d内容。在一些实施方案中,立体对象可在没有针对虚拟纸张405的用户输入的情况下变换。图4l和图4m示出了根据一些实施方案的在没有用户输入的情况下变换显示在虚拟纸张405的周边内的立体虚拟对象460。

在图4l和图4m中,除了立体虚拟对象460(例如,在网页中显示的3d小鸡460)之外,适形虚拟对象诸如2d文本“小鸡”462和2d文本描述464也显示在虚拟纸张405的周边内。在图4l和图4m中,在没有针对虚拟纸张405的用户输入的情况下,不存在虚拟纸张405和/或适形虚拟对象462和464的变换。当虚拟纸张405保持静止时,3d小鸡460以动画方式显示,例如,图4l中的3d小鸡460的头部位置与图4m中的3d小鸡460的头部位置不同。在其他世界中,3d小鸡460的显示基于其自身的世界坐标组(例如,参考图4a所描述的第二组世界坐标(x2,y2,z2))变换,第二组世界坐标不同于虚拟纸张405以及适形虚拟对象462和464所基于的第一组世界坐标。

转到图4n和图4o,图4n和图4o示出了根据一些实施方案的作为在本机用户cgr环境400中的入口的虚拟纸张405。如上所述,在图4a中,根据第二组世界坐标(x2,y2,z2)在虚拟纸张405的第一侧的周边内显示立体对象420。进一步参考图4a如上所述,根据表征本机用户cgr环境400的第一组世界坐标(x1,y1,z1)显示虚拟纸张405。在一些实施方案中,虚拟纸张405为入口。

例如,在图4n中,可将3d小鸡420移出虚拟纸张405的周边并放置到本机用户cgr环境400中。一旦被放置在本机用户cgr环境中,则3d小鸡420根据第一组世界坐标(x1,y1,z1)来显示。此外,在进入本机用户cgr环境时,在本机用户cgr环境中的用户401或代表用户401的头像可与3d小鸡420进行交互,例如,涂绘鸡冠和/或喙等。

又如,在图4o中,用户401或代表用户401的头像可移动到有界表面405的周边内,例如,通过用户输入诸如进入由虚拟纸张405代表的入口的命令或指示用户405进入虚拟纸张405的正面的周边的用户姿势变化。在一些实施方案中,一旦接收到此类指示从第一组世界坐标(x1,y1,z1)到第二组世界坐标(x2,y2,z2)的观察坐标的变化的用户输入,则调节在虚拟纸张405中的立体虚拟对象。例如,可基于第二组世界坐标(x2,y2,z2)来调节3d小鸡420的尺寸或3d小鸡420与用户401或代表用户401的头像的距离以适应3d小鸡420的观察。

图5a至图5m示出了根据一些实施方案的与在虚拟纸张505中的虚拟内容的交互。在一些实施方案中,虚拟纸张505为由围绕区域周边的边缘或边界标记的有界区域,该有界区域可为平坦的或体积的(例如,具有平坦或弯曲表面的区域)。因此,虚拟纸张505在下文中有时也被称为有界区域505。在一些实施方案中,基于第一组世界坐标,例如,表征本机用户cgr环境的一组世界坐标(x1,y1,z1)来显示有界区域505。在一些实施方案中,有界区域505包括在有界区域505的第一侧(例如,正面)的周边内的适形虚拟对象(例如,2d文本“恐龙切割器”522)。在一些实施方案中,在有界区域505内的虚拟内容(下文也称为“内容”)还包括一个或多个立体虚拟对象。例如,在图5a中,在有界区域505内的内容包括第一立体虚拟对象512-1(例如,大的3d恐龙切割器512-1)和第二立体虚拟对象512-2(例如,小的3d恐龙切割器512-2)。在一些实施方案中,在相对于一个或多个立体虚拟对象512的相对位置处显示适形虚拟对象522,例如,2d文本“恐龙切割器”522位于3d恐龙切割器512的上方根据第一组世界坐标(x1,y1,z1)测得的距离处。如下文将描述的,当适形虚拟对象(2d文本“恐龙切割器”522)响应于用户输入而移动时,在移动期间保持适形虚拟对象(例如,2d文本“恐龙切割器”522)和立体虚拟对象512之间的相对位置。

在一些实施方案中,如上所述,可根据不同的世界坐标组(例如,彼此不同和/或不同于表征本机用户cgr环境的世界坐标组)显示立体虚拟对象512。因此,可基于相应的世界坐标组变换立体虚拟对象512的显示。在图5a中,根据第二组世界坐标(x2,y2,z2)显示大的3d恐龙切割器512-1,并且根据第三组世界坐标(x3,y3,z3)显示小的3d恐龙切割器512-2。因此,在一些实施方案中,大的3d恐龙切割器512-1和小的3d恐龙切割器512-2根据不同的世界坐标组以不同的方向、维度等以动画方式显示。

如图5a中由虚线箭头所指示的,接收到针对有界区域505内的内容的输入,其中该输入在根据第一组世界坐标(x1,y1,z1)的方向上,例如,内容沿着在本机用户cgr环境中的有界区域505内的z1轴线向上滚动。响应于接收到向上滚动的输入,有界区域505的周边内的内容基于第一组世界坐标(x1,y1,z1)向上移动。例如,在示出了向上滚动的结果的图5b中,2d文本“恐龙切割器”522向上移动并从有界区域505消失,并且立体虚拟对象512也根据第一组世界坐标(x1,y1,z1)向上移动更靠近有界区域505的顶部边缘。

除了向上移动内容之外,立体虚拟对象512根据相应的世界坐标组以动画方式显示。例如,图5a示出了当小的3d恐龙切割器512-2在距有界区域505的周边的阈值距离内时,小的3d恐龙切割器512-2看起来变平到和/或回缩至有界区域505的正面的相对侧。此外,变平的小的3d恐龙切割器512-2被有界区域505的底部边缘遮挡。又如,图5b示出了响应于向上滚动,当大的3d恐龙切割器512-1移动更靠近有界区域505的顶部边缘时,大的3d恐龙切割器512-1沿y2轴线旋转,使得其看起来变平到有界区域中,以准备被有界区域505的顶部边缘遮挡。进一步如图5b所示,一旦小的3d恐龙切割器512-2向上移动并且超出距有界区域505的正面的周边的阈值距离,例如,小的3d恐龙切割器512-2向上移动并全部显示在有界区域505内,则小的3d恐龙切割器512-2沿着y3轴线旋转以提供小的3d恐龙切割器512-2的不同角度。因此,小的3d恐龙切割器512-2的一部分从有界区域505的正面突出。

图5c和图5d示出了根据一些实施方案的当有界区域505平放时与在有界区域505的正面的周边内显示的内容进行交互。在一些实施方案中,当有界区域505的显示响应于接收到用户输入而变换时,例如,平放或围绕第一组世界坐标(x1,y1,z1)的x1轴线(未示出)旋转有界区域505,适形虚拟对象522因此变换以便与有界区域505的轮廓变换保持对齐。例如,在图5c中,一旦将有界区域505平放,则2d文本“恐龙切割器”522也平放以便适形于有界区域505的正面。在图5c中,响应于由虚线箭头所指示的滚动输入,2d文本“恐龙切割器”522沿滚动输入的方向移动并且保持相对于立体虚拟对象512的相对位置,如图5d所示。

与适形虚拟对象(例如,2d文本“恐龙切割器”522)的变换不同,立体虚拟对象512根据不同的世界坐标组响应于平放有界区域505的输入而以动画方式显示。在图5c中,3d恐龙切割器512从有界区域505的正面突出,例如,直立或基于相应的世界坐标组旋转。因此,在图5c和图5d中,3d恐龙切割器512成排显示或者就像一个在另一个前面一样,而不是如图5a和5b图所示,显示为一个在另一个上方或顶部上。因此,响应于由虚线箭头所指示的滚动输入,3d恐龙切割器512从前排至后排逐排滚动。

图5d还示出了在一些实施方案中,当小的3d恐龙切割器512-2靠近有界区域505的边缘时,例如,在距有界区域505的周边的阈值距离内时,小的3d恐龙切割器512-2倾斜、塌缩或围绕基于第三组世界坐标(x3,y3,z3)的x3轴线(未示出)旋转。因此,小的3d恐龙切割器512-2朝有界区域505的表面的相对侧回缩,并且小的3d恐龙切割器512-2的一部分被有界区域505的边缘遮挡。

图5e至图5h示出了根据一些实施方案的显示有界区域505的第二侧(例如,背面)。类似于如上文参考图4a至图4o所述的虚拟纸张405,在一些实施方案中,有界区域505具有背面,该背面包括来自正面的立体虚拟对象的光栅化适形表示。例如,在图5e中,来自有界区域的正面的内容包括立体对象520,例如,3d小鸡520。在图5f中,有界区域505的对应背面包括小鸡520-b的模糊图像,该模糊图像对应于显示在正面上的3d小鸡520的光栅化适形表示。

在图5g中,如由虚线箭头所指示,向上滚动的输入针对在有界区域505的第一侧的周边内的内容。响应于接收到向上滚动的输入,如图5f所示,3d小鸡520向上移动,并且另一个立体虚拟对象(例如,网页中的3d狗524)的一部分出现在有界区域505内。尽管未在图5g中示出,当继续向上滚动时,3d狗524将显示在有界区域505的中心。响应于向上滚动的输入,如图5h所示,有界区域505的对应背面包括狗524-b的模糊图像,该模糊图像对应于显示在正面上的3d狗524的光栅化适形表示。

在一些实施方案中,有界区域505的背面上的内容(例如,小鸡520-b的模糊图像(图5f)或狗524-b的模糊图像(图5h)或2d文本的模糊图像)还可响应于接收到输入(例如,向上和/或向下滚动模糊图像)而移动。响应于接收到针对背面上的内容的输入,可相应地移动在有界区域505的正面上的一个或多个对应的立体虚拟对象。另外,如上所述,在移动该一个或多个对应的立体虚拟对象时,该一个或多个对应的立体虚拟对象也可根据相应的世界坐标组以动画方式显示。

图5i示出了根据一些实施方案的在有界区域505内显示大的立体虚拟对象。在一些实施方案中,当立体虚拟对象太大而不能适配在本机用户cgr环境内侧时,立体虚拟对象被放置在有界区域505内。例如,当远洋游轮太大而不能适配在本机用户cgr环境内侧时,远洋游轮可被放置在有界区域505内侧。在图5i中,基于世界坐标(x2,y2,z2)在有界区域505内显示远洋游轮530,并且与有界区域505的尺寸成比例地缩放该远洋游轮。在将远洋游轮530放置在有界区域505内之后,用户401可透过有界区域505看,以便从适当的距离以全尺寸观察远洋游轮530。与上述其他立体虚拟对象类似,显示在有界区域505内侧的远洋游轮530可根据其自身的世界坐标组(x2,y2,z2)以动画方式显示。例如,在图5i中,远洋游轮530可漂浮或启航,使得远洋游轮530的船头(或前端)从有界区域505的正面的表面突出并且由于其以立体方式呈现而变得更靠近用户401。因此,用户401可近距离检查远洋游轮530的船头。

在一些实施方案中,可响应于输入来进一步调节远洋游轮530的特性,例如距离、方向、取向、比例、移动速度等。例如,响应于针对有界区域505的输入,远洋游轮530可在有界区域505内转向。因此,远洋游轮530的船尾(或后部)将更靠近用户401,并且用户可近距离检查远洋游轮530的船尾。一旦用户401完成了对远洋游轮530的检查,则与从有界区域505的表面突出的远洋游轮530的部分对应的来自用户401的输入(例如,发出推动信号的手势)可送远洋游轮530启航入海。

此外,如上文参考图4a所述,在一些实施方案中,不同的世界照明照亮不同的虚拟对象和/或环境的不同部分。例如,根据世界坐标(x2,y2,z2)在有界区域505内和该有界区域内侧显示的立体虚拟对象,远洋游轮530,远洋游轮530上方的太阳光541向远洋游轮530施加阴影。因此,远洋游轮530的阴影和/或反射可出现在远洋游轮530下方的水上。在图5i中,从用户401的角度来看,在远洋游轮530上方和后面的世界照明(例如,太阳光541)导致朝用户401的阴影和/或反射。相比之下,用户401的阴影402指示在本机用户cgr环境中的不同的光源543,例如,根据用于本机用户cgr环境的世界坐标(x1,y1,z1)从用户401的背面投光的光源543。因此,从用户401的角度来看,阴影402位于用户401的前面并远离用户,例如,在远洋游轮530的阴影和/或反射531的相反方向上。另外,在距有界区域505的表面的阈值距离内(例如,在有界区域505的表面上)并靠近本机用户cgr环境显示的适形虚拟对象(例如,文本“远洋游轮”532)可由与远洋游轮530不同的世界照明照亮。因此,不存在朝用户401的文本“远洋游轮”532的阴影。

应当指出的是,图5i示出了世界照明的一个示例。在一些其他实施方案中,在有界区域505内显示的立体虚拟对象和适形虚拟对象共享同一世界照明。此外,在一些实施方案中,同一光源照亮有界区域505内和有界区域505外两者。在此类实施方案中,同一光源(例如,点光源、聚光灯、定向光、区域光、体积光、环境光等)可根据多个世界坐标提供照明。例如,用户401、文本“远洋游轮”532和远洋游轮530可共享一个世界照明,并且此类照明的效果可根据各种世界坐标而不同。

图5j示出了根据一些实施方案的对可视化音频信号的立体虚拟对象进行显示和交互。音频信号难以在常规3d环境中可视化。例如,代表一段音乐的音频信号可能不遵从熟悉的物理量纲或照明隐喻。因此,先前存在的音频系统或电磁波可视化系统和方法通常限于2d表示。根据一些实施方案,利用有界区域505,音频信号可由立体虚拟对象可视化。

例如,在图5j中,立体虚拟对象540-1和立体虚拟对象540-2显示在有界区域505内。在一些实施方案中,立体虚拟对象对应于音频信号的视觉表示。例如,有界区域505包括立体虚拟对象540以便将音乐可视化。与上述其他立体虚拟对象类似,显示在有界区域505内的立体虚拟对象540可根据相应的世界坐标组以动画方式显示。随着音乐的播放,将立体虚拟对象540以动画方式显示以便显示音乐的属性,例如,对应于响亮的铜管乐器演奏立体对象540可变大或变为亮色,或对应于安静而柔和的弦乐器演奏这些立体对象可缩小或变为深色。另外,随着音乐的属性改变,立体虚拟对象540四处移动,例如,从有界区域505的正面突出。因此,通过立体虚拟对象540的音乐可视化为用户401提供多维体验。

另外,在一些实施方案中,响应于输入来调节立体虚拟对象540的属性,例如,尺寸、颜色、动画速度等。例如,用户401可以触摸立体虚拟对象540-1、四处移动它、让它飞起来或者将它拉出有界区域505。在一些实施方案中,立体虚拟对象540与立体虚拟对象所代表的音频信号相关联。因此,对立体虚拟对象540的属性的改变也会改变对应的音频信号。因此,与立体虚拟对象540的交互可变更立体虚拟对象540所代表的对应的音乐。

图5k至图5m示出了根据一些实施方案的与在有界区域505的周边内显示的地图550进行交互。在先前存在的系统中,地图通常具有区域的2d表示或3d表示中的任一个。在图5k中,地图550显示在有界区域505内。类似于先前存在的系统中的地图,地图550是交互式的,例如平移和/或缩放地图550等。然而,不同于先前存在的系统中的地图,地图550可包括立体虚拟对象和非立体虚拟对象(例如,2d文本或2d地图图像)两者。

例如,如图5k所示,在有界区域505的周边内指定子区域552。响应于指定子区域552,如图5l所示,立体虚拟对象560显示在子区域552的周边内。在图5l中,立体虚拟对象560包括例如3d高层建筑560-1和560-3以及3d金字塔560-2。这些立体虚拟对象560代表在子区域552的周边内的地图550的一部分的3d视图,例如,如在地图550上标记的靠近市场街的区域。尽管未在图5l中示出,在一些实施方案中,立体虚拟对象560还可包括3d街道标志、3d交通灯和/或实时路况(例如,移动汽车和/或公共汽车)等。在一些实施方案中,在子区域552的周边外显示适形虚拟对象,例如,显示街道/道路和道路标志的2d地图。因此,立体虚拟对象560和非立体虚拟对象(例如,在有界区域505内的地图的其余部分)共同存在于有界区域505的周边内。

在一些实施方案中,根据表征本机用户cgr环境的世界坐标组来固定在有界区域505内的子区域552的位置。换句话讲,当地图550移动时,在有界区域505内的子区域552的位置保持不变,就像子区域552打开了钉到有界区域505内的位置的窗口一样。因此,子区域552至有界区域505的边缘的距离是固定的。在此类实施方案中,当地图550移动时,地图内容滑入和滑出窗口。在一些实施方案中,滑入到窗口中的内容被转换为对应的立体虚拟内容,并且滑出子区域552的周边的内容被转换为对应的适形虚拟内容。

例如,在图5l中,如虚线箭头所指示,检测到在有界区域505内针对地图550的平移输入。响应于接收到朝有界区域505的右边缘的平移输入,地图550向右移动。因此,将立体虚拟对象560中的至少一些移出子区域552的周边。在一些实施方案中,一旦被移出子区域552的周边,立体虚拟对象560中的至少一些被转换成一个或多个适形虚拟对象,例如,显示靠近市场街区域的街道/道路和道路标志的2d地图。在一些实施方案中,响应于接收到朝有界区域505的右边缘的平移输入,地图550上的另一位置/区域移动到与子区域552相关联的位置,例如,靠近杰克逊街的区域。因此如图5l所示,靠近杰克逊街的2d街道/道路和/或道路标志被转换成对应的3d对象并且被显示在子区域554的周边内,例如,如图5m所示,靠近杰克逊街的小的3d建筑群。

尽管图中未示出,但在一些实施方案中,基于表征本机用户cgr环境的世界坐标组的子区域552的位置与地图550上的内容相关联(或相附接)。例如,在图5l中,子区域552的位置可与靠近市场街的区域相关联。在此类实施方案中,当显示在有界区域505内的内容正在移动(例如,平移或拖动)时,子区域552的位置与在地图550上的相关内容一起移动。因此,显示在子区域522的周边内的立体虚拟对象560与在地图550上的内容的其余部分一起移动。换句话讲,当平移地图550时,指定子区域内的立体虚拟对象560连同地图550的其余部分一起移动。

图6a和图6b示出了根据一些实施方案的用于在有界表面的周边内显示立体虚拟内容的方法600的流程图。在一些实施方案中,方法600由具有一个或多个处理器、非暂态存储器以及一个或多个显示器的设备执行。在一些实施方案中,方法600由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些实施方案中,方法600由执行存储在非暂态计算机可读介质(例如,存储器)中的指令(例如,代码)的处理器和/或控制器(例如,图1a、图1b和图2中的控制器102)执行。简而言之,在一些情况下,方法600包括:在本机用户计算机生成现实(cgr)环境中显示有界表面,其中基于表征本机用户cgr环境的第一组世界坐标来显示有界表面;并且在有界表面的第一侧的周边内显示第一立体虚拟对象,其中根据第二组世界坐标来显示第一立体虚拟对象,第二组世界坐标不同于表征本机用户cgr环境的第一组世界坐标。

在框602中,方法600开始,其中设备在本机用户计算机生成现实(cgr)环境中显示有界表面,其中基于表征本机用户cgr环境的第一组世界坐标来显示有界表面。例如,图4a示出了基于第一组世界坐标((x1,y1,z1)显示有界表面405。图4a还示出了表征用户或代表用户401的头像所在的本机用户cgr环境400的第一组世界坐标(x1,y1,z1)。

在框604中,方法600继续,其中设备在有界表面的第一侧的周边内显示第一立体虚拟对象,其中根据第二组世界坐标来显示第一立体虚拟对象,第二组世界坐标不同于表征本机用户cgr环境的第一组世界坐标。例如,在图4a中,立体虚拟对象420(其为3d小鸡)显示在有界表面405的正面的周边内。另外如图4a所示,当基于第一组世界坐标(x1,y1,z1)显示有界表面405时,根据不同于第一组世界坐标(x1,y1,z1)的第二组世界坐标(x2,y2,z2)显示3d小鸡420。因此,从用户401的角度来看,3d小鸡420看起来显示在有界表面405的正面内侧或后面。

在一些实施方案中,如框610所示,方法600还包括在有界表面的周边内显示适形虚拟对象,其中该适形虚拟对象适形于由第一组世界坐标表征的有界表面的轮廓。在此类实施方案中,如框612所示,方法600还包括响应于变换有界表面的轮廓而同时变换适形虚拟对象的显示。

例如,在图4a中,2d文本“矩阵”410是根据第一组世界坐标(x1,y1,z1)显示在有界表面405的第一侧的周边内的适形虚拟对象。在图4a中,2d文本“矩阵”410平行于有界表面405的顶部边缘并且适形于有界表面405的平坦正面,好像它漂浮在有界表面405的平坦正面上一样。在图4h至图4k中,有界表面405的轮廓响应于旋转输入而变化,例如,有界表面405的轮廓从矩形形状变为梯形形状。因此,2d文本“矩阵”410的形状同时改变以便保持与有界表面405的轮廓变换对齐,例如,2d文本“矩阵”410的视角和形状发生变化以便适形于梯形有界表面405。

又如,在图5g中,2d文本“狗”是显示在有界表面505的正面的周边内并且适形于平坦有界表面505的轮廓的适形虚拟对象。在图4f中,有界表面405的轮廓响应于旋转输入而变化,例如,有界表面405被扭曲并且有界表面405的轮廓是弯曲的。响应于有界表面405的变换,如图4f所示,2d文本“狗”以曲线显示,并且看起来起皱以适形于扭曲的有界表面405。

重新参见图6a,在一些实施方案中,如框620所示,方法600还包括显示有界表面的第二侧,其中有界表面的背面包括第一立体虚拟对象的光栅化适形表示。在此类实施方案中,如框622所示,显示有界表面的第二侧包括根据一些实施方案在有界表面的第二侧上显示第一立体虚拟对象的光栅化适形表示的模糊表示。

例如,图4b、图4e和图4g示出了显示有界表面405的背面。如图4b所示,有界表面405的背面包括来自有界表面405的正面的3d小鸡420的适形表示420-b。因此,有界表面405看起来是半透明的,使得模糊的小鸡图像420-b显示在有界表面405的背面的周边内的有界表面405的背面上。同样,在图4e和图4g中,有界表面405的背面包括来自有界表面405的正面的相应立体虚拟对象的适形(例如,2d)表示。因为当有界表面405变换时(例如,响应于使有界表面405转向的输入),相应立体虚拟对象的适形表示适形于有界表面405,如图4e和图4g所示,背面上的光栅化适形表示同时变换以保持与弯曲的有界表面405对齐。

在一些实施方案中,如框630所示,方法600还包括响应于针对有界表面的输入而变换有界表面的显示以便改变有界表面的轮廓。在此类实施方案中,如框632所示,方法600还包括从用户接收输入,包括检测用户的身体姿势变化。另外,在此类实施方案中,如框634所示,变换有界表面的显示包括基于第一组世界坐标和第二组世界坐标来变换第一立体虚拟对象的显示。

例如,如上文结合图4c至图4k所解释的,该输入可以是用户将有界表面405转向背面。当有界表面405响应于输入而变换时,3d小鸡的头部根据第二组世界坐标(x2,y2,z2)移动,同时被带动与有界表面405的运动一起进行。又如,尽管图中未示出,但输入可为用户在cgr环境400中步行至有界表面405的背面以检查入口的背面。再如,输入可以是用户移动便携式多功能设备以从不同角度看到有界表面405,以便获得如图4j所示的有界表面405的侧面的视图。因此,由设备检测到的用户的身体姿势变化可以是触发有界表面405的转变的输入。例如,身体姿势变化可包括:用户单击按钮来将有界表面405转向;用户扭曲或轻弹有界表面405,用户折叠有界表面405;用户向下推动有界表面405;用户选择3d工具箱对象440;等等。本领域的普通技术人员将会知道,该输入不限于上文所述的身体姿势变化。其他形式的输入诸如语音输入也可用于触发有界表面的变换。另外,在一些实施方案中,在没有用户输入的情况下进行有界表面的变换。

转到图6b,在一些实施方案中,如框640所示,方法600还包括基于第二组世界坐标来变换第一立体虚拟对象的显示。在此类实施方案中,如框642所示,根据一些实施方案,基于第二组世界坐标来变换第一立体虚拟对象的显示包括将第一立体虚拟对象的至少一部分显示为从有界表面的第一侧突出。换句话讲,在一些实施方案中,立体虚拟对象的显示不响应于用户输入而变换。在此类实施方案中,立体虚拟对象的变换可与有界表面的变换和适形虚拟对象的变换不成比例。

例如,在图4l和图4m中,3d小鸡460的头部甚至在有界表面405不移动时也移动。又如,如图4h至图4k所示,3d小鸡420基于第二组世界坐标(x2,y2,z2)围绕轴线452旋转,而有界表面405基于第一组世界坐标(x1,y1,z1)围绕垂直轴线450旋转。又如,如图5c所示,当将有界表面505平放时,3d恐龙切割器512直立并从有界表面505的正面突出。

仍然参见图6b,在一些实施方案中,如框650所示,方法600还包括,在有界表面的周边内显示虚拟对象包括遮挡第一立体虚拟对象的至少部分。在此类实施方案中,如框652所示,方法600还包括显示从与用户姿势相关联的垂直视线看是倾斜的有界表面的第一侧,并且停止将虚拟对象显示为遮挡第一立体虚拟对象的至少部分。例如,在图4a中,有界表面405的前视图示出了与几乎站在有界表面405的前面的用户401相关联的近垂直视线。从近垂直视线的角度来看,在图4a中,有界表面405内的3d小鸡420在漂浮在有界表面405的正面上的2d文本“矩阵”410的后面。因此,2d文本“矩阵”410遮挡了3d小鸡420的鸡冠。相比之下,在如图4j所示的斜视图中,当有界表面405转向某个角度并且有界表面405的正面从垂直视线角度看是倾斜的时,2d文本“矩阵”410不再遮挡3d小鸡420的鸡冠。

在一些实施方案中,如框660所示,方法600还包括将第一立体虚拟对象移动出有界表面的周边并进入本机用户cgr环境,并且响应于进入本机用户cgr环境的第一立体虚拟对象,根据第一组世界坐标显示第一立体虚拟对象。例如,在图4n中,3d小鸡420可被拉到有界表面405的正面的周边之外,并被放置在用户401的前面,例如,如同将3d小鸡420从入口拉出以准备对3d小鸡420进行彩绘一样。通过将3d小鸡420拉到有界表面405的周边之外,3d小鸡420不再根据第二组世界坐标(x2,y2,z2)显示。相反,3d小鸡420根据第一组世界坐标(x1,y1,z1)连同用户401一起被显示和/或以动画方式显示。

在一些实施方案中,如框670所示,方法600还包括接收指示从本机用户cgr环境的第一组世界坐标到有界表面内的第二组世界坐标的观察坐标的变化的用户输入。响应于接收到指示观察坐标的变化的用户输入,还如框670所示,方法600还包括根据第二组世界坐标调节第一立体虚拟对象的显示。例如,在图4o中,用户401可进入有界表面405的周边,或者透过有界表面看,例如,如同穿过入口以便检查3d小鸡420一样。响应于检测到用户输入(例如,身体姿势的变化)指示从第一组世界坐标(x1,y1,z1)到第二组世界坐标(x2,y2,z2)的观察坐标的变化,3d小鸡420的显示变化,例如,3d小鸡420根据第二组世界坐标(x2,y2,z2)移动。在另一个示例中,尽管图中未示出,但是在用户将立体虚拟对象拉出有界表面之后,用户可与立体虚拟对象进行交互(例如,改变或添加颜色、添加领带等),然后将立体虚拟对象放回有界表面的正面的周边中,以查看有界表面中的修改效果。

在一些实施方案中,如框680所示,方法600还包括在有界表面的周边内显示第二立体虚拟对象,其中根据不同于第一组世界坐标和第二组世界坐标的第三组世界坐标显示第二立体虚拟对象。例如,在图4h至图4k中,每个3d工具箱对象440可根据其自己的一组世界坐标旋转。相应3d工具箱对象440的相应组世界坐标可与3d小鸡420所基于的第二组世界坐标(x2,y2,z2)不同。因此,3d小鸡420和3d工具箱对象440可以不同的动画方式显示,例如,围绕不同世界坐标系中的不同轴线旋转。

图7a和图7b表示根据一些实施方案的在有界表面的周边内显示立体虚拟内容的方法700的流程图。在一些实施方案中,方法700由具有一个或多个处理器、非暂态存储器以及一个或多个显示器的设备执行。在一些实施方案中,方法700由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些实施方案中,方法700由执行存储在非暂态计算机可读介质(例如,存储器)中的指令(例如,代码)的处理器和/或控制器(例如,图1a、图1b和图2中的控制器102)执行。简而言之,在一些情况下,方法700包括:基于第一组世界坐标来显示有界区域,其中有界区域内的内容包括根据第二组世界坐标显示的立体虚拟对象;接收针对该内容的输入;以及根据该输入将该内容在有界区域的第一侧的周边内移动,包括根据该输入将立体虚拟对象在有界区域的第一侧的周边内移动;以及根据第二组世界坐标以动画方式显示立体虚拟对象。

在框710,方法700开始,其中设备基于第一组世界坐标来显示有界区域,其中有界区域内的内容包括根据第二组世界坐标显示的立体虚拟对象。例如,在图5a中,有界区域505基于第一组世界坐标(x1,y1,z1)来显示。进一步如图5a所示,有界区域505内显示的内容包括3d恐龙切割器512,其中3d恐龙切割器512根据第二组世界坐标(x2,y2,z2)来显示。

在一些实施方案中,如框712所示,该方法还包括缩放立体虚拟对象以适配在有界区域的第一侧的周边内。例如,如图5i所示的远洋班轮530以全尺寸和适当的距离显示在有界区域505的正面的周边内,以有利于观察。

在框720中,方法700继续,其中设备接收针对内容的输入。例如,输入可以是用户向上和/或向下滚动内容,如图5a、图5g和图5l中的虚线箭头所示。又如,输入可以是用户逐行滚动立体虚拟对象,如图5c中的虚线箭头所示。再如,在图5i所示的远洋班轮示例中,输入可以是用户在有界区域505内侧移动远洋班轮530以查看远洋班轮530的前面或侧面。另如,输入可以是与立体虚拟对象540-1进行交互的用户401,如图5j所示。

仍然参见图7a,在框730中,方法700继续,其中设备根据输入在有界区域的第一侧的周边内移动内容。例如,在图5a和图5b中,响应于向上滚动输入,3d恐龙切割器512根据向上滚动输入的方向向上滚动。又如,在图5c和图5d中,响应于从后向前的逐行滚动输入,将3d恐龙切割器512从后向前移动。

在一些实施方案中,根据输入在有界区域的第一侧的周边内移动内容包括:(a)根据输入将立体虚拟对象在有界区域的第一侧的周边内移动,如框732所示;以及(b)根据第二组世界坐标以动画方式显示立体虚拟对象,如框734所示。例如,在图5b中,小的3d恐龙切割器512-2根据第二组世界坐标(x2,y2,z2)旋转。

在一些实施方案中,如框736所示,根据第二组世界坐标以动画方式显示立体虚拟对象包括:基于第一组世界坐标确定立体虚拟对象距有界区域的第一侧的周边的距离;以及根据确定该距离在阈值内,将立体虚拟对象缩回到有界区域中,并且通过有界区域的第一侧的周边遮挡立体虚拟对象的一部分。例如,当在有界区域505的边缘附近滚动时,图5b中的大的3d恐龙切割器512-1和图5d中的小的3d恐龙切割器512-2在有界区域505内侧折叠。此外,根据遮挡的性质,一旦图5b中的大的3d恐龙切割器512-1和图5d中的小的3d恐龙切割器512-2缩回到有界区域505中,相应立体虚拟对象512的一部分便被有界区域505的正面的周边遮挡。例如,图5b中的大的3d恐龙切割器512-1被有界区域505的顶部边缘遮挡,而图5d中的小的3d恐龙切割器512-2被有界区域505的底部边缘遮挡。

在一些实施方案中,如框738所示,根据第二组世界坐标以动画方式显示立体虚拟对象包括:基于第一组世界坐标确定立体虚拟对象距有界区域的第一侧的周边的距离;并且根据确定该距离大于阈值,将立体虚拟对象的至少一部分显示为从有界区域的第一侧突出。例如,在图5b中,当有界区域505内的内容被向上滚动时,小的3d恐龙切割器512-2旋转并从有界区域505的正面突出。

转到图7b,在一些实施方案中,方法700还包括,如框740所示,显示有界区域的第二侧,其中有界区域的第二侧包括立体虚拟对象的光栅化适形表示。在此类实施方案中,如框742所示,方法700还包括响应于接收到输入来更新有界区域的第二侧的显示。在一些实施方案中,更新有界区域的第二侧的显示还包括:基于第一组世界坐标来移动立体虚拟对象的光栅化适形表示;以及基于以动画方式显示立体虚拟对象来修改立体虚拟对象的光栅化适形表示。

例如,图5e示出了有界区域505的正面,而图5f示出了有界区域505的对应背面。在图5f中,有界表面505的背面包括来自有界区域505的正面的3d小鸡520的光栅化适形表示520-b。在图5g中,当有界区域505的内容被向上滚动时,3d狗524移动到有界区域505中。当3d狗524被进一步向上移动时,如图5h所示,有界区域505背面上的内容被修改,以示出3d狗524的光栅化适形表示524-b。

在一些实施方案中,方法700还包括,如框750所示,指定有界区域内的子区域,其中该子区域包括立体虚拟对象。在此类实施方案中,如框752所示,根据输入在有界区域的周边内移动内容包括:将立体虚拟对象移出子区域的周边;并且根据一些实施方案,根据第一组世界坐标将立体虚拟对象转换为适形虚拟对象,以用于在子区域的周边之外显示。另外,在此类实施方案中,如框754所示,根据输入在有界区域的周边内移动内容包括:将在子区域的周边之外显示的适形虚拟对象在该子区域的周边内侧移动;以及将该适形虚拟对象转换为至少一个立体虚拟对象。

例如,图5k示出了显示在有界区域505以及在有界区域505的正面的周边内的指定子区域552内的地图550。响应于指定子区域552,如图5l所示,立体虚拟对象560显示在子区域552的周边内,例如靠近市场街的区域的3d视图。在子区域552的周边之外,2d地图显示在有界区域505的剩余部分内。随着地图550被平移或拖动,如图5l所示,地图550被更新。例如,在图5m中,靠近市场街的区域的3d视图已被移出子区域522,并且被靠近杰克逊街的区域的3d视图代替。换句话讲,响应于平移或拖动输入,图5l中的子区域522内的3d内容(例如,靠近市场街的区域的3d视图)已被移出子区域522的周边;并且一旦移出子区域522,就将此类内容转换为地图上的2d内容。进一步响应于平移或拖动输入,图5l中的子区域522之外的一些2d内容(例如,杰克逊街附近区域的2d视图)已被移动到子区域522的周边内;并且一旦在子区域522内侧,此类内容就被转换为3d内容。

在一些实施方案中,如框760所示,内容包括适形于有界区域的轮廓的适形虚拟对象。方法700还包括基于第一组世界坐标在相对于立体虚拟对象的相对位置处显示适形虚拟对象。例如,有界区域505内的内容还包括图5a中的2d文本“恐龙切割器”522、立体虚拟对象之间的2d文本(例如,图5g中的3d小鸡520和2d文本“恐龙切割器”522)、图5i中的2d文本“远洋班轮”、图5j中的2d文本“音乐”和/或图5k至图5m中的子区域552之外的2d地图。在此类实施方案中,根据输入在有界区域的第一侧的周边内移动内容包括基于第一组世界坐标沿输入方向移动适形虚拟对象,同时根据一些实施方案保持立体虚拟对象的相对位置。

例如,在图5a中,2d文本“恐龙切割器”522显示在大的3d恐龙切割器512-1上方,并且更靠近有界区域522的顶部边缘。随着内容向上滚动,2d文本“恐龙切割器”522连同3d立体虚拟对象512一起向上移动。如图5b所示,2d文本已被向上移动太多,以至于被有界区域505的边缘剪辑。又如,在图5c中,当有界区域505平放时,2d文本“恐龙切割器”522位于立体虚拟对象512后面的一定距离处。响应于从后向前的滚动,2d文本“恐龙切割器”522与立体虚拟对象512一起沿相同方向移动到更靠近有界区域505的底部边缘,并且2d文本“恐龙切割器”522相对于立体虚拟对象512的位置被保持,例如,2d文本“恐龙切割器”522仍位于大的3d恐龙切割器512-1后面相同的相对距离处。

图8为根据一些实施方案的计算设备800的框图。在一些实施方案中,计算设备800对应于图1a中的设备104的至少一部分,并执行上述功能中的一者或多者。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不使本文所公开的实施方案的更多相关方面晦涩难懂,未示出各种其他特征。为了达到这一目的,作为非限制性示例,在一些实施方案中,计算设备800包括一个或多个处理单元(cpu)802(例如,处理器)、一个或多个输入/输出(i/o)接口803(例如,网络接口、输入设备、输出设备和/或传感器接口)、存储器810、编程接口805,以及用于互连这些部件和各种其他部件的一条或多条通信总线804。

在一些实施方案中,一条或多条通信总线804包括互连和控制系统部件之间的通信的电路。存储器810包括高速随机存取存储器,诸如dram、sram、ddrram或其他随机存取固态存储器设备;并且在一些实施方案中,包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器810任选地包括与一个或多个cpu802远程定位的一个或多个存储设备。存储器810包括非暂态计算机可读存储介质。此外,在一些实施方案中,存储器810或存储器810的非暂态计算机可读存储介质存储以下程序、模块和数据结构或其子集,包括任选的操作系统820、图像捕获控制模块850、图像处理模块852、身体姿势处理模块854、输入处理模块856和cgr内容呈现模块858。在一些实施方案中,一个或多个指令包括在逻辑和非暂态存储器的组合中。操作系统820包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。

在一些实施方案中,图像捕获控制模块850被配置为控制图像传感器或相机组件的功能以捕获图像或获得图像数据,例如,获得用于生成cgr内容的图像数据。为此,图像捕获控制模块850包括一组指令851a以及启发法和元数据851b。

在一些实施方案中,图像处理模块852被配置为预处理来自图像传感器或相机组件的原始图像数据(例如,将raw图像数据转换为rgb或ycbcr图像数据并得出姿势信息等)。为此,图像处理模块852包括一组指令853a以及启发法和元数据853b。

在一些实施方案中,身体姿势处理模块854被配置为处理用户的身体姿势(例如,处理imu数据),例如,用于基于用户的身体姿势或身体运动来生成用户输入。为此,身体姿势处理模块854包括一组指令855a以及启发法和元数据855b。

在一些实施方案中,输入处理模块856被配置为处理用户输入,例如滚动或拖动虚拟纸张上的内容,移动虚拟纸张或步行至虚拟纸张的另一侧。为此,输入处理模块856包括一组指令857a以及启发法和元数据857b。

在一些实施方案中,cgr内容呈现模块858被配置为与其他后处理图像数据一起合成、渲染和/或显示cgr内容项。为此,cgr内容呈现模块858包括一组指令859a以及启发法和元数据859b。

虽然图像捕获控制模块850、图像处理模块852、身体姿势处理模块854、输入处理模块856和cgr内容呈现模块858被示出为驻留在单个计算设备上,但应当理解,在其他实施方案中,图像捕获控制模块850、图像处理模块852、身体姿势处理模块854、输入处理模块856和cgr内容呈现模块858的任何组合可在各种实施方案中驻留在独立的计算设备中。例如,在一些实施方案中,图像捕获控制模块850、图像处理模块852、身体姿势处理模块854、输入处理模块856和cgr内容呈现模块858中的每一个可驻留在独立的计算设备上或云中。

此外,图8更多地用作存在于特定实施方案中的各种特征的功能描述,与本文所述的实施方案的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图8中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种实施方案中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征部将根据实施方案而变化,并且可以部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。

虽然上文描述了在所附权利要求书范围内的实施方案的各个方面,但是应当显而易见的是,上述实施方案的各种特征可通过各种各样的形式体现,并且上述任何特定结构和/或功能仅是例示性的。基于本公开,本领域的技术人员应当理解,本文所述的方面可以独立于任何其他方面来实现,并且这些方面中的两个或更多个可以采用各种方式组合。例如,可以使用本文阐述的任何数量的方面来实现装置和/或可以实践方法。另外,除了本文阐述的一个或多个方面之外或者不同于本文阐述的一个或多个方面,可以使用其他结构和/或功能来实现这样的装置和/或可以实践这样的方法。

还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。

本文中所使用的术语仅仅是为了描述特定实施方案并非旨在对权利要求进行限制。如在本实施方案的描述和所附权利要求中所使用的那样,单数形式的“一个”(“a”、“an”)和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。

如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1