在虚拟现实环境中使用预测动作的方法和装置与流程

文档序号:15575248发布日期:2018-09-29 05:23阅读:167来源:国知局

本申请是2016年5月10日提交的美国专利申请no.15/151,169的继续申请,并要求其优先权,该美国专利申请的全部内容通过引用并入本文中。

本申请要求2016年5月10日提交的美国临时专利申请no.62/334,034的优先权权益,该美国临时专利申请的全部内容通过引用并入本文中。

本公开总体上涉及虚拟现实(vr)环境,更具体涉及在vr环境中使用预测动作的方法和装置。



背景技术:

vr环境为用户提供了可以利用来与虚拟对象交互的应用。一些常规vr乐器基于器材的接触方式有声音变化。例如,多快、多大力度、在哪里等。



技术实现要素:

公开了在vr环境中使用预测动作的方法和装置。一种示例方法包括:预测虚拟现实控制器与虚拟乐器的预测的虚拟接触的预测时间;基于预测的虚拟接触的至少一个参数,确定乐器响应于虚拟接触而将发出的虚拟声音的特性;以及在控制器与乐器的虚拟接触的预测时间之前发起产生声音。

示例装置包括处理器和存储指令的非暂时性机器可读存储介质,所述指令在被执行时使得处理器预测虚拟现实控制器与虚拟乐器的预测的虚拟接触的预测时间,基于预测的虚拟接触的至少一个参数确定乐器响应于虚拟接触而将发出的虚拟声音的特性,并且在控制器与乐器的虚拟接触的预测时间发生之前发起产生声音。

一种存储机器可读指令的示例非暂时性机器可读介质,所述机器可读指令在被执行时使得机器至少预测虚拟现实控制器与虚拟乐器的预测的虚拟接触的预测时间,基于预测的虚拟接触的至少一个参数确定乐器响应于虚拟接触而将发出的虚拟声音的特性,并且在控制器与乐器的虚拟接触的预测时间发生之前发起声音的产生。

附图说明

图1是根据本公开的用于创建三维(3d)vr环境并与之交互的示例系统的框图。

图2是示出可以在图1的示例vr环境中使用的示例vr应用的图。

图3是表示可用于基于速度来适配vr对象输出的示例方法的流程图。

图4a和4b依次示出了对鼓的示例击打。

图5a、5b和5c依次示出了对鼓的另一示例击打。

图6是表示可用于预测与vr对象的接触的示例方法的流程图。

图7是示出了可以由这里公开的示例vr应用实现的示例时延的图。

图8是示出可由本文公开的示例vr应用实现的另一示例时延的图。

图9是表示可用于用姿势控制vr对象的示例方法的流程图。

图10a-c依次示出了控制vr对象的示例姿势。

图11a-b依次示出了控制vr对象的另一示例姿势。

图12是表示可用于应用人体工程学参数的示例方法的流程图。

图13a-c依次示出了示例人机工程学调整。

图14a-b依次示出了另一示例人机工程学调整。

图15是可以用于实现这里公开的示例的示例计算机设备和示例移动计算机设备的框图。

具体实施方式

现在将详细参考本公开的非限制性示例,其示例在附图中示出。下面通过参考附图来描述示例,其中相似的附图标记指代相似的元素。当示出相似的附图标记时,不重复对应的描述,并且感兴趣的读者参考先前讨论的图来描述相同的元素。

转到图1,示出了根据本公开教导的,用于创建三维(3d)vr环境并与之交互的示例虚拟现实(vr)系统100的框图。一般而言,系统100提供3dvr环境和vr内容,以供用户使用本文描述的示例来访问、查看和交互。系统100可以向用户提供用于访问内容、应用、虚拟对象(例如鼓102、门把手、桌子等)的选项,以及使用例如眼睛注视和/或vr环境内的移动的vr控件。图1的示例vr系统100包括穿戴头戴式显示器(hmd)110的用户105。这里描述的虚拟接触、交互、声音、器材、对象等是虚拟的,并且将在诸如hmd110的hmd中显示、渲染和/或产生。例如,hmd或通信地耦合到hmd的设备可以预测虚拟现实控制器与虚拟乐器的虚拟接触的预测时间,基于预测的虚拟接触的至少一个参数来确定乐器响应于虚拟接触而将发出的虚拟声音的特性,并且在控制器与乐器的虚拟接触的预测时间之前发起产生声音。以这种方式,虚拟乐器的输出可以看起来更自然,例如,更像它们在非虚拟环境中的输出。例如,虚拟乐器产生的声音在时间上更接近于它们相关联的虚拟接触而发生。

如图1所示,示例vr系统100包括能够通过网络120交换数据的多个计算和/或电子设备。这些设备可以表示客户端或服务器,并且可以经由网络120或任何其它附加和/或替选网络进行通信。示例客户端设备包括但不限于移动设备131(例如智能电话、个人数字助理、便携式媒体播放器等)、电子平板计算机、膝上型计算机或上网本132、相机、hmd110、台式计算机133、vr控制器134、游戏设备、以及能够使用网络120或其它网络与其它计算或电子设备或系统通信或者可以用于访问vr内容或在vr环境中操作的任何其它电子或计算设备。设备110和131-134可以表示客户端或服务器设备。设备110和131-134可以执行客户端操作系统和一个或多个客户端应用,所述客户端应用可以访问、渲染、提供或显示包括在每个相应设备110和131-134中或与其结合的显示设备上的vr内容。

vr系统100可以包括存储可以生成、修改和/或执行vr场景的内容和/或vr软件模块(例如,以vr应用144的形式)的任何数目的vr内容系统140。在一些示例中,设备110和131-134以及vr内容系统140包括可以执行客户端操作系统和一个或多个客户端应用的一个或多个处理器和一个或多个存储器设备。hmd110、其它设备131-133或vr内容系统140可以由图15的示例计算设备p00和p50实现。

vr应用144可以被配置为在设备110和131-134中的任何或全部上执行。hmd设备110可以连接到设备131-134以访问例如vr内容系统140上的vr内容。设备131-134可以(有线或无线地)连接到hmd设备110,该hmd设备110可以提供用于显示的vr内容。用户的vr系统可以是单独的hmd设备110,或者设备131-134和hmd设备110的组合。

图2是可用于实现图1的示例vr应用144的示例vr应用200的示意图。当被执行时,vr应用200可以生成、修改或执行vr场景。示例vr应用200包括但不限于虚拟乐器、文档编辑、家庭事务等应用。hmd110和其它设备131-133可以使用处理器205和存储机器可读指令的相关联的存储器210——诸如参考图15示出和描述——来执行vr应用200。在一些实施方式中,处理器205可以是或可以包括多个处理器,并且存储器210可以是或可以包括多个存储器。

为了确定(例如,检测、跟踪、测量、成像等)控制器在vr环境(例如,图1的vr系统100)中的运动和位置,示例vr应用200包括移动跟踪模块220。在一个非限制性示例中,用户(未示出)可以使用连接到hmd设备110的移动设备131来访问3d虚拟环境中的vr内容。当在vr环境中时,用户可以四处移动和四处看。移动跟踪模块220可以跟踪用户的移动和位置。用户移动可以指示用户如何在vr环境内移动他或她的身体(或表示身体部位的设备,诸如控制器)。图2的示例移动跟踪模块220可以包括六自由度(6dof)控制器。六自由度控制器可以跟踪和记录可用于确定虚拟对象被接触的位置、对象被接触的力度等的移动。附加地或替选地,可以使用一个或多个相机来跟踪位置和移动。在一些示例中,接触是在vr控制器和诸如vr乐器的vr对象之间。示例乐器包括但不限于鼓或其它打击乐器、钢琴、弦乐器、长号等。

为了预测(例如,预期、期望等)移动,图2的示例vr应用200包括预测模块225。图2的示例预测模块225预测未来移动、速度失败的击打(例如,未命中的接触、未发生的接触、擦过等)、力、动量、接触面积、接触位置、接触方向、位置等。例如,当前位置、当前方向和当前速度可用于预测未来位置。例如,未来位置可以预测为:

未来_位置=当前_位置+方向*速度*时间

在一些示例中,位置跟踪可以考虑其它参数,诸如过去预测误差(例如,在不同于预测的点处接触的对象、未命中的对象、以不同于预测的速度接触的对象等)。例如,过去预测误差和过去轨迹信息可以作为误差被聚集,上传到云端的服务器,并用于调适或学习经过改进的预测模型。

为了确定由与对象接触引起的对象的输出,示例vr应用200包括动作输出模块230。动作输出模块230确定并随后为用户渲染对象输出。示例对象输出包括声音、光、光的颜色、对象移动等。

在一些示例中,移动跟踪模块220确定何时已经发生与对象的接触;并且动作输出模块230响应于所确定的接触来确定对象输出,并且发起对象输出的渲染,例如产生声音。

在一些示例中,预测模块225至少部分地基于上述未来位置的预测模型来预测何时预期发生与对象的接触。动作输出模块230响应于预测的接触来确定对象输出,并发起对象输出的渲染,例如产生声音。

在相同或更进一步的示例中,预测模块225确定何时发起渲染对象输出——例如声音的产生——以减少实际虚拟接触时间和用户对对象输出的虚拟接触时间的感知之间的时延。例如,动作输出模块230可以由预测模块225触发,以在预期接触之前的时间发起对象输出的渲染,使得任何时延(例如,处理时延、渲染时延等)仍然允许对象输出在例如接近实际接触时间(或意图的接触时间)时开始。例如,预测模块225可以虑及用于提供对象输出的计算/渲染/处理的预测时间量(其称为预测时延)和/或渲染的系统计算负荷来用于确定何时发起对象输出。预测何时发起对象输出的渲染,以及在预期虚拟接触的时间之前根据预测来发起渲染的技术效果是:可以基本上在虚拟接触时无延迟地及时提供对象输出,使得对响应于虚拟接触的对象输出的用户感知更加自然,特别是在乐器vr应用的场境(context)中和/或当渲染对象输出需要不可忽略的时间量时。

为了确定时延——诸如预测时延,图2的示例vr应用200包括时延跟踪模块235。示例时延跟踪模块235跟踪从发起对象输出时到开始渲染对象输出时的时间。可用于跟踪时延的示例算法和/或方法包括平均值、窗口化平均值、移动平均值、指数平均值等。诸如系统处理负荷、系统处理时间、排队、传输延迟等因素可能影响时延。

为了检测姿势,图2的示例vr应用200包括姿势控制模块240。示例姿势控制模块240使用由移动跟踪模块220提供的跟踪和/或记录的移动。可以使用任何数目和/或类型的方法和算法来检测这里公开的姿势。示例姿势包括但不限于投掷(throw)、抛掷(toss)、翻动(flip)、轻击(flick)、抓握(grasp)、拉(pull)、击打(strike)、滑动(slide)、划触(stroke)、位置调整、推(push)、踢(kick)、轻扫(swipe)等。姿势可以使用肢体、头部、身体、手指、手、脚等中的一个或多个来执行。可以通过比较姿势的一个或多个参数来确定符合姿势,所述参数例如移动范围、移动速度、移动加速度、移动距离、移动方向等。

在一些示例中,对象可以在一个vr应用(例如,乐器应用)中被定位,并且它们的位置可以被用于该vr应用或另一vr应用中以自动定位vr对象。例如,对象的经过调整的位置(例如鼓、水槽高度等)可用于自动定位,例如,门把手高度、桌子高度、柜台高度等。在这样的示例中,例如有残疾的人可以通过单个高度调整跨多个vr应用设置对象高度。为了共享人机工程学信息,图2的示例vr应用200包括人机工程学模块245和人机工程学参数数据库250。人机工程学模块245使用vr对象的位置来自动地或辅助其它对象的人机工程学放置。

在一些示例中,人机工程学模块245可以基于用户动作来将对象放置或辅助放置在一个位置中。在一些示例中,人机工程学模块245可以基于用户动作来修改对象的位置。例如,如果用户对鼓的击打经常无法达及鼓,则人机工程学模块245可以自动调整落差(theheightofthedrop),使得未来的击打接触到鼓。

图3是示例过程300的流程图,示例过程300可以例如被实现为由诸如图15的示例处理器的一个或多个处理器执行的机器可读指令,以实现这里公开的示例vr应用和系统。图3的示例过程300开始于示例移动跟踪模块220检测与对象的接触(例如,接触、虚拟接触的表示)(图6的框305和线605)(例如,参见图4a和4b),确定接触位置(框310),以及确定接触速度(框315)。动作输出模块230确定由接触位置和速度产生的对象输出(框320)。例如,在图4a-b中,用户405以比图5a-c中更大的速度击打鼓410。因此,在这些示例中,与图4b中的鼓410相关联的输出比图5c中的鼓410更大声。动作输出模块230发起对象输出的渲染(框325),并且控制返回到框305以等待另一次接触(框305)。也可以基于接触而变化的对象输出的其它示例特性包括:渲染的颜色、渲染的颜色的饱和度、声音的声学形状等。

图4a-b、5a-c以及类似地图14a-b是从自vr环境内观看vr环境的第三人的视角示出的。这些图中描绘的人与该第三人一起在这个vr环境中,并且被该第三人看到。

图6是另一示例过程600的流程图,所述过程600可以例如被实现为机器可读指令,其由诸如图15的示例处理器的一个或多个处理器执行以实施这里公开的示例vr应用和系统。图6的示例过程600以例如vr控制器的示例移动跟踪模块220的运动开始(框605)。移动跟踪模块220确定当前位置和当前速度(框610)。预测模块225预测接触位置(框615)和接触速度(框620)。

如果确定预测接触的时间已经发生(框630),则动作输出模块230确定接触的对象输出(框630),并发起对象输出的渲染(例如,输出)(框635)。移动跟踪模块220保持在接触发生时的接触的位置和速度(框640)。然后,控制返回到框605以等待附加的移动。

图7和8是分别示出与示例过程300和示例过程600相关联的不同时延的图。在图7和8中,时间向下移动。在图7中,对应于图3,用户705移动(线710)控制器使其与对象715接触。响应于所述接触,vr应用720处理所述接触以确定适当的对象输出(框725),并发起为用户渲染对象输出,例如产生声音(线730)。在图7中,在接触时间和开始渲染对象输出之间存在时延735(线730)。

与图7相比,图8(对应于图6)示出了更少的时延805,因为vr应用720预测(框810)将发生接触的预测时间,并且在发生接触的时间之前发起对象输出的渲染,例如产生声音(线730)。这样,声音可以在较短或没有时延的情况下到达用户,从而减少分心并增加用户满意度。

因为预测仅发生在移动710的一部分(例如75%)上,所以在该部分的末端和实际接触之间有时间来预先发起声音的输出。通过能够比实际接触更早地发起声音的输出,用户对声音的感知可以更自然地对应于他们对在虚拟接触之后多久应当产生声音的期望。尽管这里关于虚拟接触和声音进行了描述,但是应当理解,它可以与其它类型的虚拟对象一起使用。例如,如果预测开关的切换,则灯的接通和关断可能看起来更自然地由直接使用开关引起。

图9是示例过程900的流程图,示例过程900可以例如被实现为由诸如图15的示例处理器的一个或多个处理器执行以实施这里公开的示例vr应用和系统的机器可读指令。示例过程900使得能够使用控制器的姿势来添加对象、移除对象、定位对象、恢复(例如,撤消、重新开始等)先前的动作(例如,对文档的编辑等)等等。在图9的示例中,姿势通常被分类为三个类别:类别一—添加和定位对象的姿势等;类别二—移除对象或将其置于视野之外的姿势;以及类别三—撤销先前动作的姿势。

图9的示例过程900以姿势控制模块240确定是否检测到来自类别一的姿势开始(框905)。如果检测到来自类别一的创建对象姿势(框905),则创建新对象(框910)。如果检测到来自类别一的定位对象姿势(框905),则根据姿势来改变对象的位置(框915)。

如果检测到类别二姿势(框920),则对象被移除或移出视野(框925)。例如,参见图10a-c,其中使用抛掷或轻击姿势将对象302移出视野。

如果检测到类别三姿势(框930),则恢复最近的动作(框935),并且控制返回到框905。可以恢复的示例动作是最近的编辑、创建空白对象(例如文件)、移除对象中的所有内容等。例如,参见图11a-b,其中使用来回摇动姿势移除使用两个鼓创建的音轨1105的最新近部分。

图12是示例过程1200的流程图,示例过程1200可以例如被实现为由诸如图15的示例处理器的一个或多个处理器执行以实施这里公开的示例vr应用和系统的机器可读指令。示例过程1200开始于人机工程学模块245确定是否正在进行对象的人机工程学调整(例如,改变其位置或高度)(框1205),例如,参见图13a-b中的调整鼓1305的高度和图14a中的调整门把手1405的高度。如果正在进行人体工程学调整(框1205),则将表示调整的参数保存在参数数据库250中(框1210)。

如果对象和/或vr应用被(重新)激活(框1215),则从参数数据库250中调用适用的人体工程学参数(框1220)。例如,调用对象的优选高度。人机工程学模块245自动地将所调用的参数应用于vr应用中的一个对象和/或多个对象(框1225)。例如,图13c中的桌子1310和图14b中的所有旋钮、新创建的鼓等。然后控制返回到框1205。响应于一个人体工程学参数(例如高度)的改变而改变所有旋钮对于那些需要环境调适或辅助设备的人特别有用。

这里公开的元素和接口中的一个或多个可以组合、划分、重新布置、省略、消除和/或以任何其它方式实现。此外,任何公开的元素和接口可以由图15的示例处理器平台p00和p50和/或一个或多个电路、可编程处理器、熔丝、专用集成电路(asic)、可编程逻辑器件(pld)、现场可编程逻辑器件(fpld)和/或现场可编程门阵列(fpga)等来实现。这里公开的任何元素和接口可以例如实现为由一个或多个处理器执行的机器可读指令。可以使用、配置和/或编程处理器、控制器和/或诸如图15所示的那些的任何其它合适的处理设备来执行和/或实行这里公开的示例。例如,这些接口和元素中的任何一个可以在存储在可由例如下面结合图15讨论的处理器、计算机和/或具有处理器的其它机器访问的有形和/或非暂时性计算机可读介质上的程序代码和/或机器可读指令中具体实施。机器可读指令包括例如使得处理器、计算机和/或具有处理器的机器执行一个或多个特定过程的指令。可以改变方法的执行顺序,和/或可以改变、消除、细分或组合所描述的框和/或交互中的一个或多个。另外,它们可以依次执行和/或通过例如单独的处理线程、处理器、设备、离散逻辑、电路等并行执行。

这里公开的示例方法可以例如实现为由一个或多个处理器执行的机器可读指令。处理器、控制器和/或诸如图15所示的任何其它合适的处理设备可以被使用、配置和/或编程以执行和/或实行示例方法。例如,它们可以在存储在诸如下面结合图15讨论的处理器、计算机和/或具有处理器的其它机器可访问的有形和/或非暂时性计算机可读介质上的程序代码和/或机器可读指令中具体实施。机器可读指令包括例如使得处理器、计算机和/或具有处理器的机器执行一个或多个特定过程的指令。可以采用实施示例方法的许多其它方法。例如,可以改变执行顺序,和/或可以改变、消除、细分或组合所描述的框和/或交互中的一个或多个。另外,任何或整个示例方法可以依次执行和/或通过例如单独的处理线程、处理器、设备、离散逻辑、电路等并行地执行。

这里使用的术语“计算机可读介质”明确定义为包括任何类型的计算机可读介质,并且明确排除传播信号。示例计算机可读介质包括但不限于以下中的一个或以下的任何组合:易失性和/或非易失性存储器、易失性和/或非易失性存储器设备、压缩光盘(cd)、数字通用盘(dvd)、只读存储器(rom)、随机存取存储器(ram)、可编程rom(prom)、电子可编程rom(eprom)、电子可擦除prom(eeprom)、光存储盘、光存储设备、磁存储盘、磁存储设备、高速缓存和/或信息在其中存储任何持续时间(例如,扩展的时间段、持久地、短时间、用于临时缓冲、和/或用于高速缓存信息)并且可以由处理器、计算机和/或具有处理器的其它机器访问的任何其它存储介质。

返回图1,hmd设备110可以表示vr头戴装置、眼镜、目镜或能够显示vr内容的任何其它可穿戴设备。在操作中,hmd设备110可以执行vr应用144,该vr应用144可以为用户回放接收到的、经过渲染的和/或经过处理的图像。在一些情况下,vr应用144可以由设备131-134中的一个或多个托管。

在一些示例中,移动设备131可以被放置、定位或以其它方式在hmd设备110内结合实现。移动设备131可以包括可以用作hmd设备110的屏幕的显示设备。移动设备131可以包括用于执行vr应用144的硬件和/或软件。

在一些实施方式中,一个或多个内容服务器(例如,vr内容系统140)和一个或多个计算机可读存储设备可以使用网络120与计算设备110和131-134通信,以向设备110和131-134提供vr内容。

在一些实施方式中,移动设备131可以执行vr应用144并为vr环境提供内容。在一些实施方式中,膝上型计算设备132可以执行vr应用144,并且可以从一个或多个内容服务器(例如,vr内容服务器140)提供内容。一个或多个内容服务器和一个或多个计算机可读存储设备可以使用网络120与移动设备131和/或膝上型计算设备132通信,以提供用于在hmd设备106中显示的内容。

在hmd设备106无线耦合到设备102或设备104的情况下,耦合可以包括使用任何无线通信协议。可以单独使用或组合使用的无线通信协议的非穷举列表包括但不限于的电气和电子工程师协会(ieee)802.x标准系列,即无线局域网(wlan),蓝牙,传输控制协议/因特网协议(tcp/ip)、卫星数据网络、蜂窝数据网络、wi-fi热点、互联网和无线广域网(wwan)。

在hmd设备106电耦合到设备102或104的情况下,可以使用任一端具有用于插入设备102或104中的适当连接器的线缆。可单独或组合使用的有线通信协议的非穷举列表包括但不限于ieee802.3x(以太网)、电力线网络、互联网、同轴线缆数据网络、光纤数据网络、电话网络上的宽带或拨号调制解调器、专用通信网络(例如,专用局域网(lan)、租用线路等)。

线缆两端可以包括通用串行总线(usb)连接器。usb连接器可以是相同的usb型连接器,或者usb连接器各自可以是不同类型的usb连接器。各种类型的usb连接器可以包括但不限于usba型连接器、usbbb型连接器、微型usba型连接器、微型usbb型连接器、微型usbab连接器、usb五针mini-b连接器、usb四针mini-b连接器、usb3.0a型连接器、usb3.0b型连接器、usb3.0microb连接器和usbc型连接器。类似地,电耦合可以包括在任一端具有用于插入hmd设备106和设备102或设备104中的适当连接器的线缆。例如,线缆两端可以包括usb连接器。usb连接器可以是相同的usb型连接器,或者usb连接器可以各自是不同类型的usb连接器。用于将设备102或104耦合到hmd106的线缆的任一端可以固定地连接到设备102或104和/或hmd106。

图15示出了可以与这里描述的技术一起使用的通用计算机设备p00和通用移动计算机设备p50的示例。计算设备p00旨在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、平板计算机、工作站、个人数字助理、电视机、服务器、刀片服务器、大型主机和其它适当的计算设备。计算设备p50旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其它类似的计算设备。这里所示的组件、它们的连接和关系以及它们的功能仅仅是示例性的,而不是意图限制在本文件中描述和/或要求保护的本发明的实施方式。

计算设备p00包括处理器p02、存储器p04、存储设备p06、连接到存储器p04和高速扩展端口p10的高速接口p08以及连接到低速总线p14和存储设备p06的低速接口p12。处理器p02可以是基于半导体的处理器。存储器p04可以是基于半导体的存储器。组件p02、p04、p06、p08、p10和p12中的每一个都使用各种总线互连,并且可以安装在公共母板上或按照需要以其它方式安装。处理器p02可以处理用于在计算设备p00内执行的指令,包括存储在存储器p04中或存储设备p06上的指令,以在外部输入/输出设备(诸如耦合到高速接口p08的显示器p16)上显示gui的图形信息。在其它实施方式中,可以按照需要使用多个处理器和/或多个总线以及多个存储器和多个类型的存储器。此外,可以连接多个计算设备p00,其中每个设备提供必要操作的部分(例如,作为服务器群、刀片服务器组或多处理器系统)。

存储器p04将信息存储在计算设备p00内。在一个实施方式中,存储器p04是一个或多个易失性存储器单元。在另一实施方式中,存储器p04是一个或多个非易失性存储器单元。存储器p04也可以是另一种形式的计算机可读介质,例如磁盘或光盘。

存储设备p06能够为计算设备p00提供大容量存储。在一个实施方式中,存储设备p06可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备;闪存或其它类似的固态存储器设备;或者设备阵列,包括存储区域网络或其它配置中的设备。计算机程序产品可以有形地具体实施在信息载体中。计算机程序产品还可以包含当被执行时实行诸如上述那些的一种或多种方法的指令。信息载体是计算机或机器可读介质,例如存储器p04、存储设备p06或处理器p02上的存储器。

高速控制器p08管理计算设备p00的带宽密集型操作,而低速控制器p12管理较低带宽密集型操作。这样的功能分配仅是示例性的。在一个实施方式中,高速控制器p08耦合到存储器p04、显示器p16(例如,通过图形处理器或加速器)以及可接受各种扩展卡(未示出)的高速扩展端口p10。在该实施方式中,低速控制器p12耦合到存储设备p06和低速扩展端口p14。可以包括各种通信端口(例如usb、蓝牙、以太网、无线以太网)的低速扩展端口可以例如耦合到一个或多个输入/输出设备,诸如键盘、指示设备、扫描仪或例如通过网络适配器耦合到诸如交换机或路由器的联网设备。

如图所示,计算设备p00可以以多种不同的形式实现。例如,它可以被实现为标准服务器p20,或者在这样的服务器的群组中被实现多次。它也可以实现为机架服务器系统p24的一部分。此外,它可以在诸如膝上型计算机p22的个人计算机中实现。替选地,来自计算设备p00的组件可以与移动设备(未示出)中的诸如设备p50的其它组件组合。每个这样的设备可以包含计算设备p00、p50中的一个或多个,并且整个系统可以由彼此通信的多个计算设备p00、p50组成。

计算设备p50包括处理器p52、存储器p64、诸如显示器p54的输入/输出设备、通信接口p66和收发器p68等组件。设备p50还可以设置有存储设备,诸如微驱动器或其它设备,以提供额外的存储。组件p50、p52、p64、p54、p66和p68中的每一个都使用各种总线互连,并且组件中的若干组件可以安装在公共母板上或者按照需要以其它方式安装。

处理器p52可以执行计算设备p50内的指令,包括存储在存储器p64中的指令。处理器可以被实现为芯片的芯片组,芯片的芯片组包括分离的和多个模拟和数字处理器。处理器可以提供例如设备p50的其它组件的协调,诸如用户接口、设备p50运行的应用以及设备p50的无线通信的控制。

处理器p52可以通过耦合到显示器p54的控制接口p58和显示接口p56与用户通信。显示器p54可以是例如tftlcd(薄膜晶体管液晶显示器)或oled(有机发光二极管)显示器,或者其它适当的显示技术。显示接口p56可以包括用于驱动显示器p54向用户呈现图形和其它信息的适当电路。控制接口p58可以从用户接收命令并转换它们以提交给处理器p52。此外,可以提供与处理器p52通信的外部接口p62,以便实现设备p50与其它设备的近区通信。外部接口p62例如可以在一些实施方式中提供有线通信,或者在其它实施方式中提供无线通信,并且也可以使用多个接口。

存储器p64将信息存储在计算设备p50内。存储器p64可以实现为一个或多个计算机可读介质、一个或多个易失性存储器单元或一个或多个非易失性存储器单元中的一个或多个。还可以提供扩展存储器p74,并且扩展存储器p74通过扩展接口p72连接到设备p50,扩展接口p72可以包括例如simm(单列存储器模块)卡接口。这样的扩展存储器p74可以为设备p50提供额外的存储空间,或者也可以存储设备p50的应用或其它信息。具体地,扩展存储器p74可以包括用于执行或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器p74可以被提供作为设备p50的安全模块,且可以用允许安全使用设备p50的指令来编程。此外,可以经由simm卡提供安全应用以及附加信息,例如以无法非法侵入的方式将识别信息放置在simm卡上。

存储器可以包括例如闪存和/或nvram存储器,如下所述。在一个实施方式中,计算机程序产品有形地具体实施在信息载体中。所述计算机程序产品包含指令,所述指令当被执行时实行一种或多种方法,诸如上述那些方法。信息载体是计算机或机器可读介质,诸如存储器p64、扩展存储器p74或处理器p52上的存储器,其可以例如通过收发器p68或外部接口p62接收。

设备p50可以通过通信接口p66进行无线通信,通信接口p66必要时可以包括数字信号处理电路。通信接口p66可以提供各种模式或协议下的通信,诸如gsm语音呼叫、sms、ems或mms消息收发、cdma、tdma、pdc、wcdma、cdma2000或gprs等。这样的通信可以例如通过射频收发器p68发生。此外,可以诸如使用蓝牙、wi-fi或其它这样的收发器(未示出)发生短距离通信。此外,gps(全球定位系统)接收器模块p70可以向设备p50提供另外的导航和位置相关无线数据,其可以由设备p50上运行的应用按照需要使用。

设备p50还可以使用音频编解码器p60可听地通信,音频编解码器p60可以从用户接收口述信息并将其转换成可用的数字信息。音频编解码器p60同样可以为用户产生可听声音,诸如通过例如设备p50的手持机中的扬声器。这样的声音可以包括来自语音电话呼叫的声音,可以包括记录的声音(例如,语音消息、音乐文件等),并且还可以包括由在设备p50上操作的应用生成的声音。

计算设备p50可以以多种不同的形式实现,如图所示。例如,它可以实现为蜂窝电话p80。它也可以实现为智能电话p82、个人数字助理或其它类似移动设备的一部分。

这里描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各个实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,所述可编程系统包括至少一个可编程处理器、至少一个输入设备、和至少一个输出设备,所述可编程处理器可以是专用的或通用的,其被耦合成从存储系统接收数据和指令,以及向存储系统传输数据和指令。

这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。这里使用的术语“机器可读介质”“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑器件(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。

为了提供与用户的交互,这里描述的系统和技术可以在具有用于向用户显示信息的显示设备(例如crt(阴极射线管)或lcd(液晶显示器)监视器)以及用户可以通过其向计算机提供输入的键盘和指示设备(例如鼠标或跟踪球)的计算机上实现。也可以使用其它类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。

这里描述的系统和技术可以在计算系统中实现,所述计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过图形用户界面或web浏览器与这里描述的系统和技术的实施方式交互),或者这样的后端、中间件或前端组件的任何组合。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(“lan”)、广域网(“wan”)和因特网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络交互。客户端和服务器的关系是通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生的。

在本说明书和所附权利要求书中,单数形式“一”、“一个”和“所述”不排除复数引用,除非上下文另有明确规定。此外,连词如“和”、“或”、以及“和/或”是包含性的,除非上下文另有明确规定。例如,“a和/或b”包括单独的a、单独的b和a与b。此外,所呈现的各个附图中所示的连接线或连接器旨在表示各种元素之间的示例性功能关系和/或物理或逻辑耦合。应该注意,实际设备中可以存在许多替选或附加的功能关系、物理连接或逻辑连接。此外,除非元素被具体描述为“必要的”或“关键的”,否则没有项目或组件对于这里公开的实施例的实践是必要的。

下面的示例中总结了进一步的实施方式:

示例1:一种方法,包括:预测虚拟现实控制器与虚拟乐器的预测的虚拟接触的预测时间;基于预测的虚拟接触的至少一个参数,确定乐器响应于虚拟接触将发出的虚拟声音的特性;以及在控制器与乐器的虚拟接触的预测时间之前发起产生声音。

示例2:根据示例1的方法,其中,预测的接触的参数包括速度。

示例3:根据示例1或2所述的方法,其中,预测虚拟接触包括使用确定的位置和确定的速度来推测预测的未来位置。

示例4:根据示例3的所述方法,还包括使用捕获的图像和/或对象跟踪中的至少一个来确定位置和/或速度。

示例5:根据示例1至4中的一项所述的方法,还包括:基于发起输出的预测的时延来确定何时发起产生声音。

示例6:根据示例1至5中的一项所述的方法,还包括:基于系统计算负荷来确定何时发起产生声音。

示例7:根据示例1至6中的一项所述的方法,还包括:预测所预测的虚拟接触的至少一个参数,其中,所述至少一个参数包括冲击速度、冲击位置、冲击的失败、动量、力、冲击的方向、冲击的面积、和/或未命中的接触中的至少一个。

示例8:根据示例1至7中的一项所述的方法,还包括:当没有发生接触时,自动调整乐器的位置,使得控制器在另一时间接触乐器。

示例9:根据示例1至8中的一项所述的方法,还包括:确定控制器与乐器的接触的特性;以及基于确定控制器与乐器的接触的特性来预测控制器与乐器的第二虚拟接触。

示例10:根据示例1至9中的一项所述的方法,还包括:确定控制器的姿势;以及响应于确定控制器在乐器上的接触的特性,调整与乐器相关联的位置参数。

示例11:根据示例10所述的方法,其中位置参数包括位置、角度和/或高度中的至少一个。

示例12:根据示例1至11中的一项所述的方法,还包括:确定控制器的姿势;以及响应于所述姿势而从虚拟环境中移除乐器。

示例13:根据示例12所述的方法,其中第二虚拟接触包括投掷、抛掷、翻动、推、踢和/或轻扫中的至少一个。

示例14:根据示例1至13中的一项所述的方法,还包括:确定控制器的姿势;以及响应于所述姿势而向虚拟环境添加第二虚拟乐器。

示例15:根据示例1至14中的一项所述的方法,还包括:确定控制器的姿势;以及响应于所述姿势而重新定位乐器。

示例16:根据示例15所述的方法,还包括应用所重新定位的乐器的位置参数来自动定位另一虚拟对象。

示例17:根据示例16所述的方法,其中另一虚拟对象包括辅助设备。

示例18:一种装置,包括:处理器;以及存储指令的非暂时性机器可读存储介质,所述指令在被执行时使得处理器:预测虚拟现实控制器与虚拟乐器的预测的虚拟接触的预测时间;基于预测的虚拟接触的至少一个参数,确定乐器响应于虚拟接触将发出的虚拟声音的特性;以及在控制器与乐器的虚拟接触的预测时间发生之前发起产生声音。

示例19:示例18的装置,其中,指令在被执行时使得处理器基于预测的时延来附加地确定产生声音的时间。

示例20:一种存储机器可读指令的非暂时性机器可读介质,所述机器可读指令在被执行时使得机器至少:预测虚拟现实控制器与虚拟乐器的预测的虚拟接触的预测时间;基于预测的虚拟接触的至少一个参数,确定乐器响应于虚拟接触而将发出的虚拟声音的特性;以及在控制器与乐器的虚拟接触的预测时间发生之前发起声音的产生。

尽管在此描述了某些示例方法、装置和制品,但是本专利的覆盖范围不限于此。相反,本专利涵盖了完全属于本专利权利要求书范围内的所有方法、装置和制品。

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