在现有的混合现实和全虚拟现实设备中,用于向用户显示图像的投影仪可能相对较大。这种投影仪的尺寸可能使投影仪难以适应佩戴舒适的眼镜形状参数。另外,现有混合现实设备中使用的投影仪可能重量超过预期。重型投影仪可能会使混合现实设备在长时间内佩戴时感到不舒服。
现有混合现实设备中包含的投影仪同时可能具有较高的功耗。高功耗率可能会缩短续航,并可能需要用户更频繁地为混合现实设备充电。另外,如果增加电池尺寸以考虑投影仪的功率需求,则混合现实设备的尺寸和重量可能进一步增加。
为了解决现有混合现实设备的限制,微软在名为“Reprojection and wobulation at head-mounted display device”的专利申请中提出了一种投影技术。具体来说,专利描述了一种重投影技术和wobulation技术。
所谓的wobulation技术是指:投影仪将图案投影到一个平面,除了投影图像的自动分辨率外,通过快速在一个稍微不同的位置增加另一个重叠的帧,最终帧的分辨率将会更高。简答来说,可以致使每个微镜形成两个图像像素,从而提高分辨率。这种技术本质是快速轻微偏移帧,使一帧画面中的像素填充到另一帧画面像素的空隙中。当你以足够快的速度执行这个操作,眼睛就能看到更多的细节。尽管这其实是两帧画面,但眼睛无法分辨。对于所述技术,你可以想象成一种左右/上下/斜角横跳,原本固定的像素快速朝一个方向移动,从而形成一种抖动感/晃动感,故得名wobulation(抖动/晃动)。
通过利用重投影和wobulation技术,微软希望直接提高投影仪的分辨率,无需增加任何材料尺寸或重量。
根据一个示例实施例,图1中示出了头戴式显示设备10。图2示出了可与头戴式显示设备10和图1的一个或多个远程计算设备80一起使用,以在头戴式显示设备10显示内容的方法100。
方法100可替换地与其它头戴式显示设备一起使用。在所述示例中,虚拟内容以多个帧显示在头戴式显示设备10,每个帧具有各自的显示时间。方法100的步骤102可在一个或多个远程计算设备80处执行。在步骤102,方法100可以包括在当前帧的当前显示时间生成头戴式显示设备的设备姿势的渲染时间估计。渲染时间估计可以至少基于前一帧的设备位置数据生成。
如上所述,设备位置数据可以包括指示头戴式显示设备10在空间中的位置和方向以及头戴式显示设备10的运动的信息。可以从头戴式显示设备10接收设备位置数据。因此,可以基于在前一帧中从头戴式显示设备10接收的传感器数据,在一个或多个远程计算设备80处估计当前帧的设备姿势。前一帧可以是紧接当前帧之前的帧,或者在前一帧和当前帧之间可以存在一个或多个中间帧。
步骤104可在一个或多个远程计算设备80处执行。在步骤104,方法100可以包括在头戴式显示设备10的虚拟渲染表面渲染显示的内容,以获得渲染图像。虚拟呈现表面可以是物理环境中用于显示虚拟内容的空间表示。例如,虚拟渲染表面可以是立方体、矩形棱镜或其他。可以至少部分地基于在步骤102确定的渲染时间估计来呈现所显示的内容。在一个实施例中,渲染图像可以包括多个像素的相应颜色信息。
在步骤106,方法100还可以包括从一个或多个远程计算设备80向头戴式显示设备10发送渲染图像。
方法100的步骤108可在头戴式显示设备10的处理器12执行。步骤108可包括从一个或多个位置传感器26接收位置数据。位置数据可以包括指示头戴式显示设备10的方向、速度和/或加速度及其位置的数据。在步骤110,方法100同时可以包括,头戴式显示设备10的处理器12基于位置数据确定头戴式显示设备10的更新设备姿势。在一个实施例中,可以至少部分地基于来自前一帧和/或在当前帧之前发生的一个或多个其他帧的位置数据来确定更新的设备姿势。更新的设备姿势在显示时确定,以准备显示渲染图像。
方法100的步骤112可以在头戴式显示设备10的处理器12执行。在步骤110,方法100还可以包括对渲染图像的像素中的颜色信息执行第一空间校正。可以至少部分地通过基于更新的设备姿势重新投影渲染图像来执行第一空间校正。当重新投影渲染图像时,可在虚拟渲染表面内重新定位渲染图像的至少一部分的位置。可以重新投影渲染图像,使得当用户从更新设备姿势的位置和方向查看一个或多个虚拟对象时,一个或多个虚拟对象似乎位于其各自的世界锁定位置。因此,当用户的头部移动时,虚拟对象的表面位置可能看起来保持固定。
步骤114可在头戴式显示设备10的显示器32执行。在步骤114,方法100可以包括对重投影渲染图像的像素中的颜色信息执行第二空间校正。第二空间校正可以至少部分地通过对重投影的渲染图像应用wobulation来执行,从而为当前帧生成wobulation像素子帧序列。通过对重投影的渲染图像应用wobulation,可以提高显示器32的有效分辨率。尽管图2将重投影和第二空间校正示为单独的步骤,但步骤114和步骤116可以组合成单个操作,其中渲染图像重定位和wobulation。当步骤114和步骤116组合时,组合的步骤可以在显示器32的面板内执行。
步骤116也可以在头戴式显示设备10的显示器32上执行。在步骤116,方法100还可以包括通过显示抖动像素子帧序列来显示当前帧。因此,可以显示当前帧,使得虚拟内容已经针对设备姿势的变化进行了校正,并且使得显示器32的有效分辨率已经通过面板内摆动而增加。
图3示意性地示出了一个或多个远程计算设备80的头戴式显示设备10和远程计算设备80。如图3的示例所示,远程计算设备80的处理器82可配置为在当前帧的显示时间46计算头戴式显示设备10的估计设备姿势42的渲染时间估计。可以至少部分地基于从头戴式显示设备10接收的先前帧位置数据44来计算估计的设备姿势42的渲染时间估计。基于估计的设备姿势42,处理器82可进一步配置为渲染包括一个或多个像素50的颜色信息52的渲染图像40。处理器82可以渲染渲染图像40,使得从在估计的设备姿势42的渲染时间估计中估计的头戴式显示设备10的位置和方向显示渲染图像40中包括的一个或多个虚拟对象。
头戴式显示设备10的处理器12可配置为通过通信设备套件16接收已在远程计算设备80上渲染的当前帧的渲染图像40。处理器12可进一步配置为从一个或多个位置传感器26接收位置数据60。处理器12可以进一步配置为基于位置数据60确定头戴式显示设备10的更新设备姿势62。
处理器12同时可以被配置为至少部分地通过基于更新的设备姿势62重新投影渲染图像40,从而生成重新投影的渲染图像64。生成重投影渲染图像64可以包括对渲染图像40执行第一空间校正,以确定每个像素50的校正颜色信息66。重投影可以是对渲染图像40的调整,以考虑估计的设备姿势42和更新的设备姿势62之间的位置和/或方向的差异。
图4A示出了示例虚拟渲染表面48,其中渲染图像40被重投影,从而获得在虚拟渲染表面48内具有不同位置的重投影渲染图像64。在图4A的示例中,更新的设备姿势62指示头戴式显示设备10位于比估计的设备姿势42中指示的高度低的高度。因此,重投影的渲染图像64以相对于渲染图像40增加的高度显示。
图4B示出了后期重投影过程的示例,所述重投影过程可用于生成图4A的重投影渲染图像64。在图4B的左上角,所述过程从服务器端渲染阶段开始,其中远程计算设备80(例如服务器)接收头戴式显示设备10的最新设备姿势并将其存储在姿势历史中。基于姿势历史,远程计算设备80上的算法在显示时计算渲染时间估计的设备姿势42,并基于估计的设备姿势42渲染场景。
然后,根据渲染技术将根据估计的设备姿势42定向的虚拟camera虚拟捕获的图像渲染到渲染表面,例如,如图所示,渲染表面可以是渲染盒(具有5条边的盒形表面)或渲染楔块(具有左右边的双面表面)。
接下来,在称为后期重投影的过程中,使用基于姿势差计算的单应变换在渲染表面内重投影渲染表面中的像素数据。然后,将重新投影的渲染表面中的像素数据写入视口并显示在与头戴式显示设备10相关联的显示器32。
更新后的设备姿势发送回远程计算设备80,以包括在姿势历史中并用于后续姿势预测中。这样,可以基于对设备姿势的显示时间更新来调整重投影渲染图像64的最终显示,这将实现显示器32显示图像的更精确定位。这一点尤其重要。
在一个实施例中,如图5所示,处理器12可配置为分别对渲染图像40的多个颜色通道中的每一个执行第一空间校正。如图5的示例中所示,渲染图像40的颜色信息52可以包括分别包括每个像素50的红色、绿色和蓝色值的红色通道52A、绿色通道52B和蓝色通道52C。
当处理器12执行第一空间校正时,处理器12可以配置为生成校正颜色信息66,而所述校正颜色信息66包括校正红色通道66A、校正绿色通道66B和校正蓝色通道66C。通过分别重投影包括在颜色信息52中的不同颜色通道,处理器12可以说明不同波长的光的折射角的差异。在执行第一空间校正时考虑这些波长差异可实现重投影渲染图像64相对于渲染图像40的有效分辨率增加。
回到图3,头戴式显示设备10的处理器12可进一步配置为将重新投影的渲染图像64输出到显示器32。显示器32可以配置为至少部分地通过对重投影渲染图像64应用wobulation来对重投影渲染图像64的像素50中的校正颜色信息应用第二空间校正。可以在包括在显示器32中的wobulation电路38执行第二空间校正。
当应用第二空间校正时,显示器32可以为当前帧生成wobulation像素子帧72的序列70。显示器32中包括的每个像素50可以包括多个子像素54。当显示器32生成wobulation像素子帧72时,显示器32可以生成相应的子像素信息76,其中每个子像素54可以显示在wobulation像素子帧72中。子像素54的子像素信息76可包括子像素颜色77和/或空间偏移78。
显示器32可进一步配置为通过显示wobulation像素子帧72的序列70来显示当前帧。当显示序列70时,每个子像素54可以根据其在每个wobulation像素子帧72中的各自子像素数据76来显示。在一个实施例中,wobulation像素子帧72的序列70可以以与处理器12输出重投影的渲染图像64的渲染速率异步的显示速率来显示。
图6A-6D示出了示例序列70。显示器32包括多个像素50,每个像素50包括各自的多个可寻址子像素54。wobulation电路38可以配置为至少部分地通过重新调整多个像素50中的每个像素的一个或多个子像素54来对重投影的渲染图像64应用wobulation。当wobulation电路38重新格式化一个或多个子像素54时,电路38可以修改将哪些子像素54分配给哪些像素50以及这些像素50内的哪些位置。在显示器32是LCoS显示器的实施例中,可以对重投影的渲染图像64应用wobulation,而不要求头戴式显示设备10除了LCoS显示器之外还包括外部wobulation器。因此,可以通过使用LCoS显示器来减小头戴式显示设备10的尺寸和重量。
序列70的每个wobulation像素子帧72可以具有相应的空间偏移78。在一个实施例中,如在图6A-6D中,每个wobulation像素子帧72相对于序列70的初始wobulation像素子帧72的对应空间偏移78可以是一个子像素54的垂直偏移、一个子像素54的水平偏移,或者一个子像素的垂直偏移和一个子像素54的水平偏移。
图6A示出在第一wobulation像素子帧72A期间由四个子像素54的平方形成的第一像素50A。在图6B中,多个子像素54被重新寻址,使得在第二wobulation像素子帧72B中,第二像素50B由四个子像素54的平方形成,四个子像素54相对于图6A中所示的第一wobulation像素子帧72A向右移动一个子像素54。图6C示出了第三wobulation像素子帧72C,其中多个子像素54被重新寻址,使得第三像素50C由相对于第二wobulation像素子帧72B向下移动一个子像素54的正方形子像素54形成。图6D示出了第四wobulation像素子帧72D,其中多个子像素54被重新寻址,使得第四像素50D由相对于第三wobulation像素子帧72C向左偏移一个子像素54的子像素54的平方形成。在第四wobulation像素子帧72D之后,wobulation电路38可以返回到第一wobulation像素子帧72A的像素寻址配置。
如图6A-6D所示,在wobulation像素子帧72的序列70上,wobulation电路38可以修改wobulation像素子帧72的相应空间偏移78,以通过四个不同位置的循环移动每个像素50。应用于像素50的空间偏移78可以有效地将显示器32的分辨率提高四倍。
因此,显示器32可以显示重新投影的渲染图像64,就好像显示器32中包括的像素50的数量是原来的四倍,但不会导致投影仪尺寸或功耗的增加,这将导致显示器32中包括的像素50的数量翻两番。另外,由于wobulation而实现的超分辨率可以独立于由于单独重新投影渲染图像40的颜色通道而实现的超分辨率。因此,在图2的示例中实现的超分辨率。6A-6D仍然可以在校正颜色信息66包括多个单独重投影的颜色通道的实施例中实现。
回到图3,除了具有各自的空间偏移78之外,在一个实施例中,序列70中包括的每个wobulation像素子帧72可以具有相应的子像素颜色77。例如,每个子像素颜色77可以从由红色、绿色和蓝色组成的组中选择。在所述实施例中,wobulation像素子帧72的序列70可以包括一个或多个红色wobulation像素子帧、一个或多个绿色wobulation像素子帧和一个或多个蓝色wobulation像素子帧。
图7A示出了十二个wobulation像素子帧172A-172L的序列170。图7A的序列170在子像素颜色77和空间偏移78之间循环,使得从红色、绿色和蓝色中选择的每个子像素颜色77在图7A所示的四个空间偏移78中的每一个处显示。6A-6D。在序列170中,第一wobulation像素子帧172A、第四wobulation像素子帧172D、第七wobulation像素子帧172G和第十wobulation像素子帧172J为红色;第二wobulation像素子帧172B、第五wobulation像素子帧172E、第八wobulation像素子帧17211和第十一wobulation像素子帧172K为绿色;第三wobulation像素子帧172C、第六wobulation像素子帧172F、第九wobulation像素子帧1721和第十二wobulation像素子帧172L为蓝色。
在其他实施例中,如图7B所示,wobulation电路38可配置为生成序列270,其中一个或多个红色wobulation像素子帧的数量、一个或多个绿色wobulation像素子帧的数量,并且序列270中包括的一个或多个蓝色wobulation像素子帧的数目不都彼此相等。除了第六wobulation像素子帧272F和第十二wobulation像素子帧272L之外,包括在图7B的序列270中的wobulation像素子帧72各自具有与图7A的序列170相同的相应子像素颜色77和空间偏移78。
第六wobulation像素子帧272F是绿色而不是蓝色,第十二wobulation像素子帧272L是红色而不是蓝色。例如,可以选择序列70中具有每个子像素颜色77的抖动像素子帧72的数量,以匹配人眼对不同颜色光的灵敏度。在一个实施例中,wobulation像素子帧72与每个子像素颜色77的比率可以基于头戴式显示设备10的外向光学传感器22和/或内向光学传感器24检测到的照明条件来动态调整。
图8A-8B示出了根据一个示例性实施例,可包括在头戴式显示设备的显示器32中的投影仪300的示例性结构。示例投影仪300可以包括照明空间310、非发射显示器320、成像空间330和用户的眼睛340。如图8A所示,第一照明源312A和第二照明源312B可位于照明空间310中,且它们之间具有第一位移304。
相关专利:Microsoft Patent | Reprojection and wobulation at head-mounted display device
名为“Reprojection and wobulation at head-mounted display device”的微软专利申请最初在2020年5月提交,并在日前由美国专利商标局公布。