CN117591054A - 显示方法、头戴式显示设备、计算设备以及存储介质 - Google Patents
显示方法、头戴式显示设备、计算设备以及存储介质 Download PDFInfo
- Publication number
- CN117591054A CN117591054A CN202311579256.8A CN202311579256A CN117591054A CN 117591054 A CN117591054 A CN 117591054A CN 202311579256 A CN202311579256 A CN 202311579256A CN 117591054 A CN117591054 A CN 117591054A
- Authority
- CN
- China
- Prior art keywords
- mounted display
- display device
- camera
- head
- devices
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000033001 locomotion Effects 0.000 claims abstract description 101
- 238000009877 rendering Methods 0.000 claims abstract description 37
- 239000013598 vector Substances 0.000 claims description 60
- 239000011159 matrix material Substances 0.000 claims description 36
- 239000011521 glass Substances 0.000 claims description 25
- 238000013519 translation Methods 0.000 claims description 12
- 238000005259 measurement Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 abstract description 13
- 238000006243 chemical reaction Methods 0.000 abstract description 7
- 238000004422 calculation algorithm Methods 0.000 description 15
- 239000004984 smart glass Substances 0.000 description 11
- 230000014616 translation Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000002085 persistent effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/012—Head tracking input arrangements
Abstract
本公开涉及一种显示方法、头戴式显示设备、计算设备以及存储介质。获取一个或多个第一设备的第一姿态信息,其中,所述第一姿态信息用于表征所述第一设备从第一状态到达第二状态所经过的运动;基于一个或多个所述第一姿态信息对头戴式显示设备的相机参数进行调整;基于一次或多次调整后的相机参数重新渲染所述头戴式显示设备的画面。由此,当用户不方便通过头部的运动控制画面的旋转、缩放以及移动等变换时,可以通过控制第一设备做出相应运动实现相应的画面变换效果,因而可以提升用户体验。
Description
技术领域
本公开涉及屏幕显示领域,特别是涉及一种显示方法、头戴式显示设备、计算设备以及存储介质。
背景技术
头戴式显示设备可以为用户提供显示服务。然而,通常头戴式显示设备只能跟随用户头部的转动而变换所显示的画面的视角。这种画面控制方式会给用户带来不便。例如,在用户躺着观看时不方便转动头部,也就无法自由调整画面视角。
发明内容
本公开实施例提供了用于控制头戴式显示设备的画面的方法、以及相应的执行这些方法的头戴式显示设备、计算设备和非暂时性机器可读存储介质等。
根据本公开的第一个方面,提供了一种显示方法,包括:获取一个或多个第一设备的第一姿态信息,其中,所述第一姿态信息用于表征所述第一设备从第一状态到达第二状态所经过的运动;基于一个或多个所述第一姿态信息对头戴式显示设备的相机参数进行调整;基于一次或多次调整后的相机参数重新渲染所述头戴式显示设备的画面。
可选地,所述运动包括平移运动和/或旋转运动,所述相机参数包括相机位置和/或相机视角,所述调整由预定的对应关系确定,所述对应关系包括第一对应关系和/或第二对应关系,所述第一对应关系用于表征所述第一设备的平移方向与所述相机位置的移动方向之间的对应关系,所述第二对应关系用于表征第一设备的旋转方向与所述相机视角的旋转方向之间的对应关系。
可选地,基于一个或多个所述第一姿态信息对头戴式显示设备的相机参数进行调整,包括:基于一个或多个所述第一姿态信息所表征的平移运动,移动所述相机位置;并且/或者基于一个或多个所述第一姿态信息所表征的旋转运动,旋转所述相机视角。
可选地,所述第一姿态信息所表征的旋转运动用四元数表示;基于一个或多个所述第一姿态信息所表征的旋转运动,旋转所述相机视角,包括:利用一个或多个所述四元数分别对相机视角的三个方向向量中的至少两个方向向量进行旋转,得到至少两个旋转后的方向向量;基于一次或多次调整后的相机参数重新渲染所述头戴式显示设备的画面,包括:基于一次或多次调整后的相机位置和至少两个方向向量得到视图矩阵;利用所述视图矩阵重新渲染所述头戴式显示设备的画面。
可选地,利用一个或多个所述四元数分别对相机视角的三个方向向量中的至少两个方向向量进行旋转,得到至少两个旋转后的方向向量,包括:对方向向量进行转置;基于转置后的方向向量、一个或多个所述四元数以及一个或多个转置后的所述四元数得到旋转后的方向向量。
可选地,该方法还包括:获取所述头戴式显示设备的第二姿态信息,其中,所述第二姿态信息用于表征所述头戴式显示设备从第三状态到达第四状态所经过的运动,基于一个或多个所述第一姿态信息对头戴式显示设备的相机参数进行调整,包括:基于一个或多个所述第一姿态信息以及所述第二姿态信息,对头戴式显示设备的相机参数进行调整。
可选地,获取一个或多个第一设备的第一姿态信息,包括:接收一个或多个第一设备发送的第一姿态信息,所述第一姿态信息是由所述第一设备基于该第一设备中的惯性测量单元采集的运动数据进行计算得到的;或者接收一个或多个第一设备发送的运动数据,基于所述运动数据计算所述第一设备的第一姿态信息。
可选地,所述头戴式显示设备为智能眼镜;并且/或者所述第一设备为适于用户携带或使用的设备;并且/或者所述第一设备为智能手机、智能手表、智能表带、智能指环以及手柄中的任意一种。
根据本公开的第二个方面,提供了一种头戴式显示设备,包括:显示器;通信模块,用于与一个或多个第一设备通信;处理器;存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上文第一个方面述及的方法,以重新渲染所述头戴式显示设备的画面,所述显示器输出重新渲染后的画面。
根据本公开的第三个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面所述的方法。
根据本公开的第四个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了根据本公开一个实施例的显示方法的示意性流程图。
图2示出了根据本公开另一个实施例的显示方法的示意性流程图。
图3示出了图2所示方法在一个具体场景下的示意图。
图4示出了根据本公开一个实施例的显示方法的原理示意图。
图5示出了根据本公开一个实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员应理解,本公开的说明书、权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象的,而非用于描述特定的顺序或先后次序,不存在额外的限定作用。
头戴式显示设备是指通过佩戴在用户头部为用户提供显示服务的电子设备。
头戴式显示设备提供的显示服务可以是但不限于AR(Augmented Reality,增强现实)服务、VR(Virtual Reality,虚拟现实)服务、MR(Mixed Reality,混合现实)服务。
头戴式显示设备的设备类型可以是但不限于智能眼镜。
第一设备是指适于用户携带或使用的且不同于头戴式显示设备的设备。示例性的,第一设备可以是但不限于智能手机、智能手表、智能表带、智能指环以及手柄中的任意一种。
用户在使用头戴式显示设备的过程中,可以通过转动头部控制头戴式显示设备的转动,并进而控制头戴式显示设备所显示的画面的视角的转动。然而,这种画面控制方式并非适用于所有场景。例如,用户躺着观看时不方便转动头部,也就无法自由变换画面视角。
针对上述情况,本公开提出,可以借助一个或多个第一设备的运动(例如平移和/或旋转),控制头戴式显示设备所显示的画面的变化(例如画面缩放和/或画面视角变换)。
即,本公开可以将一个或多个第一设备的运动作用于头戴式显示设备,控制头戴式显示设备所显示的画面的变化。如此,当用户不方便通过头部的运动控制头戴式显示设备的画面时,只需要控制一个或多个第一设备做出相应运动即可。
下面结合具体实施例就本公开涉及的细节做进一步示例性说明。
图1示出了根据本公开一个实施例的显示方法的示意性流程图。图1所示方法可通过计算机程序以软件方式实现,还可通过特定配置的计算装置来执行。示例性的,图1所示方法可以由头戴式显示设备执行,头戴式显示设备与第一设备可以通过有线(如USB)和/或无线(如WIFI)的方式连接,以建立数据传输通道。
参见图1,在步骤S110,获取一个或多个第一设备的第一姿态信息,其中,第一姿态信息用于表征第一设备从第一状态到达第二状态所经过的运动。
第一状态是指第一设备经过运动前的状态,第一状态也可以称为初始状态。第二状态是指第一设备经过运动后的状态,第二状态也可以称为第一设备的终止状态或当前状态。第一姿态信息反映的是第一设备经过何种运动以从第一状转为第二状态。
第一设备的运动可以由用户触发,该用户可以是指头戴式显示设备的使用者。即,可以由头戴式显示设备的使用者控制第一设备进行运动。可选地,触发第一设备的运动的用户也可以不同于头戴式显示设备的使用者,如此当头戴式显示设备的使用者不方便操作第一设备时可以告知其他用户控制第一设备做出相应运动。
第一设备在空间中的运动可以是一个持续预定时长(如数秒)的运动。本公开所获取的第一姿态信息所表征的运动可以是指第一设备在所述预定时长内发生的整个运动,也可以是指第一设备在所述预定时长内的一个极短时间(如数毫秒)内发生的运动。
示例性的,本公开可以实时获取第一设备的第一姿态信息,例如第一设备可以实时向头戴式显示设备发送第一姿态信息。由此,本公开所获取的第一姿态信息所表征的运动可以是指第一设备在一个极短时间(如数毫秒)内发生的运动。如此,可以降低用户通过第一设备控制头戴式显示设备的画面变换的反应延迟,提升用户体验。
第一设备的运动可以包括“平移运动”和“旋转运动”中的任意一种或两种。相应地,第一姿态信息可以包含“平移信息”和“旋转信息”中的任意一种或两种。
第一设备中一般设有惯性测量单元(Inertial measurement unit,IMU),并且第一设备一般具备一定的数据处理能力。因此,在一些实施例中,本公开可以直接接收一个或多个第一设备发送的第一姿态信息。第一姿态信息是由第一设备基于该第一设备中的惯性测量单元采集的运动数据进行计算得到的。在另一些实施例中,本公开也可以接收一个或多个第一设备发送的运动数据,基于运动数据计算第一设备的第一姿态信息。即,第一姿态信息可以由第一设备计算,也可以由执行本公开的方法的主体(如头戴式显示设备)计算。
惯性测量单元主要包括陀螺仪和加速度计。陀螺仪可以用来测量三轴的角速度。加速度计可以用来测量三轴的加速度。平移信息的一种示例性计算方式可以概括为:先对加速度计的测量数据(即加速度数据)进行积分得到速度数据;再对速度数据进行积分得到能够表征第一设备的平移运动的平移信息。旋转信息的一种示例性计算方式可以概括为:通过对陀螺仪的测量数据(即角速度数据)进行积分,得到能够表征第一设备的旋转运动的旋转信息。考虑到噪声干扰、测量误差以及漂移等问题,在实际计算过程中,可以进行滤波和平滑处理,且可以结合其他传感器(如磁力计和气压计)进行误差校正和补偿,以提高计算结果的准确性。
以旋转信息为例,可以采用3DoF(Three degree of freedom)算法计算第一设备的旋转姿态(即旋转信息)。3DoF中的三个自由度,分别是绕X轴、Y轴以及Z轴的旋转运动。3DoF算法的输入是IMU数据(如可以包括陀螺仪的测量数据和加速度计的测量数据,或者还可以包括磁力计数据),3DoF算法的输出可以是用于表征旋转运动的四元数。3DoF算法具体可以采用但不限于Madgwick算法、Mahony算法、Extended Kalman Filter(EKF)算法、Complementary Filter算法。其中,Madgwick算法和Mahony算法是一种基于四元数的互补滤波计算方法;EKF算法是一种基于卡尔曼滤波的状态估计方法;Complementary Filter算法是一种基于加权平均的滤波方法。
在步骤S120,基于一个或多个第一姿态信息对头戴式显示设备的相机参数进行调整。
相机参数是指渲染中相机(Camera)的参数,例如相机在场景中的位置、方向、焦距、景深等,在本文中我们使用相机参数来定义相机在场景的位置和视角。在渲染(如3D渲染)中相机是用于创建视角和渲染场景的重要工具,相机定义了渲染时所观察的位置、角度和视野范围。可以理解,在一个3D场景中可以包括多个不同或者相同的相机,例如使用两个相同的相机在同一个屏幕上创造分屏效果,或者使用不同的相机渲染出不同景深的图形。
对相机参数的调整由预定的对应关系确定。即,可以按照预定的对应关系调整相机参数。相机参数主要包括相机位置和相机视角。如上文所述,第一姿态信息所表征的运动包括平移运动和/或旋转运动。一般而言,平移运动可以对应相机位置的调整,旋转运动可以对应相机视角的调整。即,可以根据第一设备的平移运动调整相机位置,可以根据第一设备的旋转运动调整相机视角。
示例性的,对应关系可以包括第一对应关系和/或第二对应关系。第一对应关系用于表征第一设备的平移方向与相机位置的移动方向之间的对应关系。第二对应关系用于表征第一设备的旋转方向与相机视角的旋转方向之间的对应关系。
第一设备的平移方向与相机位置的移动方向之间的对应关系可以是相同的关系。举例来说,第一设备左移可以对应于相机位置左移,与此对应的画面渲染效果是画面右移;第一设备前移可以对应于相机位置前移,与此对应的画面渲染效果是画面放大;第一设备上移可以对应于相机位置上移,与此对应的画面渲染效果是画面下移。
相应地,第一设备的旋转方向与相机视角的旋转方向之间的对应关系也可以是相同的关系。举例来说,第一设备向左旋转可以对应于相机视角向左旋转,与此对应的画面渲染效果是画面向右旋转;第一设备向上旋转可以对应于相机视角向上旋转,与此对应的画面渲染效果是画面向下旋转。
需要说明的是,第一设备的平移方向与相机位置的移动方向之间的对应关系,以及第一设备的旋转方向与相机视角的旋转方向之间的对应关系,除了上文述及的相同的关系之外,还可以是其他多种形式的对应关系。例如,第一设备左移还可以对应于相机位置右移,甚至还可以对应于相机前移;第一设备向左旋转还可以对应于相机视角向右旋转,甚至还可以对应于相机视角向上旋转。第一设备的运动方向(平移方向和/或旋转方向)与相机的运动方向(相机位置移动方向和/或相机视角的旋转方向)之间的具体对应关系可以是预先设定好的,也可以由用户自定义设置。
在执行步骤S120时,可以基于一个或多个第一姿态信息所表征的平移运动,移动相机位置;并且/或者可以基于一个或多个第一姿态信息所表征的旋转运动,旋转相机视角。
在移动相机位置时,可以根据第一姿态信息所表征的平移运动的平移量按照一定比例对相机位置进行移动。相应地,在旋转相机视角时,可以根据第一姿态信息所表征的旋转运动的旋转量按照一定比例对相机视角进行旋转。其中,第一姿态信息所表征的运动的运动量与相机参数调整量之间的具体比例关系可以灵活设置。例如可以是一比一的关系,即可以根据第一姿态信息所表征的运动的运动量,对相机参数进行等量的调整。
在基于多个对应不同第一设备的第一姿态信息调整相机参数时,可以基于多个第一姿态信息对相机参数进行多次调整。其中,多次调整中的每次调整,是指在最近一次调整后得到的相机参数的基础上进行再次调整。由此,经过多次调整后的相机参数可以视为多个第一设备的运动叠加后的作用结果。举例来说,假设两个第一设备向同一方向转动一定角度,那么对相机参数(此处为相机视角)进行的两次调整等于基于这两个第一设备所转动的角度的叠加对相机参数进行一次调整。
在基于多个对应不同第一设备的第一姿态信息调整相机参数时,也可以先将多个第一姿态信息进行融合,然后基于融合后的姿态信息对相机参数进行一次调整。
即,在获取到多个对应不同第一设备的第一姿态信息后,可以基于多个第一姿态信息对相机参数进行多次调整,也可以先将多个第一姿态信息融合为一个姿态信息,然后基于融合后的姿态信息对相机参数进行一次调整。
在步骤S130,基于一次或多次调整后的相机参数重新渲染头戴式显示设备的画面。
基于调整后的相机参数重新渲染画面的操作可以交由GPU(Graphics ProcessingUnit,图形处理器)执行。经过一次或多次调整后的相机参数可以反映用户(即头戴式显示设备的使用者)期望的相机位置、方向和朝向。因此,基于一次或多次调整后的相机参数重新渲染后的画面符合用户的画面调整需求。
本公开通过基于第一设备的运动调整相机参数,并基于调整后的相机参数重新渲染头戴式显示设备的画面,使得头戴式显示设备的画面可以跟随第一设备的运动而运动。由此,当用户不方便通过头部的运动控制画面变换(如画面缩放、画面偏移和/或画面视角的旋转)时,可以通过控制第一设备做出相应运动实现画面变换,因而可以提升用户体验。
在一些实施例中,本公开还可以支持第一设备和头戴式显示设备同时控制画面渲染。具体而言,本公开还可以获取头戴式显示设备的第二姿态信息。第二姿态信息用于表征头戴式显示设备从第三状态到达第四状态所经过的运动。第三状态是指头戴式显示设备经过运动前的状态,第三状态也可以称为初始状态。第四状态是指头戴式显示设备经过运动后的状态,第四状态也可以称为头戴式显示设备的终止状态或当前状态。第二姿态信息反映的是头戴式显示设备经过何种运动以从第三状转为第四状态。与上文述及的第一姿态信息类似,第二姿态信息所表征的运动可以是指头戴式显示设备在预定时长内发生的整个运动,也可以是指头戴式显示设备在预定时长内的一个极短时间(如数毫秒)内发生的运动。由此,在执行步骤S120时,可以基于一个或多个第一姿态信息以及第二姿态信息,对头戴式显示设备的相机参数进行调整。由此,调整后的相机参数相当于第一设备和头戴式显示设备的运动的叠加结果。具体调整原理可以参见上文相关描述。
至此结合图1就本公开的显示方法的基本原理做了示例性说明。
对相机参数的调整涉及对相机位置的调整和对相机视角的调整。对相机位置的调整,可以根据一个或多个第一姿态信息(可选地还可以包括第二姿态信息)所表征的平移运动对相机位置按照一定比例进行移动即可。其中,平移运动可以用向量表示。对相机位置的调整可以通过对相机位置所对应的坐标进行向量加减运算得到。下面着重就相机视角的调整过程以及基于调整后的相机参数的画面重新渲染过程做进一步示例性说明。
第一姿态信息(可选地还可以包括第二姿态信息)所表征的旋转运动可以用四元数表示。相机视角包含三个方向,分别是向前(即正前方向)、向上(即上方向)、向右(即右方向)。在相机视角所包含的三个方向中两个方向(如正前方向和上方向)确定后,另一个方向可以通过所确定的两个方向向量进行计算(如叉乘)得到。因此,在旋转相机视角时,可以利用一个或多个四元数分别对相机视角的三个方向向量中的至少两个方向向量进行旋转,得到至少两个旋转后的方向向量。
利用四元数对方向向量进行旋转的计算方式可以描述为,先对方向向量进行转置,然后基于转置后的方向向量、一个或多个四元数以及一个或多个转置后的四元数得到旋转后的方向向量。其中,要转置的方向向量可以视为一个实部为0的四元数,也即1×4矩阵。四元数可以视为一个4×1的矩阵。参与计算的四元数均为归一化后的四元数,若四元数未归一化,则还可以对四元数进行归一化处理。由于参与计算的四元数为归一化的四元数,而归一化的四元数的逆等于四元数的转置,因此本公开述及的转置后的四元数也可以替换为四元数的逆。
以利用一个四元数对向量v=[x,y,z]进行一次旋转为例,首先可以将v变换为[0,x,y,z],然后对其进行转置以构造出一个4×1的矩阵p,p=[0,x,y,z]T=[0,v]T。对向量v进行一次旋转的计算公式可以记为:p′=qpq-1。其中,q为四元数。q-1为四元数的逆,也即转置后的四元数。p为转置后的向量。在得到p′后,即可得到旋转后的向量v′,p′=[0,x′,y′,z′]T,v′=(x′,y′,z′)。
在因多个设备的旋转运动而产生多个四元数时,需要将这多个四元数都作用于向量v。此时,可以基于这多个四元数对向量v进行多次旋转。计算原理如下:首先可以根据向量v构造出4x1的矩阵p;使用第一个四元数q1对向量v进行旋转得到p1,p1=q1pq1 -1;然后使用第二个四元数q2对第一次旋转后的向量进行旋转得到p2,p2=q2p1q2 -11;以此类推,使用n个四元数进行n次旋转后得到的pn可以记为:pn=qnpn-1qn -1。将pn展开可以得到pn=qnqn-1…q1pq1 -1q2 -1…qn -1。假设Q=qnqn-1…q1,则上述公式可以简化为pn=QpQ-1。最后从pn=[0,xn,yn,zn]h可以得到旋转后的向量v′,v′=(xn,yn,zn)。
相机的三个方向向量可以分别记为vfront、vup、vright。其中,vfrint为对应向前的方向向量,vup为对应向上的方向向量,vright为对应向右的方向向量。旋转后的新的三个方向向量可以记为v′front、v′up、v′right。
基于上述使用一个或多个四元数旋转一个向量的原理,可以基于一个或多个四元数分别对三个方向向量中的至少两个方向向量(例如vfront和vup)进行旋转,得到至少两个旋转后的方向向量。在利用四元数对三个方向向量中的两个方向向量进行旋转时,对于另外一个方向向量(例如vright)可以基于旋转后的两个方向向量(例如vfront和vup)计算(例如叉乘)这一方向向量的旋转后结果。
在得到调整后的相机参数后,可以基于调整后的相机参数得到视图矩阵。视图矩阵也可以称为View矩阵。视图矩阵定义了相机的位置、方向和朝向,以及相机的视角和投影方式。视图矩阵在图形渲染中扮演着关键角色,决定了场景是如何被相机观察和呈现的。通过控制视图矩阵,可以实现不同的相机视角、观察点和投影效果,从而影响最终渲染结果。视图矩阵的生成依赖于相机位置和相机视角所包括的三个方向向量,但是在两个方向向量确定后另一个方向向量可以通过计算得到,因此,可以基于一次或多次调整后的相机位置和至少两个方向向量计算视图矩阵。示例性的,可以利用视图矩阵计算函数基于调整后的相机参数计算视图矩阵。视图矩阵计算函数可以采用但不限于lookAt()。
在图形渲染中,视图矩阵一般是与模型矩阵(Model矩阵)、投影矩阵(Projection矩阵)配合使用的。这三个矩阵可以统称为MVP矩阵。这三个矩阵代表了物体顶点坐标从局部空间转换到裁剪空间,最后以屏幕坐标的形式结束。模型矩阵用于物体顶点坐标从局部空间(即模型空间)到世界空间的转换。视图矩阵用于将物体顶点从世界空间转换到视图空间(即相机坐标系下的空间)。具体存在两种转换方式。一种是利用视图矩阵将场景中的物体从世界坐标系转换到相机坐标系。考虑到将场景中的物体从世界坐标系转换到相机坐标系的工作量较大,也可以利用视图矩阵对相机进行移动,以将相机移动世界坐标系中的标准位置上。即,可以利用视图矩阵对相机进行位置平移和三个轴的角度调整,以将相机移动到标准位置上。投影矩阵用于将顶点从视图空间转换到裁剪空间。在基于MVP矩阵完成整个MVP变换后,可以按照OpenGL(开放图形库)提供的图形渲染管线的渲染流程进行后续处理,以最终将重新渲染后的画面呈现在头戴式显示设备的显示器上。
图2示出了根据本公开另一个实施例的显示方法的示意性流程图。
参见图2,以头戴式显示设备实现为一种智能眼镜(如AR眼镜)为例,智能眼镜可以与智能手机、智能戒指、手柄、智能表带能适于用户使用或携带的设备进行连接。具体连接方式可以包括但不限于USB连接、WIFI连接。
智能手机、智能戒指、手柄、智能表带等设备均可以获取自身的IMU数据,IMU数据经过3DoF算法运算后可以得到各自设备当前在世界坐标系中的姿态。该姿态可以表征设备的平移和/或旋转。示例性的,该姿态可以是用于表征旋转的四元数。然后各设备可以将各自的姿态通过USB/WIFI等方式传输到智能眼镜。
在智能眼镜端可以执行步骤S210,对所有的设备的姿态进行叠加融合。例如,可以将智能眼镜自身的姿态与其他设备的姿态进行融合;然后可以在智能眼镜端执行步骤S220,使用融合后的姿态调整相机参数进行渲染。例如,可以使用融合后的四元数对相机视角进行旋转,并基于旋转后的相机视角重新渲染画面。
由此,本实施例提供的方法可以支持用户使用多台设备控制智能眼镜中的画面,并且控制的方向和单台智能眼镜3dof的控制方向一样,从而实现不用转动头部,就能转动画面的效果。可以有效解决头部不方便转动,但是又要转动画面的场景。比如用户躺着佩戴眼镜时,头部不方便转动,但是需要转动画面,就可以通过转动其他设备来达到这个效果。
本实施例提供了一种多台带IMU传感器的设备控制AR眼镜画面的方式,可以达到同时使用智能眼镜、手柄、手机、指环、表带等带IMU传感器的设备来控制眼镜画面的效果。本实施例理论上支持任意多个设备同时控制眼镜画面。当只有一个设备转动,其他设备不动时,控制效果及方向,和单台智能眼镜3dof效果一致。当多个设备同时转动时,画面将基于多个设备转动方向叠加出来的四元数来进行渲染。比如有2个设备都往左边转动15度,那么智能眼镜渲染出来的画面是向右旋转30度的。
图3示出了图2所示方法在一个具体场景下的示意图。
参见图3,用户可以控制指环向左旋转15度,并且可以控制手机向左旋转15度。指环和手机可以将基于自身发生的旋转而计算得到的姿态信息发送给智能眼镜。智能眼镜可以执行上文述及的显示方法,以将智能眼镜显示的画面向右旋转30度。
图3示出了根据本公开另一个实施例的显示方法的原理示意图。
参见图3,在步骤S410,渲染开始。
在步骤S420,AR眼镜利用3DOF算法输出眼镜当前姿态四元数。
在本实施例中,所输出的姿态四元数可以仅表示AR眼镜的旋转运动。
在步骤S430,其他设备计算各自的姿态四元数。
其他设备对应于上文述及的第一设备。其他设备可以包括但不限于智能眼镜、手柄、手机、指环、表带等带IMU传感器的设备。其他设备所计算的姿态四元数也可以仅表示设备的旋转运动。
在步骤S440,对所有的姿态四元数进行归一化得到多个归一化的姿态四元数。
例如,可以由其他设备将各自的姿态四元数发送到AR眼镜后,由AR眼镜对所有收到的姿态四元数以及自身的姿态四元数进行归一化处理;也可以由其它设备将各自的姿态四元数归一化处理后再发送到AR眼镜,AR眼镜只对自身的姿态四元数进行归一化处理,由此减轻AR眼镜的负载。
在步骤S450,AR眼镜将所有归一化的姿态四元数用来旋转相机的方向向量,得到新的方向向量。
此处AR眼镜可以利用所有归一化的四元数对相机的至少两个方向向量分别进行旋转。
在步骤S460,AR眼镜根据相机的方向向量,得到3D渲染MVP矩阵中的View矩阵,并用以3D渲染。关于View矩阵的计算方式以及MVP矩阵在3D渲染中的作用可以参见上文相关描述.
在步骤S470,判断是否继续渲染。
此处可以根据AR眼镜是否存在新的运动或者是否接收到来自其他设备的新的姿态信息(如四元数),判断是否继续渲染。例如,若AR眼镜存在新的运动,或者接收到来自其他设备的新的姿态信息,则可以判定继续渲染。反之,可以判定结束渲染。若判定继续渲染可以返回步骤S410,开始新一轮的渲染流程。
本公开还提出了一种头戴式显示设备。头戴式显示设备可以包括但不限于显示器、通信模块、处理器以及存储器。通信模块用于与一个或多个第一设备通信。存储器上存储有可执行代码,当可执行代码被处理器执行时,可以使处理器执行上文述及的显示方法,以重新渲染头戴式显示设备的画面,显示器还可以输出重新渲染后的画面。
图5示出了根据本公开一个实施例的计算设备的结构示意图。
参见图5,计算设备500包括存储器510和处理器520。
处理器520可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器520可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器520可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器510可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器520或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器510可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器510可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器510上存储有可执行代码,当可执行代码被处理器520处理时,可以使处理器520执行上文述及的显示方法。
上文中已经参考附图详细描述了根据本公开的显示方法、头戴式显示设备以及计算设备。
此外,根据本公开的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本公开的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本公开还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本公开的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本公开的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (11)
1.一种显示方法,包括:
获取一个或多个第一设备的第一姿态信息,其中,所述第一姿态信息用于表征所述第一设备从第一状态到达第二状态所经过的运动;
基于一个或多个所述第一姿态信息对头戴式显示设备的相机参数进行调整;
基于一次或多次调整后的相机参数重新渲染所述头戴式显示设备的画面。
2.根据权利要求1所述的方法,其中,
所述运动包括平移运动和/或旋转运动,
所述相机参数包括相机位置和/或相机视角,
所述调整由预定的对应关系确定,所述对应关系包括第一对应关系和/或第二对应关系,所述第一对应关系用于表征所述第一设备的平移方向与所述相机位置的移动方向之间的对应关系,所述第二对应关系用于表征第一设备的旋转方向与所述相机视角的旋转方向之间的对应关系。
3.根据权利要求1所述的方法,其中,基于一个或多个所述第一姿态信息对头戴式显示设备的相机参数进行调整,包括:
基于一个或多个所述第一姿态信息所表征的平移运动,移动所述相机位置;并且/或者
基于一个或多个所述第一姿态信息所表征的旋转运动,旋转所述相机视角。
4.根据权利要求3所述的方法,其中,
所述第一姿态信息所表征的旋转运动用四元数表示;
基于一个或多个所述第一姿态信息所表征的旋转运动,旋转所述相机视角,包括:利用一个或多个所述四元数分别对相机视角的三个方向向量中的至少两个方向向量进行旋转,得到至少两个旋转后的方向向量;
基于一次或多次调整后的相机参数重新渲染所述头戴式显示设备的画面,包括:基于一次或多次调整后的相机位置和至少两个方向向量得到视图矩阵;利用所述视图矩阵重新渲染所述头戴式显示设备的画面。
5.根据权利要求4所述的方法,其中,利用一个或多个所述四元数分别对相机视角的三个方向向量中的至少两个方向向量进行旋转,得到至少两个旋转后的方向向量,包括:
对方向向量进行转置;
基于转置后的方向向量、一个或多个所述四元数以及一个或多个转置后的所述四元数得到旋转后的方向向量。
6.根据权利要求1所述的方法,还包括:
获取所述头戴式显示设备的第二姿态信息,其中,所述第二姿态信息用于表征所述头戴式显示设备从第三状态到达第四状态所经过的运动,
基于一个或多个所述第一姿态信息对头戴式显示设备的相机参数进行调整,包括:基于一个或多个所述第一姿态信息以及所述第二姿态信息,对头戴式显示设备的相机参数进行调整。
7.根据权利要求1所述的方法,其中,获取一个或多个第一设备的第一姿态信息,包括:
接收一个或多个第一设备发送的第一姿态信息,所述第一姿态信息是由所述第一设备基于该第一设备中的惯性测量单元采集的运动数据进行计算得到的;或者
接收一个或多个第一设备发送的运动数据,基于所述运动数据计算所述第一设备的第一姿态信息。
8.根据权利要求1所述的方法,其中,
所述头戴式显示设备为智能眼镜;并且/或者
所述第一设备为适于用户携带或使用的设备;并且/或者
所述第一设备为智能手机、智能手表、智能表带、智能指环以及手柄中的任意一种。
9.一种头戴式显示设备,包括:
显示器;
通信模块,用于与一个或多个第一设备通信;
处理器;
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-8中任一项所述的方法,以重新渲染所述头戴式显示设备的画面,所述显示器输出重新渲染后的画面。
10.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至8中任何一项所述的方法。
11.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至8中任何一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311579256.8A CN117591054A (zh) | 2023-11-22 | 2023-11-22 | 显示方法、头戴式显示设备、计算设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311579256.8A CN117591054A (zh) | 2023-11-22 | 2023-11-22 | 显示方法、头戴式显示设备、计算设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591054A true CN117591054A (zh) | 2024-02-23 |
Family
ID=89917794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311579256.8A Pending CN117591054A (zh) | 2023-11-22 | 2023-11-22 | 显示方法、头戴式显示设备、计算设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591054A (zh) |
-
2023
- 2023-11-22 CN CN202311579256.8A patent/CN117591054A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11217019B2 (en) | Presenting image transition sequences between viewing locations | |
CN107636534B (zh) | 用于图像处理的方法和系统 | |
JP6914926B2 (ja) | Imuおよび画像データを使用した合成物体を含む多視点画像データの拡張 | |
RU2638776C1 (ru) | Устройство генерирования изображения и способ | |
US20240112430A1 (en) | Techniques for capturing and displaying partial motion in virtual or augmented reality scenes | |
US10915993B2 (en) | Display apparatus and image processing method thereof | |
JP2020522815A (ja) | 滑らかに変化するフォービエイテッドレンダリング | |
US20120120113A1 (en) | Method and apparatus for visualizing 2D product images integrated in a real-world environment | |
JP2022528432A (ja) | ハイブリッドレンダリング | |
WO2017032336A1 (en) | System and method for capturing and displaying images | |
US11662580B2 (en) | Image display method, apparatus, and system to reduce display latency | |
CN109189302A (zh) | Ar虚拟模型的控制方法及装置 | |
US10388069B2 (en) | Methods and systems for light field augmented reality/virtual reality on mobile devices | |
US11194438B2 (en) | Capture indicator for a virtual world | |
JP6219037B2 (ja) | 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法 | |
CN117591054A (zh) | 显示方法、头戴式显示设备、计算设备以及存储介质 | |
TWI777333B (zh) | 用於設置虛擬對象的空間位置的方法和電子設備 | |
Sinthanayothin et al. | Interactive virtual 3d gallery using motion detection of mobile device | |
CN114419226A (zh) | 全景渲染方法、装置、计算机设备和存储介质 | |
CN106990838B (zh) | 一种虚拟现实模式下锁定显示内容的方法及系统 | |
TW201727351A (zh) | 用以瀏覽全景相片之裝置及其方法 | |
Halnum | Low-latency head-tracking for AR | |
CN116149469A (zh) | 一种基于ar设备的用户行为录制方法及ar设备 | |
CA3199128A1 (en) | Systems and methods for augmented reality video generation | |
KR20240008370A (ko) | 움직이는 객체들의 레이턴시를 최소화하기 위한 늦은 워핑 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |