掌桥专利:专业的专利平台
掌桥专利
首页

将二维输入装置集成到三维计算环境中

文献发布时间:2023-06-19 19:30:30


将二维输入装置集成到三维计算环境中

发明背景

技术领域

各种实施方案总体上涉及计算机科学虚拟现实技术,并且更具体地涉及将二维输入装置集成到三维计算环境中。

背景技术

二维(2D)计算环境由诸如桌面界面的传统2D界面提供。三维(3D)计算环境由诸如虚拟现实(VR)界面或增强现实(AR)界面的3D界面提供。基于计算机的生产性工作(诸如软件应用程序工作流和任务)通常经由2D界面来执行。然而,由于由3D界面提供的明显优势,经由3D界面执行生产性工作正变得越来越流行。例如,当在3D设计应用程序内执行生产性工作时,3D界面与传统的2D界面相比为用户提供了沉浸式体验,其允许有更好的空间感和比例感。

然而,相对于传统的2D界面,经由3D界面执行生产工作也有缺点。具体地,传统的2D输入装置(诸如鼠标或轨迹球)通常具有比3D控制器(诸如VR控制器)更高的精度和准确度。相对于3D控制器,传统的2D输入装置在较长时间段内对用户的疲劳感通常也较小。鉴于传统的2D输入装置相对于3D控制器的优势,用户有时在3D环境内执行生产性工作时经由2D输入装置与3D用户界面进行交互,诸如用于在3D环境中与2D平面窗口交互。

当光标在3D环境中移动时,将2D输入装置与3D界面集成的常规方法不提供由2D输入装置控制的光标的深度连续性。具体地,在常规方法中,当光标在3D环境中的对象之间移动时,由2D输入装置控制的光标经常以不一致的方式跳转到不同的深度。因此,使用常规方法,当光标在3D环境中移动时,光标的深度和3D位置通常以不规则和不一致的方式渲染和显示。

另外,常规方法不提供针对与3D界面一起利用的2D输入装置优化的控制显示(CD)增益。CD增益定义了由于2D输入装置的给定物理运动量导致的3D环境内的特定光标运动量。设置过低的CD增益可能导致2D输入装置过度接合;而设置过高的CD增益可能降低2D输入装置的精度。当前,当2D输入装置与3D界面一起利用时,常规方法提供过低或过高的CD增益,由此导致2D输入装置过度接合或缺乏精度。

如前文所示,本领域需要用于将2D输入装置集成到3D计算环境中的更有效技术。

发明内容

各种实施方案包括用于确定三维(3D)场景内的光标位置的计算机实现的方法。所述计算机实现的方法包括基于当前用户视点和控制光标的二维(2D)输入装置的当前输入运动,为所述3D场景的当前帧生成指向所述光标的最终光标射线。所述计算机实现的方法还包括确定所述3D场景内的一个或多个对象是所述光标的自然邻域。所述计算机实现的方法还包括基于所述一个或多个对象确定所述最终光标射线的深度。所述计算机实现的方法还包括显示所述3D场景的所述当前帧,其中所显示的所述当前帧包括位于所述3D场景内的3D位置处的所述光标,所述3D位置基于所述最终光标射线和所述最终光标射线的所述深度而确定。

所公开技术相对于现有技术的至少一个技术优势在于,所公开技术使得2D输入装置能够无缝地集成在3D环境内。除其他外,所公开技术为显示在3D显示器(诸如VR或AR头戴式装置)上的3D环境的每一帧,连续地确定由2D输入装置控制的光标的深度。光标的深度是基于当前显示在3D环境内的一个或多个3D对象的位置而确定的。通过这种方式,所公开技术提供光标在3D环境内的深度连续性,这实现了在3D环境内的平稳和连续的对象选择以及光标运动。因此,相对于现有技术系统,所公开技术提高了用户执行生产性工作的效率并提高了整体用户体验。这些技术优点表示相对于现有技术方法的一种或多种技术改进。

各种实施方案包括一种用于优化与三维(3D)显示器一起操作的二维(2D)输入装置的控制显示(CD)增益的计算机实现的方法。所述计算机实现的方法包括基于3D显示器的至少一种规范确定3D显示器可显示的最小对象尺寸。所述计算机实现的方法还包括基于最小对象尺寸、2D输入装置的至少一种规范和3D显示器的至少一种规范来确定CD增益值的范围。所述计算机实现的方法还包括选择CD增益值的范围内的CD增益值。所述计算机实现的方法还包括基于CD增益值确定光标在显示于3D显示器上的3D场景内的3D位置,其中光标由2D输入装置控制。

所公开技术相对于现有技术的至少一个技术优势在于,所公开技术提供了针对在3D界面中利用的2D输入装置优化的控制显示(CD)增益。优化的CD增益是基于2D输入装置和显示3D环境的3D显示器(诸如VR或AR头戴式装置)的规范而确定的。因此,所公开技术提供了一种CD增益,所述CD增益减少了2D输入装置的过度接合,同时维持2D输入装置的令人满意的精度水平。通过这种方式,所公开技术实现了在3D环境内更有效和准确的对象选择和光标运动。因此,相对于现有技术系统,所公开技术提高了用户可以在3D环境内执行生产性工作的效率并提高了整体用户体验。这些技术优点表示相对于现有技术方法的一种或多种技术改进。

附图说明

为了能够详细地理解各种实施方案的上述特征,可以参考多个实施方案来更具体地描述以上已简要概述的发明概念,这些实施方案中的一些在附图中示出。然而,应当注意,附图仅仅示出了发明概念的典型实施方案,因此决不应被认为是对范围的限制,并且存在其他同样有效的实施方案。

图1示出了被配置为实施各种实施方案的一个或多个方面的工作站;

图2示出了根据各种实施方案的图1的工作站可以在其中操作的工作站环境;

图3示出了根据各种实施方案的为VR场景的当前帧确定的最终光标射线的方向;

图4示出了根据各种实施方案的当前VR场景内的不同可选虚拟对象;

图5示出了根据各种实施方案的投影到2D平面上的不同的可选虚拟对象和光标;

图6A至图6B示出了根据各种实施方案的用于在3D环境中显示由2D输入装置控制的光标的方法步骤的流程图;

图7示出了根据各种实施方案的在3D环境内显示的对象的宽度与对象的角尺寸之间的关系;以及

图8阐述了根据各种实施方案的用于计算与3D显示器一起操作的2D输入装置的CD增益的方法步骤的流程图。

具体实施方式

在以下描述中,阐述许多特定细节以提供对各种实施方案的更透彻理解。然而,对本领域技术人员来说将显而易见的是,可以在没有这些特定细节中的一者或多者的情况下实践发明概念。

如本文中所使用,“3D界面”包括3D专用硬件和软件部件。例如,3D硬件可以包括3D显示器、以3D操作的一个或多个3D控制器、一个或多个跟踪装置以及一个或多个相机。例如,3D软件可以包括生成3D环境并渲染在3D显示器上显示的3D场景的3D应用程序/引擎。3D场景包括3D环境的特定视图。3D界面的示例包括虚拟现实(VR)界面和增强现实(AR)界面。3D显示器的示例包括VR头戴式装置和AR头戴式装置。

如本文中所使用,“VR界面”包括VR专用硬件和软件部件。例如,VR硬件可以包括VR头戴式装置、一个或多个VR控制器以及一个或多个跟踪装置。例如,VR软件可以包括生成3D虚拟环境并渲染显示在VR头戴式装置上的VR场景的VR应用程序/引擎。VR场景包括3D虚拟环境的特定视图,其包括各种3D虚拟对象。尽管以下实施方案涉及VR界面,但是所公开技术也可以应用于AR界面,如下文第IV节中所讨论的。

如本文中所使用,“2D界面”可以包括2D专用硬件和软件部件,诸如传统的桌面硬件和软件部件。2D硬件可以包括2D监视器和2D输入装置(诸如2D鼠标和/或轨迹球)。2D软件可以包括生成在2D监视器上显示的2D用户界面(UI)的2D应用程序/引擎。

如本文中所使用,“3D环境”包括计算机生成的模拟环境,其包括一个或多个可选3D对象。3D显示器可以显示包括3D环境的特定视图的3D场景(诸如VR场景或AR场景),这取决于用户视点在3D环境内的定位/位置。3D环境的示例包括由VR界面生成的虚拟环境和由AR界面生成的增强环境。

如本文中所使用,“用户应用程序”包括任何基于3D的应用程序,诸如3D设计应用程序、3D游戏应用程序等。

本文提供的描述被分为四节。第I节包括对利用2D输入装置与3D界面的系统的描述。第II节包括对用于确定由2D输入装置控制的光标在3D环境内的深度连续位置的技术的描述。第III节包括对用于计算CD增益的技术的描述,所述CD增益针对与3D界面一起利用的2D输入装置进行了优化。应注意,第II节中公开的技术和第III节中公开的技术可以单独地且独立地执行,或者可以结合地执行。第IV节包括对实施AR界面的替代实施方案的描述。

系统概述

图1示出了被配置为实施各种实施方案的一个或多个方面的工作站100。如图所示,工作站100包括但不限于连接到各种2D硬件150和各种VR硬件170的计算机系统101。计算机系统101可以包括耦合在一起的至少一个处理器102、输入/输出(I/O)装置103和存储器单元104。计算机系统101可以包括服务器、个人计算机、膝上型计算机或平板计算机、移动计算机系统或适合于实践本文所述的各种实施方案的任何其他装置。

通常,处理器102可以是能够处理数据并执行软件应用程序和程序代码的任何技术上可行的处理装置或硬件单元。处理器102执行软件并执行在本文描述的实施方案中阐述的功能和操作。例如,处理器102可以包括中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑装置、离散门或晶体管逻辑、离散硬件部件或不同处理单元的任意组合,诸如被配置为与GPU结合操作的CPU。

存储器单元104可以包括硬盘、随机存取存储器(RAM)模块、快闪存储器单元或任何其他类型的存储器单元或它们的组合。处理器102和I/O装置从存储器104中读取数据并将数据写入存储器。存储器单元104存储软件应用程序和数据。来自存储器单元104内的软件构造的指令由处理器102执行以实现本文描述的发明操作和功能。

I/O装置103也耦合到存储器104并且可以包括能够接收输入的装置以及能够提供输出的装置。I/O装置103可以包括未在2D硬件150和VR硬件170中具体列出的输入和输出装置,诸如用于与网络连接的网卡、扬声器、制造装置(诸如3D打印机)等等。另外,I/O装置可以包括能够接收输入并提供输出的装置,诸如触摸屏、通用串行总线(USB)端口等等。

计算机系统101连接到各种2D硬件150,其包括2D监视器151、2D鼠标152和键盘153。2D监视器151可以包括显示2D图像的常规/传统的平面显示器(诸如2D窗口和用户界面)。2D鼠标152可以包括传统的2自由度输入装置,其在2D中沿着平坦/水平表面(诸如桌子)操作。尽管本文描述的一些实施方案涉及2D鼠标152,但是所公开技术也可以应用于其他2D输入装置,诸如轨迹球。

计算机系统101还连接到各种VR硬件170,其包括VR头戴式装置171、VR控制器172以及一个或多个跟踪装置173。VR控制器172包括由跟踪装置173跟踪的VR跟踪装置,所述跟踪装置确定VR控制器172的3D定位/位置信息。VR控制器172包括以3D操作的6自由度(6DOF)控制器,其与以2D操作的2D鼠标152相比,操作起来可能不太精确且更累人。VR头戴式装置171可以以3D立体图像(诸如VR场景175)显示图像。VR头戴式装置171包括由跟踪装置173跟踪的VR跟踪装置,所述跟踪装置可以确定VR头戴式装置171的3D定位/位置信息。在一些实施方案中,跟踪装置173通过跟踪VR头戴式装置171的3D位置来跟踪用户视点的3D位置。尽管以下实施方案描述了VR界面,但是所公开技术也可以应用于AR界面,如下文第IV节中所讨论的。

存储器单元104存储VR引擎112、光标位置引擎113、CD增益引擎115、用户应用程序120、虚拟环境130、部件规范140和CD增益值145。尽管被示为单独的软件部件,但是VR引擎112、光标位置引擎113和/或CD增益引擎115可以集成到单个软件部件中。例如,在其他实施方案中,光标位置引擎113和/或CD增益引擎115可以与VR引擎112集成。在另外的实施方案中,可以在VR头戴式装置171上存储和执行用户应用程序120、光标位置引擎113和/或CD增益引擎115。

用户应用程序120可以包括例如用于创建、修改和与虚拟环境130交互的3D设计应用程序。在其他实施方案中,用户应用程序120可以包括任何其他类型的基于3D的应用程序,诸如3D视频游戏、3D数据分析应用程序等。虚拟环境130可以包括3D虚拟环境,其被存储为例如描述当前场景的数据(诸如虚拟对象的3D定位/位置、取向和细节)、描述虚拟环境中的用户视点的数据(3D定位/位置和取向)、与虚拟场景的渲染相关的数据(诸如材料、照明和虚拟相机位置)等。

VR引擎112渲染包括虚拟环境130的3D表示的VR场景175。VR场景175显示在VR头戴式装置171上。用户可以经由VR场景175和VR硬件170与虚拟环境130交互以在用户应用程序120中执行生产性工作(诸如工作流或任务)。例如,用户可以使用一个或多个VR控制器172在虚拟环境130内导航或在虚拟环境130内执行工作流或任务。同时,显示在VR头戴式装置171上的VR场景175向用户提供视觉反馈,以帮助在虚拟环境130内执行工作流或任务。

VR界面为用户提供沉浸式体验,其相对于2D界面允许有更好的空间感和比例感。然而,VR控制器172以3D操作,这在长时间之后会变得累人。相比之下,2D界面的2D输入装置在执行某些任务时可以允许有更高的准确性和精度,并且在长时间使用期间疲劳感更小。因此,当用户在虚拟环境130和VR场景175内执行生产性工作时,使用2D输入装置变得越来越流行。在这方面,工作站100包括光标位置引擎113和CD增益引擎115,它们将2D输入装置的使用无缝集成在3D虚拟环境130内,以在使用2D输入装置与虚拟环境130和VR场景175交互时提高用户效率和整体用户体验。

在一些实施方案中,CD增益引擎115被实施为计算与显示VR场景175的特定VR头戴式装置171一起使用的特定2D输入装置的优化CD增益。CD增益值145可以基于2D输入装置和VR头戴式装置171的规范(其可以作为部件规范140被接收和存储到存储器104)来计算。计算出的CD增益值145可以被存储到存储器104并且被光标位置引擎113用来确定3D光标位置。在其他实施方案中,计算出的CD增益值145可以由确定由2D输入装置控制的光标在3D场景内的位置的任何其他类型的3D引擎使用。

在一些实施方案中,光标位置引擎113提供光标的深度连续性,当光标在3D环境内移动时,所述深度连续性实现光标的平稳和连续的对象选择和运动。具体地,光标位置引擎113被实施以经由光标射线和基于当前VR场景175内的可选虚拟对象对3D光标位置进行插值的插值技术来确定3D光标位置。光标位置引擎113基于若干因素为VR场景175的每一帧连续地确定光标的3D定位/位置,所述若干因素包括控制显示(CD)增益145,其可以包括预定默认值或由CD增益引擎115确定的计算值。

图2示出了根据各种实施方案的图1的工作站100可以在其中操作的工作站环境200。如图所示,工作站环境200包括但不限于用户275、物理桌子250、2D鼠标152和各种VR硬件170,其包括VR头戴式装置171和一个或多个跟踪装置173。

VR头戴式装置171显示包括多个可选3D虚拟对象(包括虚拟监视器251、虚拟盒子252和虚拟笔架253)的VR场景175。在替代实施方案中,VR头戴式装置171还可以将用户275渲染为虚拟用户,将物理桌子250渲染为虚拟桌子,和/或将2D鼠标152渲染为VR场景175内的虚拟鼠标。VR头戴式装置171还渲染由2D鼠标152在VR场景175内控制的光标299的图形图像/表示。图2示出了光标299从虚拟监视器251到虚拟盒子252的运动。在一些实施方案中,光标位置引擎113为VR场景175的每一帧连续地确定光标299的3D位置,使得如图2所示当光标299在VR场景175的各种对象之间移动时,光标299以深度连续性渲染。

跟踪装置173可以跟踪可见项目和部件(包括VR头戴式装置171)中的任一者在工作站环境200内的3D定位/位置。通常,跟踪装置173为工作站环境200内的可见项目和部件生成3D空间信息(跟踪数据),其可以指示可见项目和部件的位置和取向。通过这种方式,跟踪装置173可以通过跟踪VR头戴式装置171来跟踪用户275的当前视点,其中用户视点的3D位置和取向可以包括被跟踪的VR头戴式装置171的3D位置和取向。每个跟踪装置173可以包括用于执行跟踪装置173的上述功能的各种部件(未示出)。例如,每个跟踪装置173可以包括与空间捕获相机进行通信的空间跟踪器接收器,诸如Kinect3D扫描仪。空间捕获相机可以为工作站环境200生成3D空间信息,并且空间跟踪器接收器可以将3D空间信息传送到VR引擎112和光标位置引擎113。图2中所示的实施方案示出了“外向内”跟踪。在其他实施方案中,跟踪装置173可以与VR头戴式装置171集成以实施“内向外”跟踪。在一些实施方案中,光标位置引擎113接收由跟踪装置173生成的跟踪数据(3D空间信息)以执行本文描述的实施方案。

当集成2D输入装置以在3D环境(诸如VR场景175)内操作时,可能出现若干集成问题。具体地,可能出现三个常见问题,包括复视问题、透视问题和灵敏度问题。这三个常见问题在各种类型的显示环境中可能成问题,但是在3D显示环境中尤其值得关注。

当用户同时查看彼此不同深度的两个项目时,就会出现复视问题(双视问题)。例如,假设虚拟盒子252和光标299显示在与用户275相距的不同位置/距离处。当用户275将他/她的视觉集中在虚拟盒子252上时,用户275将看到两个光标299而不是一个光标299。当用户275将他/她的视觉集中在光标299上时,用户275将看到两个虚拟盒子252而不是一个虚拟盒子252。当两个项目的深度差异增加时,复视问题会恶化。因此,如果用户275试图通过将光标299移向虚拟盒子252来使用光标299选择虚拟盒子252,则除非虚拟盒子252和光标299的深度对齐且相似,否则将出现复视问题。

透视问题涉及在3D环境内将光标299从第一项目移动到第二项目所需的不同/不一致的鼠标运动,这取决于用户275的视角(视点)。例如,将光标299从虚拟监视器251移动到虚拟盒子252将需要2D鼠标152的不同/不一致的物理运动,这取决于用户视点的位置。这是由于以下事实:用户275会感知到虚拟显示器251相对于虚拟盒子252的位置的位置随着用户视点的不同位置而不同,由此需要2D鼠标152的不同物理运动来将光标299从虚拟监视器251移动到虚拟盒子252。具体地,当在3D环境中应用2D交互技术而不考虑用户的视角/视点时,就会出现透视问题。

灵敏度问题涉及特定输入装置和特定显示环境的控制显示(CD)增益。CD增益定义了显示环境内的光标运动量与输入装置的物理运动量之间的比率。具体地,CD增益定义了在显示环境内由于输入装置的特定物理运动量引起的特定光标运动量的比率。设置过低的CD增益可能导致输入装置过度接合。输入装置的接合是指输入装置到达指定桌面空间的一端(可用于移动输入装置),这需要将输入装置拿起并移动到指定桌面空间的另一端以便继续移动输入装置。然而,将CD增益设置得太高可能导致输入装置缺乏精度。当在3D环境内使用2D输入装置而没有针对3D环境优化2D输入装置的CD增益时,就会出现灵敏度问题。

当集成2D输入装置以与3D环境一起使用时,常规方法尚未解决复视问题、透视问题和灵敏度问题。在一些实施方案中,所公开技术通过在光标在3D环境的对象之间移动时提供光标的深度连续性来解决复视问题。通过这种方式,当光标移近特定对象时,光标和特定对象的深度变得对齐并且值相似,这缓解了复视问题。在一些实施方案中,所公开技术还通过使用基于用户视点的光标射线确定光标的深度来解决透视问题。通过这种方式,所公开技术通过在确定和显示光标在3D环境中的3D位置时考虑用户视角来解决视角问题。解决复视问题和透视问题的技术将在下文关于光标位置引擎113在第II节中讨论。

在一些实施方案中,所公开技术通过确定针对与特定3D显示器一起利用的特定2D输入装置优化的CD增益来进一步解决灵敏度问题。优化的CD增益是基于2D输入装置和3D显示器的规范而确定的。解决灵敏度问题的技术将在下文关于CD增益引擎115在第III节中进行讨论。

光标的深度连续位置

在一些实施方案中,当光标在虚拟环境130的VR场景175内移动时,光标位置引擎113连续地确定由2D输入装置控制的光标的3D位置。VR场景175由VR引擎112渲染并显示在VR头戴式装置171上。在这些实施方案中,光标位置引擎113为渲染的VR场景175的每一帧确定光标的3D位置,以在光标在VR场景175内的虚拟对象之间移动时提供光标的深度连续性。另外,光标位置引擎113至少部分地基于VR场景175内的当前用户视点来为当前帧确定光标的3D位置。通过这种方式,光标位置引擎113解决了上文在第I节中讨论的复视问题和透视问题,这实现了VR场景175内光标的连续和一致的对象选择和移动。

通常,对于渲染的VR场景175的每个当前帧,光标位置引擎113执行操作集合以确定光标的3D位置。首先,光标位置引擎113接收前一光标射线RP,其是为正好在当前帧之前的前一帧而确定的。前一光标射线RP起源于前一用户视点并且指向VR场景175的前一帧中的前一光标位置的方向。光标射线以球坐标指定。

光标位置引擎113然后基于当前用户视点更新前一光标射线RP的原点以为当前帧生成初始光标射线R0。例如,当前用户视点可以经由VR头戴式装置171的跟踪数据来确定。因此,光标位置引擎113在VR场景175内生成初始光标射线R0,其起源于当前用户视点并且指向VR场景175的前一帧中的前一光标位置的方向。

光标位置引擎113然后基于当前鼠标运动更新初始光标射线R0的方向以为当前帧生成最终光标射线R1。具体地,角运动量(增量运动)是基于2D输入装置的当前运动(增量运动)和与2D输入装置相关联的CD增益值来确定的。CD增益值可以是默认值或由CD增益引擎115计算的值。然后将增量运动与初始光标射线R0相加以为当前帧生成最终光标射线R1。因此,光标位置引擎113在VR场景175内生成最终光标射线R1,其起源于当前用户视点并且指向VR场景175的当前帧的当前光标位置的方向。

一旦为当前帧确定了最终光标射线R1的方向,光标位置引擎113就确定最终光标射线R1的深度。为此,光标位置引擎113将最终光标射线R1投射到VR场景175中以确定最终光标射线R1是否与VR场景175内的任何可选虚拟对象相交。如果最终光标射线R1与可选虚拟对象相交,则最终光标射线R1的深度被设置为等于相交的可选虚拟对象的深度。

然而,如果最终光标射线R1不与VR场景175内的任何可选虚拟对象相交,则光标位置引擎113基于当前VR场景175内的一个或多个可选虚拟对象执行插值技术以确定最终光标射线R1的插值深度。在一些实施方案中,执行插值技术以基于维诺图确定光标的自然邻域集合。光标的自然邻域集合对应于当前VR场景175内的特定可选对象集合。在一些实施方案中,可选对象集合包括VR场景175内的所有可选对象的子集。在一些实施方案中,可选对象集合包括VR场景175内的两个或更多个可选对象。然后,插值技术将插值算法(诸如拉普拉斯插值算法)应用于自然邻域集合,以计算最终光标射线R1的深度(光标深度)。

一旦为当前帧确定了最终光标射线R1的深度,光标位置引擎113然后基于最终光标射线R1的方向和深度来确定光标在VR场景175的当前帧内的3D位置。光标位置引擎113然后可以将光标的当前3D位置传输到渲染VR场景175的当前帧的VR引擎112。渲染的当前帧包括位于VR场景175内的当前3D位置处的光标的图形图像/表示。VR场景175的渲染当前帧然后被接收并显示在VR头戴式装置171上。

因此,对于VR场景175的每个当前帧,光标位置引擎113基于用户视点和VR场景175内的可选虚拟对象来确定光标在VR场景175内的3D位置。通过这种方式,所公开技术解决了复视问题和透视问题两者,这实现了VR场景175内光标的连续和一致的对象选择和移动。

图3示出了根据各种实施方案的为VR场景175的当前帧确定的最终光标射线的方向。如图所示,VR场景175包括多个可选虚拟对象301、302、303和304、前一光标位置X0光标310、当前光标位置X1光标311、初始光标射线R0 320、最终光标射线R1 321,以及用户视点X视点350。可选虚拟对象包括第一对象P1 301、第二对象P2 302、第三对象P3 303和第四对象P4 304。前一光标位置X0光标310是为刚好在当前帧之前的前一帧确定的光标的3D位置。当前光标位置X1光标311指示基于当前鼠标运动(dxpx,dypx)375(也称为增量运动)为当前帧确定的光标的2D位置。然而,当前帧的当前光标位置X1光标311的深度和3D位置在该阶段处是未知的,并且在下文关于图4至图5描述的稍后程序中确定。通常,各种光标射线以球坐标指定。

首先,光标位置引擎113修改前一帧的前一光标射线RP(未示出)以生成初始光标射线R0 320。前一光标射线RP起源于前一用户视点(以3D坐标指定)并指向前一光标位置X0光标310(以3D坐标指定)的方向。光标位置引擎113基于当前用户视点X视点350更新前一光标射线RP的原点以生成初始光标射线R0 320。当前用户视点X视点350以3D坐标(诸如x、y、z坐标)指定,所述3D坐标可以根据从VR头戴式装置171接收的跟踪数据导出。因此,初始光标射线R0 320起源于当前用户视点X视点350并指向VR场景175的前一帧的前一光标位置X0光标310的方向。初始光标射线R0 320相对于当前用户视点X视点350以球坐标计算为

光标位置引擎113然后基于当前鼠标运动(dxpx,dypx)375更新初始光标射线R0320的方向以为当前帧生成最终光标射线R1 321。当前鼠标运动375包括被指定为二维运动的2D输入装置的物理运动,诸如X方向上的左/右运动量和Y方向上的上/下运动量。应注意,由于2D输入装置仅在二维中操作,因此2D输入装置和当前鼠标运动375并未指定Z方向上的深度运动。当前鼠标运动375可以以像素为单位指定,诸如(dxpx,dypx),其以像素(dxpx)为单位指定X方向上的增量运动量并以像素为单位指定Y方向上的增量运动量(dypx)。当前鼠标运动375也可以用其他单位(诸如点)来指定。通常,当输入装置检测到用户输入(诸如点击或物理运动)时,输入装置生成描述用户输入的输入分组。因此,光标位置引擎113可以从输入装置接收指定当前鼠标运动(dxpx,dypx)375的输入分组。

当前鼠标运动(dxpx,dypx)375(增量运动)然后被转换为初始光标射线R0 320的角运动量380(增量运动)。

CD增益值145可以是默认值或由CD增益引擎115计算的值。在一些实施方案中,与2D输入装置和VR头戴式装置171配对相关联的CD增益值145以每英寸度数(dpi)为单位指定,其表示光标在由VR头戴式装置171显示的VR场景175中的角运动量(以度为单位)的比率,所述角运动量由于2D输入装置在物理空间中的物理运动量(1英寸)而造成。鼠标的分辨率(Res

通常,等式(1)描述了从当前鼠标运动(以像素为单位)到光标射线的角运动(以度为单位)的转换。具体地,水平移动dxpx被转换为方位角dθ,其乘以CD增益值145并除以鼠标的分辨率(Res

然后将增量运动

一旦为当前帧确定了最终光标射线R1 321的方向,光标位置引擎113就确定最终光标射线R1 321的深度。为此,光标位置引擎113将最终光标射线R1投射到VR场景175中以确定最终光标射线R1是否与当前VR场景175内的任何可选虚拟对象相交。如果是,则将最终光标射线R1的深度设置为等于与最终光标射线R1相交/碰撞的虚拟对象的深度。应注意,当前VR场景175内的每个可选虚拟对象的深度和3D坐标将为VR引擎112和光标位置引擎113所已知。例如,如果最终光标射线R1与第一可选虚拟对象相交/碰撞,则最终光标射线R1的深度被设置为等于第一可选虚拟对象的深度。

然而,如果最终光标射线R1不与VR场景175内的任何可选虚拟对象相交,则光标位置引擎113基于当前VR场景175内的一个或多个可选虚拟对象执行插值技术以确定最终光标射线R1的插值深度。图4示出了根据各种实施方案的当前VR场景内的不同可选虚拟对象。如图所示,VR场景175包括可选虚拟对象,其包括第一对象P1 301、第二对象P2 302、第三对象P3 303和第四对象P4 304。光标305也被示为VR场景175内的光标对象P0。

具体地,插值技术将当前VR场景175的可选对象和光标投影到2D平面上。在一些实施方案中,2D平面被定义为在用户的两只眼睛的中心处的用户视点的图像平面。VR场景175的可选对象可以基于从可选对象的3D坐标导出的2D坐标(x,y)投影到2D平面(x,y平面)上。可以基于为当前帧确定的最终光标射线R1 321的方向将光标投影到2D平面上。具体地,可以基于从最终光标射线R1 321的方向导出的2D(x,y)坐标将光标投影到2D平面上。图5示出了根据各种实施方案的投影到2D平面上的不同的可选虚拟对象和光标。如图所示,可选虚拟对象301、302、303和304以及光标对象305被投影到2D平面500上。应注意,光标对象305由图5中所示的圆形线框表示。投影到2D平面500上的虚拟对象301、302、303和304以及光标对象305被称为维诺图的种子点集合。

然后,插值技术基于种子点集合(对象301、302、303、304和305)在2D平面500上生成维诺图,以确定作为光标对象305的自然邻域的可选虚拟对象301、302、303和304的集合。具体地,插值技术通过将2D平面500细分为多个维诺区域/单元来生成维诺图,其中为每个种子点/对象生成一个维诺单元。维诺单元可以包括不同类型的形状和任何类型的多边形。维诺单元也被称为泰森多边形。为每个种子点生成一个维诺单元。为特定种子点生成的维诺单元被定义成使得维诺单元内的2D平面500的每个其他点与2D平面500上的任何其他种子点相比最接近该特定种子点。因此,对于特定种子点,存在由2D平面500上的所有点组成的对应的维诺单元,所述维诺单元与2D平面500上的任何其他种子点相距相比更靠近该特定种子点。

如图5所示,维诺图包括为第一对象P1 301生成的第一单元551、为第二对象P2302生成的第二单元552、为第三对象P3 303生成的第三单元553、为第四对象P4 304生成的第四单元554以及为光标对象P0 305生成第五单元555。应注意,与光标对象P0 305相对应的第五单元555包括朝向2D平面500的中心的小三角形。

然后基于维诺图确定光标对象P0 305的自然邻域集合。特定种子点的自然邻域包括具有与对应于特定种子点的单元接触(与其具有共享边缘)的对应单元的另一个种子点。因此,光标对象P0 305的自然邻域包括具有与对应于光标对象P0 305的第五单元555接触的对应单元的任何可选虚拟对象。如图所示,光标对象P0 305的自然邻域集合包括第二对象P2 302、第三对象P3 303和第四对象P4 304,因为每个此类对象302、303和304都分别具有与对应于光标对象P0 305的第五单元555接触(与其具有共享边缘)的对应单元552、553和554。只有第一对象P1 301不是光标对象P0 305的自然邻域,因为与第一对象P1 301相对应的第一单元551不与对应于光标对象P0 305的第五单元555接触。因此,光标的自然邻域集合包括VR场景175内的可选对象集合。在一些实施方案中,光标的自然邻域集合包括VR场景175内的所有可选对象的子集。在一些实施方案中,光标的自然邻域集合包括VR场景175内的两个或更多个可选对象。

然后,插值技术将插值算法应用于光标的自然邻域的集合,以计算最终光标射线R1的深度(光标深度)。通常,光标P0的深度可以基于用户视点X视点350与光标P0的自然邻域之间的距离来计算。例如,光标P0的深度可以基于用户视点X视点350与第二对象P2 302之间的第一距离、用户视点X视点350与第三对象P3 303之间的第二距离以及用户视点X视点350与第四对象P4 304之间的第三距离来计算。

插值算法包括一种或多种插值运算。在一些实施方案中,插值算法包括拉普拉斯插值算法。在这些实施方案中,光标P0的深度可以基于用户视点X视点350与P0的所有N个自然邻域中的自然邻域Pi之间的欧几里得距离的加权和来计算,如以下等式(2)所示:

例如,光标P

自然邻域P

共享边缘σ

一旦确定了当前帧的最终光标射线R

X

图6A至图6B示出了根据各种实施方案的用于在3D环境中显示由2D输入装置控制的光标的方法步骤的流程图。尽管结合图1至图5的系统描述了方法步骤,但是本领域技术人员应当理解,可以由任何系统以任何顺序执行方法步骤。在一些实施方案中,方法600可以由工作站100执行。

当光标位置引擎113针对VR场景175的当前帧(在步骤605处)接收到新的当前用户视点X视点350和新的当前鼠标运动(dxpx,dypx)375时,方法600开始。当前用户视点X视点350可以以指示当前用户视点在VR场景175内的3D位置的3D坐标指定。可以从跟踪由用户穿戴的VR头戴式装置171的跟踪装置173接收当前用户视点X视点350。当前鼠标运动(dxpx,dypx)375指示2D输入装置的x,y移动。可以经由输入分组从2D鼠标152接收当前鼠标运动(dxpx,dypx)375。

然后光标位置引擎113(在步骤610处)更新前一帧的前一光标射线RP的原点以生成初始光标射线R0 320。前一光标射线RP起源于前一用户视点并指向前一光标位置X0光标310的方向。光标位置引擎113用当前用户视点X视点350替换前一光标射线RP的原点以生成初始光标射线R0 320。因此,初始光标射线R0 320起源于当前用户视点X视点350并指向VR场景175的前一帧的前一光标位置X0光标310的方向。初始光标射线R0 320相对于当前用户视点X视点350以球坐标指定为

光标位置引擎113然后(在步骤615处)基于当前鼠标运动(dxpx,dypx)375更新初始光标射线R0 320的方向以为当前帧生成最终光标射线R1 321。当前鼠标运动375(增量运动)可以以像素为单位指定,诸如(dxpx,dypx)。当前鼠标运动(dxpx,dypx)375可以基于CD增益值145和鼠标分辨率(Res鼠标)转换为初始光标射线R0 320的角运动量

光标位置引擎113然后将最终光标射线R1 321投射到VR场景175中以(在步骤620处)确定最终光标射线R1是否与当前VR场景175内的任何可选虚拟对象相交。如果确定最终光标射线R1与可选虚拟对象相交(在步骤620处为是),则光标位置引擎113(在步骤625处)将最终光标射线R1的深度设置为等于与最终光标射线R1相交/碰撞的虚拟对象的深度。方法600然后在步骤650处继续进行。

如果确定最终光标射线R1不与VR场景175内的任何可选虚拟对象相交(在步骤620处为否),则方法600在步骤630处继续。在步骤630至645处,光标位置引擎113执行插值技术以基于当前VR场景175内的可选虚拟对象对最终光标射线R1的深度进行插值。在步骤630处,光标位置引擎113将当前VR场景175的可选对象和光标投影到2D 500平面上。VR场景175的可选对象可以基于从可选对象的3D坐标导出的2D坐标(x,y)投影到2D平面(x,y平面)上。可以基于根据为当前帧确定的最终光标射线R1 321导出的2D(x,y)坐标将光标投影到2D平面上。

投影到2D平面500上的可选对象和光标包括用于维诺图的种子点集合。光标位置引擎113然后(在步骤635处)基于种子点集合(可选对象和光标)在2D平面500上生成维诺图。通过将2D平面500细分为多个维诺单元来生成维诺图,其中为每个种子点生成一个维诺单元。光标位置引擎113然后(在步骤640处)基于维诺图确定光标的自然邻域集合。光标的自然邻域包括具有与对应于光标的维诺单元接触的对应维诺单元的可选虚拟对象。光标的自然邻域集合包括可选对象集合。

光标位置引擎113然后(在步骤645处)将插值算法应用于包括光标的自然邻域集合的可选对象集合,以计算最终光标射线R1的深度(光标深度)。在一些实施方案中,插值算法包括拉普拉斯插值算法。光标位置引擎113然后(在步骤650处)基于最终光标射线R1的方向和深度来确定光标在VR场景175的当前帧内的3D位置。

光标位置引擎113然后(在步骤655处)将光标的3D位置传输到渲染VR场景175的当前帧的VR引擎112。渲染的当前帧包括位于VR场景175内的3D位置处的光标的图形图像/表示。然后(在步骤660处)在VR头戴式装置171上显示VR场景175的渲染的当前帧。然后方法600在步骤605处继续以处理VR场景175的下一当前帧。

计算控制显示增益

CD增益值定义光标在3D环境内的运动量与控制光标的2D输入装置的物理运动量之间的比率。因此,CD增益值指示光标在3D环境内的特定运动量的比率,所述特定运动量由于控制光标的2D输入装置的特定物理运动量造成(由其引起)。在一些实施方案中,CD增益值以每英寸度数(dpi)为单位指定,其表示光标在VR场景175中的角运动量(以度为单位)与2D输入装置在物理空间中的物理运动量(1英寸)之间的比率。设置过低的CD增益可能导致2D输入装置过度接合,而设置过高的CD增益可能导致2D输入装置缺乏精度。常规方法不提供针对在3D环境中利用的2D输入装置优化的CD增益,这导致2D输入装置过度接合或缺乏精度。

在一些实施方案中,CD增益引擎115被实施以计算控制显示(CD)增益,其针对与3D界面(诸如VR界面或AR界面)一起操作的2D输入装置进行了优化。具体地,CD增益引擎115被实施以计算针对在由3D显示器(诸如VR头戴式装置或AR头戴式装置)显示的3D环境中利用的2D输入装置进行了优化的CD增益。CD增益引擎115可以至少部分地基于2D输入装置和3D显示器的规范来确定CD增益。在这些实施方案中,至少部分地基于2D输入装置和3D显示器的限制和能力来确定CD增益。也可以至少部分地基于人类视觉和人类运动系统的限制来确定CD增益。通过这种方式,所公开技术提供的CD增益减少2D输入装置的过度接合,同时维持2D输入装置的令人满意的精度水平,这实现了光标在3D环境内的有效且准确的对象选择和移动。

在一些实施方案中,CD增益引擎115通过执行查看算法来计算CD增益,所述查看算法确定在3D环境中显示的对象的最小显示尺寸对于人眼是可辨别的(对于包括图形的对象)或可辨认的(对于包括文本字符的对象)。对象的最小显示尺寸被称为最小对象尺寸。查看算法可以基于3D显示器的规范来确定最小对象尺寸。在一些实施方案中,最小对象尺寸被指定为对象的最小角尺寸。

CD增益引擎115然后执行增益算法,所述增益算法基于2D输入装置和3D显示器的最小对象尺寸和规范来确定CD增益值的范围。CD增益值的范围包括最小CD增益值和最大CD增益值。然后选择CD增益值的范围之间的CD增益值。例如,可以选择接近CD增益值的范围的中间的CD增益值,或者用户可以选择所述CD增益值。

CD增益引擎115然后将CD增益值传输到光标位置引擎113以执行光标位置引擎113的所公开技术。在其他实施方案中,CD增益值可以用在任何基于3D的界面中以将2D装置运动映射到在3D显示器上显示的3D环境内的对应光标运动。通常,在第II节中关于光标位置引擎113公开的技术和在第III节中关于CD增益引擎115公开的技术可以单独且独立地执行,或者可以结合地执行。

为了优化与3D显示器一起操作的2D输入装置的CD增益值,CD增益引擎115首先接收2D输入装置和3D显示器的规范。在一些实施方案中,2D输入装置包括2D鼠标。在其他实施方案中,2D输入装置包括另一种类型的输入装置,诸如轨迹球。在一些实施方案中,3D显示器包括VR头戴式装置171。然而,在其他实施方案中,3D显示器可以包括任何其他类型的3D显示器,诸如AR头戴式装置。各种规范可以作为部件规范140存储到计算机系统101的存储器单元104并从其中检索。2D输入装置的规范包括鼠标的分辨率(Res鼠标),其可以以每英寸像素(ppi)或每英寸点数为单位指定。3D显示器的规范包括视野、屏幕分辨率、显示分辨率、最小图形值和最小字符值。

3D显示器的视野指定由3D显示器提供的最大视角,诸如100度、120度或180度。屏幕分辨率指定由3D显示器提供的像素宽度和像素高度,诸如1920x1080、2880x1440或3840x2160。显示分辨率(Res

CD增益引擎115然后执行查看算法,所述查看算法确定可用位置范围以安全地显示具有在3D环境中人眼可辨别(对于图形)或可辨认(对于文本字符)的最小尺寸的对象。在一些实施方案中,CD增益引擎115执行查看算法,所述查看算法确定在3D环境中显示的人眼可见/可辨别(对于图形)或可辨认(对于文本字符)的最小对象尺寸。最小对象尺寸可以被指定为对象的最小角尺寸,而不是对象的像素尺寸或物理尺寸。人类视觉的敏锐度在精确地辨别小细节方面是有限的。例如,人眼在正常20/20视觉中可区分的视觉刺激的最小视角对于可见/可辨别的图像而言是1/60度(0.02度),并且对于可辨认的文本字符而言是1/12度(0.08度)。

查看算法可以基于3D显示器的规范来确定在3D环境中显示的对象的最小角尺寸(最小对象尺寸)。例如,假设3D显示器的最小图形值为1个像素,3D显示器的最小字符值为8个像素,并且3D显示器的显示分辨率(Res

当需要显示的对象是可辨认的时,显示的对象需要符合可辨认要求(例如0.36)。当显示的对象不是字符时,需要其是可区分的(例如0.04)。在这两种情况下,基于3D显示器的规范选择的最小角尺寸从不应超出人类视觉的能力范围。因此,在人眼在正常20/20视觉中的能力内确定最小角尺寸,其对于可见/可辨别的图像而言是1/60度(0.02度),并且对于可辨认的文本字符而言是1/12度(0.08度)。

图7示出了根据各种实施方案的在3D环境内显示的对象的宽度与对象的角尺寸之间的关系。如图所示,VR场景175包括用户视点350和显示在2D表面710上的对象720。

视距D包括当用户在对象720的相同竖直(y)坐标处直视前方时沿着第一用户视线730从用户视点350到2D表面710的距离。对象720具有以与视距D相同的单位指定的宽度W。例如,视距D和宽度W都可以以像素为单位指定,或者都可以以英寸为单位指定。角距离A指定用户在第一用户视线730与第二用户视线740之间看到的角度的尺寸。第二用户视线740包括从用户视点350到对象720的中心的视线。

角尺寸β指定用户在第三用户视线750与第四用户视线760之间看到的角度的尺寸。第三用户视线750包括从用户视点350到对象720的最左边缘的视线。第四用户视线760包括从用户视点350到对象720的最右边缘的视线。因此,角尺寸β指定对象720的角尺寸(视角)。

视距D、对象宽度W、角距离A和角尺寸β之间的关系如以下等式(6)所示:

最小角尺寸作为β(角尺寸β)的阈值输入等式(6)。然后使用等式(6),系统通过枚举角距离A和视距D的不同可能值来确定对象可以在对象宽度W下安全显示的位置,以确定β的结果是否变得小于最小角尺寸的确定值。如果是,则这指示系统无法在该区域中渲染小于对象宽度W的对象。

然后将可选对象的最小角尺寸从查看算法传递到增益算法。然后,增益算法基于最小角尺寸(最小对象尺寸)以及2D输入装置和3D显示器的规范来确定CD增益值的优化范围。CD增益值的范围包括最小CD增益值(下限)和最大CD增益值(上限)。

增益算法将最小CD增益值(CD

视野(A

增益算法基于两个不同的CD增益值来计算最大CD增益值(CD

装置精度CD增益(CD

手部精度CD增益(CDlmax)考虑了人手在向2D输入装置提供物理输入运动时的精度水平。具体地,手部精度CD增益(CDlmax)考虑了人手(诸如颤抖的人手)可以执行的最小物理输入运动。如等式(8)所示,手部精度CD增益(CDlmax)包括对象的最小角尺寸(Wmin)与最小手输入(Reshand)之间的比率。3D显示器的对象的最小角尺寸(Wmin)由查看算法计算并以度数为单位指定,诸如0.36度。最小手部输入(Reshand)是可以由人手执行的最小物理输入运动(由各种研究确定)并由物理距离指定,诸如0.2mm(0.007874英寸)。例如,对于0.36度的最小角尺寸(Wmin)和0.2mm(0.007874英寸)的最小手部输入(Reshand),手部精度CD增益(CDlmax)被计算为0.36度除以0.007874英寸,这等于每英寸45.72度(dpi)。

增益算法然后选择装置精度CD增益(CDqmax)和手部精度CD增益(CDlmax)中的较小值(最小值)作为最大CD增益值(CDmax)。例如,增益算法可以选择被计算为每英寸45度(dpi)的装置精度CD增益(CDqmax)而不是被计算为每英寸45.72度(dpi)的手部精度CD增益(CDlmax)作为最大CD增益值(CDmax)。

增益算法将CD增益范围设置在最小CD增益值(CDmin)与最大CD增益值(CDmax)之间,诸如在15.24和45度/英寸(dpi)之间。通常,将CD增益值设置为低于最小CD增益值(CDmin)将导致过度接合,并且将CD增益值设置为高于最大CD增益值(CDmax)将导致精度降低,并且3D环境的一些像素由于输入装置精度或人为精度不足而可能会变得无法访问。

然后增益算法选择CD增益范围内的CD增益值。通常,被选择更接近最小CD增益值的CD增益值将增加2D输入装置的精度,同时增加过度接合。相反,选择更接近最大CD增益值的CD增益值将减少过度接合,同时降低2D输入装置的精度。在一些实施方案中,向用户显示CD增益范围并且用户选择CD增益范围内的CD增益值。

在其他实施方案中,增益算法选择大约在CD增益范围的中间的CD增益值。在这些实施方案中,增益算法通过确定最大CD增益值与最小CD增益值之间的增量增益(差值)d、将增量增益d乘以预定比例值p(在0和1之间)以生成中间值i并将中间值i与最小CD增益值相加以确定选定的CD增益值来确定CD增益值。例如,假设CD增益范围是从10dpi的最小CD增益值到30dpi的最大CD增益值,并且预定比例值p等于0.5(用于选择位于CD增益范围的中间的CD增益值)。30dpi和10dpi之间的增量增益d等于20dpi。将20dpi的增量增益d乘以0.5的比例值p等于10dpi(中间值i)。然后将10dpi的中间值i与10dpi的最小CD增益值相加以等于20dpi,其被选择为CD增益值。

在一些实施方案中,比例值p包括预定默认值,诸如0.4、0.5或0.6。在进一步的实施方案中,比例值p是基于用户输入而确定的。例如,增益算法可以接收用户对介于0和1之间的比例值p的选择。作为另一个示例,增益算法可以基于用户输入来选择比例值p,所述用户输入指示对输入装置如何表现的偏好,诸如对增加输入装置精度的偏好或对减少过度接合的偏好。例如,增益算法可以基于指示对增加输入装置精度的偏好的用户输入选择较低的比例值p,诸如在0和0.5之间。增益算法可以基于指示对减少过度接合的偏好的用户输入选择较高的比例值p,诸如在0.5和1.0之间。

CD增益引擎115然后将计算的CD增益值145存储到存储器104。然后光标位置引擎113可以使用CD增益值145来确定3D光标位置,如第II节中所讨论的。在其他实施方案中,CD增益值可以用在任何基于3D的界面中以将2D输入装置运动映射到在3D显示器(诸如VR或AR头戴式装置)上显示的3D环境内的对应光标运动。在这些实施方案中,CD增益值145可以由确定、渲染和显示光标(由2D输入装置控制)在VR或AR场景内的3D位置的任何VR或AR界面使用。例如,VR引擎可以使用CD增益值145来基于当前鼠标运动确定光标在VR场景的当前帧内的3D位置。然后,VR引擎可以渲染当前帧,所述当前帧包括位于VR场景内的确定的3D位置处的光标的图形图像。VR场景的渲染的当前帧然后显示在VR头戴式装置上。

图8阐述了根据各种实施方案的用于计算与3D显示器一起操作的2D输入装置的CD增益的方法步骤的流程图。尽管结合图1至图5和图7的系统描述了方法步骤,但是本领域技术人员应当理解,可以由任何系统以任何顺序执行方法步骤。在一些实施方案中,方法800可以由工作站100执行。

当CD增益引擎115(在810处)接收2D输入装置和3D显示器(诸如VR或AR头戴式装置)的规范时,方法800开始。各种规范可以作为部件规范140存储到计算机系统101的存储器单元104并从其中检索。2D输入装置的规范可以包括鼠标(Res鼠标)的分辨率。3D显示器的规范可以包括视野、屏幕分辨率、显示分辨率、最小图形值和最小字符值。

CD增益引擎115然后(在步骤820处)执行查看算法以基于3D显示器的规范来确定在3D环境中显示的对象的最小角尺寸(最小对象尺寸)。在步骤830至860中,CD增益引擎115然后执行增益算法以基于对象的最小角尺寸以及2D输入装置和3D显示器的规范来确定CD增益值的优化范围。CD增益值的范围在最小CD增益值到最大CD增益值的范围内。CD增益引擎115(在步骤830处)确定最小CD增益值作为3D显示器的视野与桌面空间的操作范围(OR)之间的比率,如等式(7)所示。

CD增益引擎115(在步骤840处)确定考虑2D输入装置的精度水平的装置精度CD增益(CDqmax)。装置精度CD增益(CDqmax)包括鼠标分辨率(Res鼠标)与显示分辨率(Reshmd)之间的比率。CD增益引擎115(在步骤850处)确定手部精度CD增益(CDlmax),其考虑人手在向2D输入装置提供物理输入运动时的精度水平。手部精度CD增益(CDlmax)包括对象的最小角尺寸(Wmin)与最小手输入(Reshand)之间的比率。3D显示器的对象的最小角尺寸(Wmin)由查看算法计算。CD增益引擎115然后(在步骤860处)选择装置精度CD增益(CDqmax)和手部精度CD增益(CDlmax)中的较小值(最小值)作为最大CD增益值。

CD增益范围包括最小CD增益值(CDmin)与最大CD增益值(CDmax)之间的范围。CD增益引擎115然后(在步骤870处)选择CD增益范围内的CD增益值。在一些实施方案中,向用户显示CD增益范围并且用户选择CD增益范围内的CD增益值。在其他实施方案中,CD增益引擎115选择大约在CD增益范围的中间的CD增益值。在其他实施方案中,CD增益引擎115基于预定比例值p(在0和1之间)来确定。

3D界面然后(在步骤880处)基于当前鼠标运动和CD增益值来确定光标在3D场景的当前帧内的3D位置。例如,光标位置引擎113可以实施CD增益值以基于2D输入装置的运动连续地确定光标在3D场景内的3D位置。作为另一个示例,任何类型的3D界面都可以实施CD增益值以基于2D输入装置的运动来确定光标在3D场景的当前帧内的3D位置。然后,3D界面可以渲染和显示3D场景的当前帧,其包括位于确定的3D位置处的光标的图形图像。然后方法800结束。

增强现实界面

在本文描述的一些实施方案中,3D界面包括VR界面,所述VR界面包括VR专用硬件和软件部件。VR硬件可以包括VR头戴式装置171、一个或多个VR控制器172和一个或多个跟踪装置173。VR软件可以包括渲染在VR头戴式装置171上显示的3D虚拟环境的VR场景175的VR应用程序/引擎112。

在替代实施方案中,3D界面包括AR界面,所述AR界面包括AR专用硬件和软件部件。AR硬件可以包括AR头戴式装置和一个或多个AR控制器。AR头戴式装置可以包括AR(3D)显示器和用于提供显示在AR显示屏上的实时相机流/馈送的一个或多个相机。AR软件可以包括生成显示在AR头戴式装置上的3D增强环境的AR场景的AR应用程序/引擎。AR场景显示实时相机流/馈送,因此显示包括一个或多个可选现实世界对象的现实世界物理环境。

AR引擎还可以渲染显示在AR场景内的特定位置处的一个或多个可选3D虚拟对象。一个或多个3D可选虚拟对象被“叠加”到AR场景的现实世界环境上。为了渲染和显示虚拟对象,AR引擎首先执行计算机视觉算法来处理现实世界环境的实时相机馈送。具体地,计算机视觉算法基于实时相机馈送来确定现实世界环境的3D地图和真实对象在现实世界环境内的3D位置。然后,AR引擎可以基于现实世界环境的3D地图和真实对象的3D位置,在AR场景内的特定位置处生成和渲染一个或多个虚拟对象。AR引擎可以针对AR场景的每一帧执行上述操作。

例如,图2还可以示出包括现实世界工作站环境的AR场景。AR场景可以包括现实/物理对象,诸如桌子250、2D鼠标152、监视器251和笔架253。AR场景还可以包括虚拟对象,诸如虚拟盒子252。AR场景可以显示在由用户275穿戴的AR头戴式装置上。2D鼠标152可以用于控制AR场景内的光标299以选择真实对象和/或AR场景中的虚拟对象。例如,2D鼠标152可以用于将光标299从现实/物理监视器251移动到虚拟盒子252,如图2所示。

因此,在替代实施方案中,AR场景的当前帧可以包括一个或多个真实对象和一个或多个虚拟对象。由于每个真实对象的3D位置是已知的,因此本文公开的技术也可以通过将真实对象与虚拟对象相同地处理来应用于AR场景。例如,为了确定由2D输入装置控制的光标在AR场景内的3D位置,光标位置引擎113可以将最终光标射线R1投射到AR场景中以确定最终光标射线R1是否与当前AR场景内的任何可选真实或虚拟对象相交。如果确定最终光标射线R1与可选真实或虚拟对象相交,则光标位置引擎113将最终光标射线R1的深度设置为等于与最终光标射线R1相交/碰撞的真实或虚拟对象的深度。

如果未发现相交,则光标位置引擎113执行插值技术以基于当前AR场景内的一个或多个可选真实或虚拟对象对最终光标射线R1的深度进行插值。例如,光标位置引擎113将当前AR场景的真实和虚拟对象和光标投影到2D平面上。光标位置引擎113然后基于真实和虚拟对象以及光标在2D平面上生成维诺图。光标位置引擎113然后基于维诺图确定光标的自然邻域集合。光标的自然邻域包括具有与对应于光标的维诺单元接触的对应维诺单元的任何真实或虚拟对象。光标位置引擎113然后将插值算法应用于包括光标的自然邻域集合的真实或虚拟对象集合,以计算最终光标射线R1的深度(光标深度)。

另外,为了确定与AR界面一起操作的2D输入装置的CD增益值,CD增益引擎115可以用AR界面的规范替换VR界面的规范。例如,CD增益引擎115可以用AR头戴式装置的规范替换VR头戴式装置的规范。通过这种方式,CD增益引擎115可以计算针对在显示于AR头戴式装置上的AR场景内利用的2D输入装置优化的CD增益。

总之,光标位置引擎113被实施以在由2D输入装置控制的光标在3D环境(诸如虚拟环境或增强现实环境)中的3D场景(诸如VR场景或AR场景)内移动时连续地确定光标的3D位置。3D场景显示在3D显示器(诸如VR头戴式装置或AR头戴式装置)上。光标位置引擎113至少部分地基于当前用户视点和当前鼠标运动来为3D场景的当前帧确定光标的3D位置。

首先,光标位置引擎113接收前一光标射线RP,其是为正好在当前帧之前的前一帧而确定的。前一光标射线RP起源于前一用户视点并指向前一帧中的前一光标位置的方向。光标位置引擎113然后基于当前用户视点更新前一光标射线RP的原点以为当前帧生成初始光标射线R0。光标位置引擎113然后基于当前鼠标运动更新初始光标射线R0的方向以为当前帧生成最终光标射线R1。具体地,角运动量(增量运动)是基于2D输入装置的当前运动(增量运动)和CD增益值来确定的。CD增益值可以是默认值或由CD增益引擎115计算的值。然后将增量运动与初始光标射线R0相加以为当前帧生成最终光标射线R1。

一旦为当前帧确定了最终光标射线R1的方向,光标位置引擎113就确定最终光标射线R1的深度。为此,光标位置引擎113将最终光标射线R1投射到3D场景中以确定最终光标射线R1是否与3D场景内的任何可选虚拟对象相交。如果是,则将最终光标射线R1的深度设置为等于相交对象的深度。如果未发现相交对象,则光标位置引擎113基于3D场景内的一个或多个可选对象执行插值技术以确定最终光标射线R1的插值深度。在一些实施方案中,执行插值技术以基于维诺图确定包括光标的自然邻域集合的可选对象集合。然后将诸如拉普拉斯插值算法的插值算法应用于自然邻域集合以计算最终光标射线R1的深度。

一旦为当前帧确定了最终光标射线R1的深度,光标位置引擎113然后基于最终光标射线R1的方向和深度来确定光标在3D场景的当前帧内的3D位置。然后当前帧被渲染并显示在3D显示器上,当前帧包括位于3D场景内的当前3D位置处的光标的图形图像。

所公开技术相对于现有技术的至少一个技术优势在于,所公开技术使得2D输入装置能够无缝地集成在3D环境内。所公开技术为显示在3D显示器(诸如VR或AR头戴式装置)上的3D环境的每一帧,连续地确定由2D输入装置控制的光标的深度。光标的深度是基于当前显示在3D环境内的一个或多个3D对象的位置而确定的。通过这种方式,所公开技术提供光标在3D环境内的深度连续性,这实现了在3D环境内的平稳和连续的对象选择以及光标运动。因此,相对于现有技术系统,所公开技术提高了用户执行生产性工作的效率并提高了整体用户体验。这些技术优点表示相对于现有技术方法的一种或多种技术改进。

总之,CD增益引擎115被实施以计算控制显示(CD)增益,其针对与3D界面(诸如VR界面或AR界面)一起操作的2D输入装置进行了优化。具体地,CD增益引擎115被实施以计算针对在由3D显示器(诸如VR头戴式装置或AR头戴式装置)显示的3D环境中利用的2D输入装置进行了优化的CD增益。CD增益引擎115可以至少部分地基于2D输入装置和3D显示器的规范来确定CD增益。

CD增益引擎115通过执行查看算法来计算CD增益,所述查看算法确定在3D环境中显示的对象的最小对象尺寸(最小角尺寸)对于人眼是可辨别的(对于包括图形的对象)或辨认的(对于包括文本字符的对象)。CD增益引擎115然后执行增益算法,所述增益算法基于2D输入装置和3D显示器的最小对象尺寸和规范来确定CD增益值的范围。CD增益值的范围包括最小CD增益值和最大CD增益值。CD增益引擎115然后选择CD增益值的范围之间的CD增益值。

CD增益引擎115然后将CD增益值传输到光标位置引擎113以执行光标位置引擎113的所公开技术。在其他实施方案中,CD增益值可以用在任何基于3D的界面中以将2D装置运动映射到在3D显示器上显示的3D环境内的对应光标运动。通常,在第II节中关于光标位置引擎113公开的技术和在第III节中关于CD增益引擎115公开的技术可以单独且独立地执行,或者可以结合地执行。

所公开技术相对于现有技术的至少一个技术优势在于,所公开技术提供了针对在3D界面中利用的2D输入装置优化的控制显示(CD)增益。优化的CD增益是基于2D输入装置和显示3D环境的3D显示器(诸如VR或AR头戴式装置)的规范而确定的。所公开技术提供了一种CD增益,所述CD增益减少了2D输入装置的过度接合,同时维持2D输入装置的令人满意的精度水平。通过这种方式,所公开技术实现了在3D环境内有效和准确的对象选择和光标运动。因此,相对于现有技术系统,所公开技术提高了用户执行生产性工作的效率并提高了整体用户体验。这些技术优点表示相对于现有技术方法的一种或多种技术改进。

在以下编号的条款中阐述本文描述的主题的各方面。

1.在一些实施方案中,一种用于确定三维(3D)场景内的光标位置的计算机实现的方法,所述方法包括:基于当前用户视点和控制光标的二维(2D)输入装置的当前输入运动,为所述3D场景的当前帧生成指向所述光标的最终光标射线;确定所述3D场景内的一个或多个对象是所述光标的自然邻域;基于所述一个或多个对象确定所述最终光标射线的深度;以及显示所述3D场景的所述当前帧,其中所显示的所述当前帧包括位于所述3D场景内的3D位置处的所述光标,所述3D位置基于所述最终光标射线和所述最终光标射线的所述深度而确定。

2.如条款1所述的计算机实现的方法,其中生成所述最终光标射线包括基于所述2D输入装置的所述当前输入运动为所述3D场景的前一帧更新指向所述光标的初始光标射线。

3.如条款1至2中任一项所述的计算机实现的方法,其中确定所述3D场景内的所述一个或多个对象包括将所述一个或多个对象和所述光标投影到2D平面上。

4.如条款1至3中任一项所述的计算机实现的方法,其中确定所述3D场景内的所述一个或多个对象还包括在所述2D平面上生成维诺图。

5.如条款1至4中任一项所述的计算机实现的方法,其中投影到所述2D平面上的所述一个或多个对象和所述光标包括所述维诺图的种子点。

6.如条款1至5中任一项所述的计算机实现的方法,其中所述维诺图包括与所述光标相对应的维诺单元和与包括在所述一个或多个对象中的每个对象相对应的不同维诺单元,其中与包括在所述一个或多个对象中的对象相对应的每个维诺单元与和所述光标相对应的所述维诺单元共享边缘。

7.如条款1至6中任一项所述的计算机实现的方法,其中确定所述最终光标射线的所述深度包括对所述一个或多个对象执行一种或多种插值运算以确定所述最终光标射线的插值深度。

8.如条款1至7中任一项所述的计算机实现的方法,其中执行所述一种或多种插值运算包括基于所述当前用户视点与所述一个或多个对象中的每个对象之间的距离对所述最终光标射线的所述深度进行插值。

9.如条款1至8中任一项所述的计算机实现的方法,其中所述一种或多种插值运算是基于拉普拉斯插值算法。

10.在一些实施方案中,一种或多种非暂时性计算机可读介质包括指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器通过执行以下步骤来确定三维(3D)场景内的光标位置:基于当前用户视点和控制光标的二维(2D)输入装置的当前输入运动,为所述3D场景的当前帧生成指向所述光标的最终光标射线;确定所述3D场景内的一个或多个对象是所述光标的自然邻域;基于所述一个或多个对象确定所述最终光标射线的深度;以及显示所述3D场景的所述当前帧,其中所显示的所述当前帧包括位于所述3D场景内的3D位置处的所述光标,所述3D位置基于所述最终光标射线和所述最终光标射线的所述深度而确定。

11.如条款10所述的一种或多种非暂时性计算机可读介质,其中确定所述3D场景内的所述一个或多个对象包括:将所述一个或多个对象和所述光标投影到2D平面上;以及在所述2D平面上生成维诺图。

12.如条款10至11中任一项所述的一种或多种非暂时性计算机可读介质,其中投影到所述2D平面上的所述一个或多个对象和所述光标包括所述维诺图的种子点。

13.如条款10至12中任一项所述的一种或多种非暂时性计算机可读介质,其中所述3D场景包括显示在虚拟现实(VR)头戴式装置上的VR场景,并且所述一个或多个对象包括一个或多个虚拟对象。

14.如条款10至13中任一项所述的一种或多种非暂时性计算机可读介质,其中所述3D场景包括显示在增强现实(AR)头戴式装置上的AR场景,并且所述一个或多个对象包括至少一个虚拟对象和至少一个现实世界对象。

15.如条款10至14中任一项所述的一种或多种非暂时性计算机可读介质,其中所述最终光标射线是基于施加于所述2D输入装置的所述当前输入运动的控制显示(CD)增益而生成的,其中所述CD增益是针对所述2D输入装置和显示所述3D场景的3D显示器而优化的。

16.在一些实施方案中,一种工作站包括:存储器,所述存储器包括指令;以及至少一个处理器,所述至少一个处理器耦合到所述存储器,并且在执行所述指令时,通过执行以下步骤来确定三维(3D)场景内的光标位置:基于当前用户视点和控制光标的二维(2D)输入装置的当前输入运动,为所述3D场景的当前帧生成指向所述光标的最终光标射线;确定所述3D场景内的一个或多个对象是所述光标的自然邻域;基于所述一个或多个对象确定所述最终光标射线的深度;以及显示所述3D场景的所述当前帧,其中所显示的所述当前帧包括位于所述3D场景内的3D位置处的所述光标,所述3D位置基于所述最终光标射线和所述最终光标射线的所述深度而确定。

17.如条款16所述的工作站,其中确定所述3D场景内的所述一个或多个对象包括:将所述一个或多个对象和所述光标投影到2D平面上;以及在所述2D平面上生成维诺图。

18.如条款16至17中任一项所述的工作站,其还包括:虚拟现实(VR)头戴式装置,其中所述3D场景包括显示在所述VR头戴式装置上的VR场景,并且所述一个或多个对象包括一个或多个虚拟对象。

19.如条款16至18中任一项所述的工作站,其还包括:增强现实(AR)头戴式装置,其中所述3D场景包括显示在所述AR头戴式装置上的AR场景,并且所述一个或多个对象包括至少一个虚拟对象和至少一个现实世界对象。

20.如条款16至19中任一项所述的工作站,其还包括:2D输入装置;以及3D显示器,所述3D显示器显示所述3D场景,其中所述最终光标射线是基于施加于所述2D输入装置的所述当前输入运动的控制显示(CD)增益而生成的,其中所述CD增益是针对所述2D输入装置和所述3D显示器而优化的。

权利要求中的任一项阐述的权利要求要素中的任一者和/或本申请中描述的任何要素以任何方式进行的任何和所有组合都落在本发明实施方案和保护的设想范围内。

已经出于说明目的呈现了对各种实施方案的描述,但是这些描述并不意图是详尽的或限于所公开的实施方案。在不脱离所描述的实施方案的范围和精神的情况下,许多修改和变化对于本领域普通技术人员将是显而易见的。

本发明实施方案的方面可体现为系统、方法或计算机程序产品。因此,本公开的方面可采取完全硬件实施方案、完全软件实施方案(包括固件、常驻软件、微代码等)或结合软件和硬件方面的实施方案的形式,所述软件和硬件方面在本文中通常可全部称为“模块”或“系统”。另外,本公开中描述的任何硬件和/或软件技术、过程、功能、部件、引擎、模块或系统都可被实施为电路或一组电路。此外,本公开的各方面可采用体现在一个或多个计算机可读介质中的计算机程序产品的形式,该一个或多个计算机可读介质具有在其上体现的计算机可读程序代码。

可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子、非暂时性、磁性、光学、电磁、红外或半导体系统、设备或装置或者前述的任何合适的组合。计算机可读存储介质的更具体示例(非详尽列表)将包括以下项:具有一条或多条电线的电气连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光学存储装置、磁性存储装置或者前述的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是可以包含或存储由或结合指令执行系统、设备或装置使用的程序的任何有形介质。

上文参考根据本公开的实施方案的方法、设备(系统)和计算机程序产品的流程图和/或框图来描述本公开的各方面。应当理解,流程图和/或框图的每个框以及流程图和/或框图中的框组合可以由计算机程序指令来实施。这些计算机程序指令可提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器以产生机器。所述指令在经由计算机或其他可编程数据处理设备的处理器执行时使得能够实施在流程图和/或框图的一个或多个框中指定的功能/动作。此类处理器可以是但不限于通用处理器、专用处理器、专用处理器或现场可编程门阵列。

附图中的流程图和框图示出了根据本公开的各种实施方案的系统、方法和计算机程序产品的可能实施方式的架构、功能性和操作。在这方面,流程图或框图中的每个框可表示包括用于实施指定的逻辑功能的一个或多个可执行指令的代码的模块、片段或部分。还应注意,在一些替代实施方式中,框中指出的功能可不按附图中指出的次序发生。例如,连续示出的两个框实际上可基本上同时执行,或者所述框有时可按相反的次序执行,这取决于所涉及的功能。还应当注意,框图和/或流程图的每个框以及框图和/或流程图中的框的组合可以由执行指定功能或动作或执行专用硬件与计算机指令的组合的基于专用硬件的系统来实施。

尽管前述内容涉及本公开的实施方案,但是在不脱离本公开的基本范围的情况下可设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。

相关技术
  • 针对用于二维和三维环境的多用途输入装置的系统和方法
  • 数控机床系统中输入二维图形来实现三维图形加工的方法
技术分类

06120115929289