用于虚拟现实系统的输入控制器稳定技术的制作方法

文档序号:17943277发布日期:2019-06-18 23:19阅读:201来源:国知局
用于虚拟现实系统的输入控制器稳定技术的制作方法

本申请要求于2016年11月15日提交的标题为“用于虚拟现实系统的输入控制器稳定技术(inputcontrollerstabilizationtechniquesforvirtualrealitysystems)”的美国专利申请no.62/422,464的优先权,其公开内容通过引用整体地并入在本文中。

这总体上涉及一种增强和/或虚拟现实环境中的输入控制器稳定技术。



背景技术:

增强现实(ar)和/或虚拟现实(vr)系统可以生成三维(3d)沉浸式虚拟环境。用户可以通过与各种电子设备的交互来体验此3d沉浸式虚拟环境,所述各种电子设备诸如例如包括显示器的头盔或其它头戴式设备、用户在查看显示设备时观看的眼镜或护目镜、装配有传感器的手套、包括传感器的外部手持设备、以及其它装置电子设备。一旦在3d虚拟环境中沉浸,用户就可以通过电子设备的物理移动和/或操纵来移动通过虚拟环境,以与虚拟环境交互并且使与虚拟环境的交互个性化。



技术实现要素:

在一个方面中,一种方法可以包括:由计算系统的处理电路接收第一移动数据,所述第一移动数据指示由用户握住的输入控制器在由所述用户占据的物理环境内的第一六自由度(6dof)移动。该方法还可以包括由所述处理电路基于所述输入控制器在所述物理环境内的第一6dof移动产生缩放因子。该方法还可以包括由所述处理电路在接收到所述第一移动数据之后接收第二移动数据,所述第二移动数据指示在时间段内所述输入控制器在所述物理环境的第二6dof移动。该方法还可以包括响应于接收到所述第二移动数据,由所述处理电路执行对象移动操作以产生对象在虚拟环境内的缩放移动,所述对象移动操作包括将所述对象在所述虚拟环境内的与所述第二6dof移动相对应的移动乘以所述缩放因子以产生所述对象在所述虚拟环境内的缩放移动。

在下面的附图和描述中阐述了一个或多个实现方式的细节。其它特征将从说明书和附图中并从权利要求书中显而易见。

附图说明

图1a是图示根据示例实现方式的输入控制器的第一6dof位置的图。

图1b是图示根据示例实现方式的输入控制器的第二6dof位置的图。

图1c是图示根据示例实现方式的示例6dof移动和缩放因子的图。

图2是根据本文中描述的实现方式的包括头戴式显示器和手持电子设备的虚拟现实系统的示例实现方式。

图3a和图3b是示例头戴式显示设备的立体视图,并且图3c图示根据本文中描述的实现方式的示例手持电子设备。

图4a和图4b是根据如这里所描述的实施例的头戴式电子设备和手持电子设备的框图。

图5是图示根据示例实现方式的虚拟现实系统的操作的流程图。

图6a-图6d是图示根据本文中描述的实现方式的增强和/或虚拟现实环境中的用户和/或虚拟特征的移动和缩放的第三人称视图。

图7示出能够用于实现本文中描述的技术的计算机设备和移动计算机设备的示例。

具体实施方式

穿戴例如头戴式显示器(hmd)设备沉浸在增强和/或虚拟现实环境中的用户可以探索虚拟环境(例如,三维(3d)虚拟环境)并且通过各种不同类型的输入来与虚拟环境交互。对虚拟环境的参考能够包括通过虚拟元素增强的物理环境。这些输入可以包括例如物理交互,其包括例如诸如例如经由由电子设备发射的射线或光束和/或基于对电子设备的操纵在虚拟环境中渲染的虚拟光束对与hmd分离开的电子设备(诸如输入控制器)的操纵、电子设备的移动、在电子设备的触敏表面上施加的触摸等,和/或对hmd它本身的操纵、和/或手/手臂手势、头部移动和/或头部和/或眼睛定向凝视等。用户可以实现这些不同类型的交互中的一个或多个以在虚拟环境中执行特定动作,诸如例如,移动通过虚拟环境,以及从虚拟环境的第一区域向虚拟环境的第二区域或者从第一虚拟环境向第二虚拟环境移动、转变或者瞬移。

本文中公开的控制对象在虚拟环境中的移动的技术涉及基于基于由用户握住的输入控制器的先前移动而产生的缩放因子来限定对象在虚拟环境中的移动。沿着这些线,用户沿着六自由度(6dof)移动路径移动输入控制器以产生第一移动数据。基于6dof移动路径,计算系统产生缩放因子,所述缩放因子指示在后续运动中使用的抖动减少的量。因此,响应于接收到指示新的6dof移动路径的第二移动数据,计算系统执行对象移动操作以产生对象在虚拟环境中的缩放移动。

图1a和图1b是图示根据示例实现方式的手持输入控制器的六自由度(6dof)位置的图。例如,用户可以使用手持输入控制器12来执行各种手势或移动以与可以经由hmd被呈现给用户的虚拟环境交互。在使用或者操作输入控制器12的同时,输入控制器12可以随着时间的推移而改变状态,其中输入控制器12的状态可以包括以下各项中的至少一个(或两者):输入控制器12的位置(或定位),其可以通过三维位置坐标(x、y和z坐标)来识别;以及输入控制器12的定向,其可以是输入控制器的定向的角位置(俯仰、偏航、滚动)或方向(例如,输入控制器12正指向哪一个方向)。例如,输入控制器12的定向可以被识别为输入控制器12被指向的单位球体上的点。例如,在时间t1处,输入控制器12可以处于状态1,所述状态1可以包括(x1,y1,z1)的位置和定向1的定向。在时间t2处,输入控制器12已经移动,并且现在处于状态2,所述状态2包括(x2,y2,z2)的位置2和定向2的定向。

在一些情况下,输入控制器12在物理环境10中的相对小移动(例如,小状态变化)可以在虚拟环境中导致大移动或变化,并且在一些情况下导致非故意的移动或变化。例如,用户可以选择或者致动输入控制器12上的按钮或触发器,以从输入控制器12引发或者生成射线,其中射线可以朝向要在虚拟环境中移动的建筑物或其它对象被指向。然而,输入控制器(例如,正在摇动或者稍微不稳定的手)的小(例如,无意)移动可以在虚拟环境中导致可能远离控制器12的射线的末端或建筑物或对象的大移动。输入控制器在物理环境中的这些相对小移动可以与抖动类似或者可以是非故意的移动或摇动。可能期望使输入控制器稳定,例如,通过过滤或者抑制(例如,减少)将在虚拟环境中配准的输入控制器12在物理环境中的至少一些移动。

根据示例实现方式,可以确定缩放因子(或加权因子)。并且,例如,可以基于缩放因子在虚拟环境中配准输入控制器12在物理环境中的移动(或状态变化)的仅一部分。在虚拟环境中配准(例如,在虚拟现实系统或hmd内)输入控制器的移动可以包括例如显示输入控制器12在虚拟环境中的移动或者基于输入控制器12在物理环境中的移动显示虚拟环境中的变化,或者基于输入控制器12在物理环境中的移动处理虚拟环境中的变化。以这种方式,通过在虚拟环境中配准输入控制器12在物理环境中的移动的仅一部分(例如,基于缩放因子),例如,至少对于输入控制器12在物理环境中的一些移动,可以使输入控制器12的移动(或输入控制器12在物理环境中移动的结果)稳定,并且/或者可以减少抖动或输入控制器不稳定性。

根据示例实现方式,可以提供至少一个过滤器,所述过滤器可以用于抑制或者减少在虚拟环境中配准的输入控制器12在物理环境中的移动。根据示例实现方式,过滤器可以包括缩放因子(其也可以被称为加权因子),例如,在0与1之间。根据示例实现方式,可以基于输入控制器12自该输入控制器的初始状态以来在物理环境中的移动的累积量(例如,在状态上的累积变化)来选择或者确定缩放因子。例如,当手势由用户使用输入控制器12来启动时,可以确定输入控制器12的初始状态(例如,包括初始位置和/或初始定向)。当新手势被启动时,另一初始状态被确定。作为说明性示例,例如,当输入控制器12上的输入、按钮、或触发器被选择或者致动时,或者当使用输入控制器的快速或具体移动开始时,可以启动手势。

例如,本文中描述的抑制或稳定技术在活动手势期间可以是活动的,并且可以在已经在手势开始时确定输入控制器12的初始状态之后开始。因此,例如,在用户已经按压触发器或者致动/压下按钮以选择用于拖曳或移动的对象之后,本文中描述的抑制或稳定技术可以是活动的(或在操作中)。因此,一旦用户已经按压触发器(或者做出一些其它选择)以将输入控制器置于拖曳模式(例如)下或者置于其它模式下以便操纵或者控制虚拟环境中的对象,本文中描述的抑制或稳定技术就可以是活动的。当使用输入控制器12来移动或者操纵虚拟环境中的对象时,这还可以提供基于在基于输入控制器在物理环境中的物理移动(例如,基于过滤器或缩放因子的使用)配准虚拟环境中的移动时的时间延迟(或滞后)来模拟被操纵或者拖曳的对象的重量的附加优点。

可以确定输入控制器12在物理环境中的累积移动(或移动的累积量),例如,作为自输入控制器12的初始状态以来已经由输入控制器12在物理环境中发生的移动的量。因此,例如,累积移动可以包括输入控制器12自初始状态以来(例如,自手势启动以来)的累积状态变化。累积移动(或移动的累积量)可以被确定例如作为基于输入控制器12在物理环境中的初始状态和输入控制器12在物理环境中的当前状态的输入控制器在物理环境中的状态的累积变化。例如,在简单示例中,可以通过将输入控制器的当前状态从输入控制器的初始状态减去来确定状态上的累积变化。

在另一说明性示例中,定向上的变化可以被确定为输入控制器12在物理环境中的两个定向(第一定向和第二定向)之间的角度或相位的线性变化。类似地,可以确定输入控制器12在物理环境中的位置上的变化(从第一位置起直到第二位置),例如,作为输入控制器12的两个位置(例如,位置2、位置1)之间的线性距离。因此,例如,如果第一位置是位置1(x1,y1,z1),并且输入控制器12在物理环境中的第二位置是位置2(x2,y2,z2),则可以将输入控制器12的线性距离(位置上的变化)确定为平方的和的平方根:

距离=sqrt((x2-x1)2+(y2-y1)2+(z2-z1)2)。

根据示例实现方式,为了减少抖动或者帮助使输入控制器稳定,可以根据输入控制器12自初始状态以来在物理环境中的6dof移动的(量)而使用不同的缩放因子。例如,当6dof移动小或者小于阈值时可以使用较低的(或较小的)缩放因子,同时当输入控制器12在物理环境中的6dof移动大于阈值时可以使用较高的(或较大的)缩放因子。例如,如果6dof移动小于第一阈值(例如,小于3英寸)则可以使用0.2的缩放因子,而如果6dof移动大于第一阈值则可以使用0.6的缩放因子。可以使用附加阈值和附加缩放因子。这些仅仅是一些说明性示例缩放因子,并且可以使用其它缩放因子。这些是其中缩放因子是固定或静态的静态过滤器或静态缩放因子的一些示例。然而,也可以使用动态过滤器或动态缩放因子,例如,在缩放因子随着6dof移动改变而线性地或非线性地改变(例如,增加)的情况下。

图1c是图示根据示例实现方式的示例过滤器和缩放因子的图。图1c中所示的示例示出了三个过滤器的使用。因此,例如,如图1c的说明性示例中所示,具有固定/静态缩放因子n(例如,0.2)的静态过滤器20被用于输入控制器12在物理环境中小于距离a(例如,8厘米)的累积移动或累积状态变化。动态过滤器22被使用,所述动态过滤器22具有对于输入控制器在距离b和c(例如,8厘米和20厘米)之间的6dof移动在n与m(例如,0.2与0.6)之间变化的线性变化的缩放因子。并且,具有静态/固定缩放因子f(例如,0.6)的静态过滤器24被用于输入控制器在物理环境中的大于c(例如,20厘米)的6dof移动。

以这种方式,对于小移动(诸如输入控制器12在物理环境中的抖动或无意摇动),输入控制器12的移动或状态变化将通常是小的,例如,小于第一阈值(例如,3英寸),其中输入控制器在物理环境中的第一6dof移动的仅20%(基于缩放因子=0.2)将在虚拟环境中被配准。随着6dof移动(例如,输入控制器12自初始状态以来的位置或定向上的变化)增加(例如,现在大于8cm或者大于20cm),那么用于控制器抑制的缩放因子将增加(通过动态过滤器22或静态过滤器24),从而配准输入控制器12的6dof移动的较大量。如所指出的,6dof移动可以是在当前或最近时间段上输入控制器12在物理环境中的6dof位置上的变化(例如,输入控制器12自最后帧已被显示在hmd的显示器上以来在物理环境中的位置变化或定向变化)。

可以例如通过基于输入控制器12在物理环境中的当前6dof位置(例如,当前位置或当前定向)和(或者相对于)输入控制器在物理环境中的先前6dof位置(在先前时间段、先前采样周期、或先前帧期间)确定输入控制器12在物理环境中的6dof位置上的当前变化(例如,位置或定向上的当前变化)来确定输入控制器12的当前6dof位置上的变化。例如,可以通过减去当前和先前6dof位置的两个相对应的位置值(在x、y或z轴上)来确定6dof位置上的当前变化。输入控制器12的6dof位置上的变化可以被确定为输入控制器12自初始6dof位置(例如,其可以是使用输入控制器的手势的开始)以来的6dof位置上的变化,其中初始6dof位置可以在先前6dof位置之前。在手势的开始附近,先前6dof位置和初始6dof位置可以是同一6dof位置。因此,可以例如通过基于输入控制器的初始6dof位置和输入控制器的当前6dof位置来确定输入控制器12在物理环境中的6dof位置上的变化,从而确定6dof移动,并且可以例如基于输入控制器的先前6dof位置和输入控制器的当前6dof位置来确定在状态上的当前移动或当前变化。

根据示例实现方式,缩放因子可以确定有多少的当前移动(例如,在最近或当前时间段上输入控制器12在物理环境中的移动)或6dof位置上的当前变化(例如,输入控制器12的位置上的变化或定向上的变化,诸如输入控制器12自最后帧在hmd上的显示以来的状态上的变化)将在虚拟环境中被配准。在一个示例中,可以将缩放因子乘以物理环境中的6dof位置上的当前变化或当前移动,以确定输入控制器12的将在虚拟环境中配准的6dof位置上的变化的量或移动的量。例如,如果在当前或最近时间段期间(例如,自最后帧以来)输入控制器12已经从x=0向右移动到x=3cm,并且已选择了0.2的缩放因子,则这意味着输入控制器移动=(缩放因子)(位置上的当前变化)=(0.2)(3cm)=虚拟环境中的移动的.6cm。这意味着将在虚拟环境中配准输入控制器在x轴上移动.6cm。

在示例实现方式中,可以通过在输入控制器12的当前6dof位置和先前6dof位置之间执行加权(基于缩放因子)线性插值来确定要在虚拟环境中配准的6dof位置上的变化(例如,位置上的变化或定向上的变化)的量,其中较小的缩放因子意味着所述插值有利于先前状态被更重地加权(从而在虚拟环境中配准自先前状态以来6dof位置上的较少的当前移动或较少的当前变化),其中较大的缩放因子意味着所述内插有利于当前6dof位置被更重地加权(从而在虚拟环境中配准状态上的更多的当前移动或当前变化)。因此,例如,较大的缩放因子可以被用于6dof位置的小累积移动/变化,以从而抑制或者减少在虚拟环境中配准的任何当前移动。另外,随着输入控制器12在物理环境中的6dof位置上的累积移动或累积变化增加,可以例如使用或者选择较大的缩放因子以减少所述抑制,从而允许在虚拟环境中配准6dof位置输入控制器在物理环境中在状态上的更多的当前移动或当前变化。确定输入控制器12的6dof位置上的累积变化、确定输入控制器的6dof位置上的当前变化、确定缩放因子、并且基于所述缩放因子配准6dof位置上的当前移动或当前变化的一部分的过程可以被每帧重复(或者可以针对经由hmd向用户显示的每个帧被重复)。

在图2中所示的示例实现方式中,穿戴hmd100的用户正握住便携式手持电子设备102。手持电子设备102(其也可以被称为输入控制器)可以是例如可以与hmd100配对并与之进行通信以便在由hmd100生成的沉浸式虚拟环境中交互的智能电话、控制器、陀螺仪鼠标、操纵杆、或另一便携式手持电子设备。手持电子设备102可以经由例如有线连接或无线连接(诸如例如wifi或蓝牙连接)与hmd100可操作地耦合或者配对。手持电子设备102和hmd100的这种配对或可操作耦合可以提供用于在手持电子设备102与hmd100之间传送和交换数据,并且可以允许手持电子设备102充当用于在由hmd100生成的沉浸式虚拟环境中交互的控制器。也就是说,手持电子设备102的操纵(诸如例如用于生成由手持电子设备102发射的、导向用于选择的虚拟对象或特征的虚拟光束或射线,和/或在手持电子设备102的触摸表面上接收的输入,和/或手持电子设备102的移动)可以被转化成由hmd100生成的沉浸式虚拟环境中的相对应的选择、或移动、或其它类型的交互。例如,hmd100与手持电子设备102一起可以生成如上所述的虚拟环境,并且可以操纵手持电子设备102以实现用户相对于如上所述的虚拟环境中的虚拟特征的比例或视角上的变化。

图3a和图3b是示例hmd(诸如例如在图1中由用户穿戴的hmd100)的立体视图,并且图3c图示示例手持电子设备,诸如例如图1中所示的手持电子设备102。

手持电子设备102可以包括其中容纳设备102的内部组件的外壳103,以及对用户可访问的在外壳103的外部上的用户界面104。用户界面104可以包括被配置为接收用户触摸输入的触敏表面106。用户界面104还可以包括用于由用户操纵的其它组件,诸如例如致动按钮、旋钮、操纵杆等。在一些实现方式中,用户界面104的至少一部分可以被配置为触摸屏,其中用户界面104的该部分被配置为向用户显示用户界面项目,并且还接收来自用户的、触敏表面106上的触摸输入。手持电子设备102还可以包括被配置为通过外壳103中的端口选择性地发射光的光源108,以及可由用户操纵的其它操纵设备105。

hmd100可以包括耦合到框架120的外壳110,同时包括例如在耳机中安装的扬声器的音频输出设备130也耦合到框架120。在图3b中,外壳110的前部110a远离外壳110的基部110b旋转,使得在外壳110中容纳的部件中的一些是可见的。显示器140可以被安装在外壳110的前部110a的面向侧的内部中。当前部110a靠着外壳110的基部110b处于关闭位置中时,透镜150可以被安装在外壳110中,在用户的眼睛与显示器140之间。在一些实现方式中,hmd100可以包括包括各种传感器的感测系统160以及包括处理器190和各种控制系统设备的控制系统170以方便hmd100的操作。

在一些实现方式中,hmd100可以包括用于捕获静止和运动图像的相机180。在不需要移除hmd100或者以其它方式改变hmd100的配置以将外壳110移出用户的视线的情况下,由相机180捕获的图像可以用于帮助追踪用户和/或手持电子设备102在真实环境中的物理位置,并且/或者可以在通过模式下在显示器140上被显示给用户,从而允许用户暂时离开虚拟环境并返回到物理环境。

在一些实现方式中,hmd100可以包括凝视追踪设备165以检测并追踪用户的眼睛注视。凝视追踪设备165可以包括例如图像传感器165a或多个图像传感器165a,以捕获用户的眼睛(例如,用户的眼睛的特定部分,例如瞳孔)的图像,以检测并追踪用户的凝视的方向和移动。在一些实现方式中,hmd100可以被配置为使得所检测到的凝视被处理为要转化成沉浸式虚拟体验中的相对应交互的用户输入。

在图4a中示出了提供用于在增强和/或虚拟现实环境中瞬移和缩放的系统的框图。该系统可以包括与第二电子设备402通信的第一电子设备400。第一电子设备400可以是例如如上面参考图2、图3a和图3b所描述的生成沉浸式虚拟环境的hmd,并且第二电子设备402可以是例如如上面参考图2和图3c所描述的手持电子设备,其与第一电子设备400通信以方便用户与由第一电子设备400生成的沉浸式虚拟环境交互。

第一电子设备400可以包括感测系统460和控制系统470,其分别可以与图3a和图3b中所示的感测系统160和控制系统170类似。感测系统460可以包括一个或多个不同类型的传感器,包括例如光传感器、音频传感器、图像传感器、距离/接近传感器、和/或其它传感器和/或传感器的不同组合,包括例如被定位来检测并追踪用户的眼睛凝视的图像传感器,诸如图3b中所示的凝视追踪设备165。控制系统470可以包括例如电源/暂停控制设备、音频和视频控制设备、光学控制设备、转变控制设备、和/或其它此类设备和/或设备的不同组合。根据特定实现方式,感测系统460和/或控制系统470可以包括更多的或更少的设备。在感测系统460和/或控制系统470中包括的元件可以在例如除图3a和图3b中所示的hmd100以外的hmd内具有不同的物理布置(例如,不同的物理定位)。第一电子设备400还可以包括与感测系统460和控制系统470通信的处理器490、存储器480、以及提供用于在第一电子设备400与另一外部设备(诸如例如,第二电子设备402)之间通信的通信模块450。

处理器490包括一个或多个处理芯片和/或组装件。存储器480包括易失性存储器(例如,ram)和非易失性存储器两者(诸如一个或多个rom、磁盘驱动器、固态驱动器等)。处理器490和存储器480一起形成控制电路,所述控制电路被配置和布置为执行如本文中所描述的各种方法和功能。在一些实现方式中,第一电子设备400的组件中的一个或多个可以是或者能够包括被配置为处理在存储器480中存储的指令的处理器(例如,处理器490)。

图4b是图示第一电子设备400的存储器480的更详细视图的图,图4b图示在存储器480中存储的示例指令,包括累积移动数据管理器481、缩放因子管理器483、当前移动数据管理器485、和对象移动管理器487。另外,如图1中所图示的,存储器480被配置为存储相对于使用此类数据的相应管理器被描述的各种数据。

先前移动数据管理器481被配置为接收累积移动数据482,所述累积移动数据482指示由用户握住的输入控制器在由用户占据的物理环境内的第一6dof移动。例如,先前移动数据482可以表示在给定时间间隔期间的初始6dof位置和最终6dof位置。在一些实现方式中,先前移动数据482可以表示欧几里德长度。

缩放因子管理器483被配置为基于先前移动数据482生成包括缩放因子的缩放因子数据484。例如,在一些实现方式中,缩放因子管理器483被配置为产生如图1b中所示的缩放因子。在一些实现方式中,基于除如图1b中所示的两个阈值以外的单个阈值产生缩放因子。在一些实现方式中,缩放因子管理器483被配置为基于除了空间位移之外或者代替空间位移的角位移而产生缩放因子。

当前移动数据管理器485被配置为接收当前移动数据486,所述当前移动数据486指示由用户握住的输入控制器在由用户占据的物理环境内的第二6dof移动。例如,当前移动数据486可以表示在手势开始时的6dof位置和在手势结束时的最终6dof位置。在一些实现方式中,当前移动数据486可以表示欧几里德长度。

对象移动管理器485被配置为响应于接收到当前移动数据486而执行对象移动操作,以产生对象移动数据488,所述对象移动数据488是如基于缩放因子数据484通过当前移动数据488所表示的第二6dof移动的一部分。

返回到图4a,第二电子设备402可以包括提供用于在第二电子设备402与另一外部设备(诸如例如,第一电子设备400)之间通信的通信模块306。除了提供用于在第一电子设备400与第二电子设备402之间交换数据之外,通信模块406还可以被配置为发射如上所述的射线或光束以传送电子信号。第二电子设备402可以包括感测系统404,所述感测系统404包括图像传感器和音频传感器(诸如被包括在例如相机和麦克风中)、包括例如加速度计和/或陀螺仪和/或磁力计的惯性测量单元、诸如在手持电子设备或智能电话的触敏表面中包括的触摸传感器、以及其它此类传感器和/或传感器的不同组合。处理器409可以与第二电子设备402的感测系统404和控制器405通信,控制器405可以能够访问存储器408并且控制第二电子设备402的整体操作。

如上面所指出的,控制器(诸如例如,上述的手持电子设备102)可以由用户操纵以用于在虚拟环境中交互和导航。当在虚拟环境中导航时,用户可以将手持电子设备102导向或者指向要选择的虚拟特征,并且可以由系统基于例如由手持电子设备102的传感器生成的定向信息生成虚拟光束,以识别要由用户选择的虚拟特征和/或定位。在一些实现方式中,光源108可以将射线或光束导向要选择的虚拟特征或项目,并且由光源108生成的射线或光束可以由系统(例如,由hmd100上的相机)检测,并且可以在虚拟环境中向用户显示所检测到的射线或光束的渲染以用于选择虚拟特征。

图5是图示示例方法500的流程图。可以通过连同图4a和图4b一起描述的软件构造来执行方法500,所述软件构造驻留在第一电子设备400的存储器480中并且由处理器490运行。

在502处,第一电子设备400接收先前移动数据,所述先前移动数据指示由用户握住的输入控制器在由用户占据的物理环境内的第一六自由度(6dof)移动。

在504处,第一电子设备400基于输入控制器在物理环境内的第一6dof移动产生缩放因子。

在506处,在接收到累积移动数据之后,第一电子设备400接收当前移动数据,所述当前移动数据指示在一定时间段上输入控制器在物理环境内的第二6dof移动;

在508处,响应于接收到当前移动数据,第一电子设备400执行对象移动操作以产生对象在由用户在显示器上查看的虚拟环境内的6dof移动。对象在虚拟环境内的6dof移动是输入控制器的基于缩放因子的第二6dof移动的部分。

如图6a中所示,虚拟环境中的用户在虚拟环境中的位置a(其可被称为虚拟位置)处可以选择通过例如将由手持电子设备102如上所述生成的虚拟光束导向虚拟位置b(如图6b中所示)处的虚拟特征650来移动到虚拟环境中的位置b(其也能够被称为虚拟位置)。在进一步操纵手持电子设备102(例如,释放将光束导向虚拟位置b处的虚拟特征650的按钮)时,用户可以被移动、或者瞬移、或者运送到虚拟位置b,如图6c中所示。在图6a-6c中所示的示例中,用户尚未选择如上所述调整他相对于虚拟环境中的虚拟特征的比例或透视。因此,在此示例中,用户被移动、或者瞬移、或者运送到与在虚拟位置a处基本上相同的比例(相对于虚拟环境中的特征)的虚拟位置b。

在一些实现方式中,响应于由用户例如经由手持电子设备102进行的输入而将用户从虚拟位置a移动到虚拟位置b可以基本上是立即的,其中用户在一个时刻处于虚拟位置a,而在下一个时刻处于虚拟位置b,做出从虚拟位置a到虚拟位置b的移动对用户而言感觉基本上是瞬时的。在一些实现方式中,用户可以体验用户从虚拟位置a到虚拟位置b的移动的动态虚拟动画,好像用户实际上在空中和/或在地形上从虚拟位置a行进到虚拟位置b,从而在从虚拟位置a移动到虚拟位置b时给用户提供有更连贯的虚拟体验。

在一些实现方式中,无论用户从虚拟位置a到虚拟位置b的移动是基本上立即的,还是用户在从虚拟位置a移动到虚拟位置b时体验到动态虚拟动画,用户可以到达虚拟位置b并逐渐停止,而不是突然停止。可以在从虚拟位置a移动到虚拟位置b时维持用户的动量的某种感觉的这种逐渐停止(而不是突然到达或停止)可以给用户提供有进入到虚拟位置b处的虚拟环境中的更自然转变。

在一些情形下,用户可能希望相对于虚拟环境中的虚拟特征增加或者减小其比例,或者缩放虚拟环境中的虚拟特征相对于用户的大小(即,增加或者减小)。可以在虚拟环境中从第一虚拟位置或定位移动到第二虚拟位置或定位时完成用户相对于虚拟环境的大小的虚拟缩放,或虚拟环境中的虚拟特征相对于用户的虚拟缩放,从而允许根据用户的选择来缩放或者调整用户的视角或视图。在图5a中示出了虚拟现实系统的示例实现方式,所述虚拟现实系统允许用户从第一虚拟定位移动(例如,瞬移、运送)到第二虚拟定位,并且/或者缩放用户相对于虚拟环境的虚拟特征的大小(或者缩放虚拟环境中的虚拟特征相对于用户的大小),使得用户的视角或视图被缩放到重新选择的缩放大小。

如图6d中所示,相对于第二虚拟位置b处的特征550在第一虚拟位置a处定位的用户可以例如操纵手持电子设备102以指示用户希望移动到第二位置b处的特征650。对手持电子设备102的这种操纵可以例如使设备生成在第二虚拟位置b处的特征650上聚焦的光束600,其指示用户想要移动(例如,瞬移、运送)到与所选择的特征650相对应的第二虚拟位置b。

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

计算设备700包括处理器702、存储器704、存储设备706、连接到存储器704和高速扩展端口710的高速接口708、以及连接到低速总线714和存储设备706的低速接口712。处理器702能够是基于半导体的处理器。存储器704能够是基于半导体的存储器。组件702、704、706、708、710和712中的每一个使用各种总线进行互连,并且可以被酌情安装在公共主板上或者以其它方式安装。处理器702能够处理用于在计算设备700内执行的指令,包括在存储器704中或者在存储设备706上存储以在外部输入/输出设备(诸如耦合到高速接口708的显示器716)上显示用于gui的图形信息的指令。在其它实现方式中,可以酌情使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。另外,可以连接多个计算设备700,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器、或多处理器系统)。

存储器704存储计算设备700内的信息。在一个实现方式中,存储器704是一个或多个易失性存储器单元。在另一实现方式中,存储器704是一个或多个非易失性存储器单元。存储器704还可以是另一形式的计算机可读介质,诸如磁盘或光盘。

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

高速控制器708管理计算设备700的带宽密集操作,然而低速控制器712管理较低带宽密集操作。功能的这种分配仅是示例性的。在一个实现方式中,高速控制器708耦合到存储器704、显示器716(例如,通过图形处理器或加速器),并且耦合到高速扩展端口710,所述高速扩展端口710可以接受各种扩展卡(未示出)。在该实现方式中,低速控制器712耦合到存储设备706和低速扩展端口714。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指向设备、扫描仪或诸如交换机或路由器的联网设备。

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

计算设备750包括处理器752、存储器764、诸如显示器754的输入/输出设备、通信接口766、和收发器768以及其它组件。设备750还可以被提供有存储设备,诸如微驱动器或其它设备,以提供附加存储。组件750、752、764、754、766和768中的每一个使用各种总线来互连,并且若干组件可以被酌情安装在公共主板上或者以其它方式安装。

处理器752能够执行计算设备750内的指令,包括在存储器764中存储的指令。处理器可以作为芯片的芯片组被实现,所述芯片包括单独的和多个模拟和数字处理器。例如,处理器可以提供用于协调设备750的其它组件,诸如对用户界面、由设备750运行的应用和由设备750进行的无线通信的控制。

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

存储器764存储计算设备750内的信息。存储器764能够作为计算机可读介质(medium)或媒介(media)、一个或多个易失性存储器单元、或者一个或多个非易失性存储器单元中的一个或多个被实现。还可以通过扩展接口772来提供扩展存储器774并将其连接到设备750,所述扩展接口772可以包括例如simm(单列直插存储器模块)卡接口。这种扩展存储器774可以为设备750提供额外的存储空间,或者还可以为设备750存储应用或其它信息。具体地,扩展存储器774可以包括用于执行或者补充上述的过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器774可以作为用于设备750的安全模块被提供,并且可以被编程有允许安全地使用设备750的指令。此外,可以经由simm卡提供安全应用以及附加信息,诸如以不可破解的方式将识别信息放置在simm卡上。

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

设备750可以通过通信接口766以无线方式通信,所述通信接口766必要时可以包括数字信号处理电路。通信接口766可以提供用于在各种模式或协议下通信,所述各种模式或协议诸如gsm语音呼叫、sms、ems、或mms消息传送、cdma、tdma、pdc、wcdma、cdma2000、或gprs等。这种通信可以例如通过射频收发器768而发生。此外,可以发生短距离通信,诸如使用蓝牙、wifi、或其它这种收发器(未示出)。此外,gps(全球定位系统)接收器模块770可以向设备750提供附加的导航和定位相关无线数据,其可以由在设备750上运行的应用酌情使用。

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

如图中所示,可以以许多不同的形式实现计算设备750。例如,它可以作为蜂窝电话780被实现。它还可以作为智能电话782、个人数字助理、或其它类似的移动设备的部分被实现。

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

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

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

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

计算系统能够包括客户端和服务器。客户端和服务器一般地彼此远离并且通常通过通信网络来交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。

已经描述了许多实施例。然而,应当理解的是,可以在不脱离本发明的精神和范围的情况下做出各种修改。

此外,图中描绘的逻辑流程不要求所示的特定次序或顺序次序来实现所希望的结果。此外,可以提供其它步骤,或者可以从所描述的流程中消除步骤,并且可以向所描述的系统添加其它组件或者从所描述的系统中移除其它组件。因此,其它实施例在以下权利要求的范围内。

本文中描述的各种技术的实现方式可以用数字电子电路或者用计算机硬件、固件、软件或者用它们的组合加以实现。实现方式可以作为计算机程序产品被实现,所述计算机程序产品即有形地具体实现在信息载体中(例如,在机器可读存储设备(计算机可读介质)中)以用于由数据处理装置(例如,可编程处理器、计算机或多个计算机)处理或者控制数据处理装置的操作的计算机程序。因此,计算机可读存储介质能够被配置为存储指令,所述指令当被执行时使处理器(例如,主机设备处的处理器、客户端设备处的处理器)执行过程。

计算机程序(诸如上述的计算机程序)能够用任何形式的编程语言(包括编译或解释语言)编写,并且能够以任何形式被部署,包括作为独立程序或者作为适合于在计算环境中使用的模块、组件、子例行程序或其它单元。能够将计算机程序部署成在一个计算机上或者在位于一个站点处或者跨越多个站点分布并通过通信网络互连的多个计算机上被处理。

方法步骤可以通过一个或多个可编程处理器执行计算机程序而被执行,以通过对输入数据进行操作并生成输出来执行功能。方法步骤还可以由专用逻辑电路执行,并且装置可以作为专用逻辑电路被实现,所述专用逻辑电路例如fpga(现场可编程门阵列)或asic(专用集成电路)。

作为示例,适合于处理计算机程序的处理器包括通用微处理器和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。一般地,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可以包括用于执行指令的至少一个处理器以及用于存储指令和数据的一个或多个存储器设备。一般地,计算机还可以包括或者在操作上耦合以从用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据,或者将数据转移到所述一个或多个大容量存储设备,或者兼而有之。适合于具体实现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,作为示例包括半导体存储器设备,例如eprom、eeprom和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充,或者并入在专用逻辑电路中。

为了提供与用户的交互,实现方式可以在计算机上被实现,所述计算机具有用于向用户显示信息的显示设备(例如,阴极射线管(crt)、发光二极管(led)、或液晶显示器(lcd)监视器)以及用户能够通过其向该计算机提供输入的键盘和指向设备(例如,鼠标或轨迹球)。其它种类的设备也能够用于提供与用户的交互;例如,提供给用户的反馈能够是任何形式的感觉反馈,例如视觉反馈、听觉反馈、或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。

实现方式可以被实现在计算系统中,所述计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有用户能够通过其与实现方式交互的图形用户界面或web浏览器的客户端计算机),或者包括此类后端、中间件或前端组件的任何组合。组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(lan)和广域网(wan),例如互联网。

虽然已经像本文中所描述的那样图示了所描述的实现方式的某些特征,但是本领域的技术人员现在将想到许多修改、替换、变化和等同物。因此应当理解的是,所附权利要求旨在覆盖如落入本发明的范围内的所有这些修改和变化。应当理解的是,它们已仅作为示例而非限制被呈现,并且可以做出形式和细节上的各种变化。除了互斥组合之外,本文中描述的装置和/或方法的任何部分可以按照任何组合进行组合。本文中描述的实现方式可包括所描述的不同的实现方式的功能、组件和/或特征的各种组合和/或子组合。

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