CN115629670B - 虚拟现实环境下手部姿态的显示方法、装置、设备及介质 - Google Patents
虚拟现实环境下手部姿态的显示方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115629670B CN115629670B CN202211523570.XA CN202211523570A CN115629670B CN 115629670 B CN115629670 B CN 115629670B CN 202211523570 A CN202211523570 A CN 202211523570A CN 115629670 B CN115629670 B CN 115629670B
- Authority
- CN
- China
- Prior art keywords
- model
- coordinate system
- hand
- character
- global coordinate
- 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.)
- Active
Links
Images
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/01—Indexing scheme relating to G06F3/01
- G06F2203/012—Walk-in-place systems for allowing a user to walk in a virtual environment while constraining him to a given position in the physical environment
Abstract
本发明实施例提供了一种虚拟现实环境下手部姿态的显示方法、装置、设备及介质,涉及虚拟现实技术领域,其中,该方法包括:获取手柄姿态数据;根据所述手柄姿态数据,计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,其中,在所述全局坐标系中,所述手部模型的显示位置在所述角色模型的角色躯干模型范围的外部;基于所述手部模型在全局坐标系中的显示位置,在所述虚拟空间中渲染显示所述手部模型的姿态。该方案使得手部模型与角色躯干模型接触或碰撞时避免出现穿模的现象,进而有利于正确表达手部动作和手部姿态。
Description
技术领域
本发明涉及虚拟现实技术领域,特别涉及一种虚拟现实环境下手部姿态的显示方法、装置、设备及介质。
背景技术
目前,已知的基于虚拟现实环境下双手姿态显示方法一般采用以下几种:
1、在虚拟现实环境中,只展示虚拟角色躯干,不展示双手,无手部姿态。
2、在虚拟现实环境中,展示虚拟角色躯干,使用VR设备提供的3D手柄模型表示双手。
3、在虚拟现实环境中,展示虚拟角色躯干,使用3D手模(手部模型)来展示双手,通过特定动画来描述双手姿态。
4、在虚拟现实环境中,展示虚拟角色躯干,使用 3D手摸(手部模型)来展示双手,基于VR设备提供的API驱动手部模型达到展示效果。
但是,基于以上第1、2、3的方法存在的缺陷是,在虚拟现实环境中,表达手部姿态以及手部动作存在局限性,无法准确表达用户的手部姿态和动作。
基于以上第 4的方法存在的缺陷是,在虚拟现实环境中,表达手部姿态和动作时,因模型与模型间碰撞导致相互穿透模型叠加在一起,发生穿模现象,从而无法正确表达手部动作和手部姿态。
发明内容
有鉴于此,本发明实施例提供了一种虚拟现实环境下手部姿态的显示方法,以解决现有技术中因穿模现象而无法正确表达手部动作和手部姿态的技术问题。该方法包括:
获取手柄姿态数据;
根据所述手柄姿态数据,计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,其中,在所述全局坐标系中,所述手部模型的显示位置在所述角色模型的角色躯干模型范围的外部;
基于所述手部模型在全局坐标系中的显示位置,在所述虚拟空间中渲染显示所述手部模型的姿态。
本发明实施例还提供了一种虚拟现实环境下手部姿态的显示装置,以解决现有技术中因穿模现象而无法正确表达手部动作和手部姿态的技术问题。该装置包括:
操作状态监听模块,用于获取手柄姿态数据;
姿态矫正计算模块,用于根据所述手柄姿态数据,计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,其中,在所述全局坐标系中,所述手部模型的显示位置在所述角色模型的角色躯干模型范围的外部;
姿态反馈模块,用于基于所述手部模型在全局坐标系中的显示位置,在所述虚拟空间中渲染显示所述手部模型的姿态。
本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的虚拟现实环境下手部姿态的显示方法,以解决现有技术中因穿模现象而无法正确表达手部动作和手部姿态的技术问题。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的虚拟现实环境下手部姿态的显示方法的计算机程序,以解决现有技术中因穿模现象而无法正确表达手部动作和手部姿态的技术问题。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:提出了根据手柄姿态数据计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,在全局坐标系中,计算得到的该显示位置在角色模型的角色躯干模型范围的外部,进而基于显示位置在虚拟空间中渲染显示手部模型的姿态。由于计算得到的手部模型在全局坐标系中的显示位置在角色模型的角色躯干模型范围的外部,使得手部模型与角色躯干模型接触或碰撞时避免出现穿模的现象,进而有利于正确表达手部动作和手部姿态。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种虚拟现实环境下手部姿态的显示方法的流程图;
图2是本发明实施例提供的一种用户操作过程的流程图;
图3是本发明实施例提供的一种数据传输过程的流程图;
图4是本发明实施例提供的一种数据监听过程的流程图;
图5是本发明实施例提供的一种姿态矫正计算过程的流程图;
图6是本发明实施例提供的一种姿态反馈过程的流程图;
图7是本发明实施例提供的一种计算机设备的结构框图;
图8是本发明实施例提供的一种虚拟现实环境下手部姿态的显示装置的结构框图。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本发明实施例中,提供了一种虚拟现实环境下手部姿态的显示方法,如图1所示,该方法包括:
步骤S101:获取手柄姿态数据;
步骤S102:根据所述手柄姿态数据,计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,其中,在所述全局坐标系中,所述手部模型的显示位置在所述角色模型的角色躯干模型范围的外部;
步骤S103:基于所述手部模型在全局坐标系中的显示位置,在所述虚拟空间中渲染显示所述手部模型的姿态。
由图1所示的流程可知,在本发明实施例中,提出了根据手柄姿态数据计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,在全局坐标系中,计算得到的该显示位置在角色模型的角色躯干模型范围的外部,进而基于显示位置在虚拟空间中渲染显示手部模型的姿态。由于计算得到的手部模型在虚拟空间中的显示位置在角色模型的角色躯干模型范围的外部,使得手部模型与角色躯干模型接触或碰撞时避免出现穿模的现象,进而有利于正确表达手部动作和手部姿态。
具体实施时,虚拟空间的全局坐标系即在虚拟空间中构建的三维坐标系,虚拟空间的原点为全局坐标系的坐标原点。角色模型的自身坐标系即在角色模型中构建的三维坐标系,角色模型的几何中心点为身坐标系的坐标原点,因此,在虚拟空间中包含全局坐标系与自身坐标系两个三维坐标系。
具体实施时,在开始使用VR设备时,如图2所示,通过以下步骤实现资源加载、用户数据采集等过程:
在模型展示过程中,通过资源加载的方式将角色模型(以下统称为:Avatar)加载到虚拟场景中,并进行角色模型数据缓存,以提供用户可观看、可操作的角色模型。
在用户操作过程中,通过以下两个步骤将现实环境中的VR设备与虚拟环境中的Avatar进行绑定:
1、使用VR设备提供的API将VR设备姿态信息(VR设备姿态信息可以包括旋转、坐姿、站姿等)与Avatar的躯干模型姿态信息绑定。
2、使用VR设备提供的API将设备的手柄姿态信息与Avatar的双手模型姿态信息绑定。
在源数据采集过程中,通过以下两个步骤获取源数据最终形成原始数据:
步骤1、通过VR设备提供的API获取VR设备姿态源数据(如旋转、坐姿或站姿等)。
步骤2、通过VR设备提供的API获取VR设备的手柄姿态源数据(如旋转、位置等)。
具体实施时,为了实现VR设备姿态数据和手柄姿态数据的采集过程、手部模型姿态的矫正过程等不同过程的数据共享,可以通过数据传输的方式在不同的数据处理过程间实现数据共享。
具体实施时,在开始使用VR设备时,如图3所示,通过以下步骤实现角色模型的初始赋值:
在原始数据处理过程中,对数据采集过程采集到的原始数据进行预处理,预处理步骤如下:
步骤1、缓存虚拟场景中Avatar模型数据。
步骤2、通过VR设备提供的API取到的VR设备姿态数据(即站姿或坐姿、旋转),将VR设备姿态数据设为VR设备姿态初始值。
步骤3、通过VR设备提供的API取到的手柄姿态数据(即位置、旋转),将手柄姿态数据设为手柄姿态初始值。
将以上步骤2、3设定的初始值分别绑定到虚拟场景中的Avatar的角色躯干模型以及Avatar双手模型,绑定步骤如下:
步骤1、取得缓存中的Avatar模型数据,将VR设备姿态初始值赋值给Avatar的角色躯干模型,以此表示虚拟场景中Avatar的角色躯干模型的高度和旋转。
步骤2、取得缓存中的Avatar模型中的双手模型数据,将手柄姿态初始值赋值给Avatar的双手模型,以此表示虚拟场景中Avatar双手的位置、旋转。
具体实施时,在使用VR设备过程中,如图4所示,通过操作状态监听的方式监听用户的VR设备姿态数据和手柄姿态数据,主要包括用户的设备姿态数据(坐姿、站、旋转等信息),以及用户的手柄姿态数据(即位置、旋转等信息)。为保证实时、正确捕捉VR设备姿态数据和手柄姿态数据,在使用VR设备过程中,进行每帧监听,当监听到设备姿态和手柄姿态有变化时实时获取动态的VR设备姿态数据和手柄姿态数据,并将监听到的VR设备姿态数据和手柄姿态数据传输给姿态矫正过程,以便计算手部模型在虚拟空间中的显示位置。
具体实施时,为了实现准确计算手部模型在虚拟空间中的显示位置,并避免穿模现象,在本实施例中,通过以下步骤计算手部模型在虚拟空间的全局坐标系中的显示位置,例如,
根据所述手柄姿态数据中的位置信息,映射出每只所述手部模型在所述全局坐标系中的位置坐标;
在所述角色模型的自身坐标系中,根据所述角色躯干模型在所述自身坐标系中的坐标范围和每只所述手部模型在所述自身坐标系中的位置坐标,确定每只所述手部模型相对于所述角色躯干模型的相对位置;
根据所述相对位置和每只所述手部模型在所述全局坐标系中的位置坐标,在所述角色躯干模型在所述全局坐标系中的坐标范围之外,确定每只所述手部模型在所述全局坐标系中的显示位置。
具体实施时,为了实现准确、快速确定出每只所述手部模型相对于所述角色躯干模型的相对位置,在本实施例中,通过以下方式确定出每只所述手部模型相对于所述角色躯干模型的相对位置,例如,
在所述自身坐标系中,将每只所述手部模型在X轴上的向量值和所述角色躯干模型中与每只所述手部模型同侧的半边的角色躯干模型在X轴上的向量值进行向量差值(例如,左手的手部模型在X轴上的向量值和所述角色躯干模型中左侧的半边的角色躯干模型在X轴上的向量值进行向量差值),得到在X轴上每只所述手部模型相对所述角色躯干模型的第一偏移量,其中,所述角色躯干模型的几何中心点为所述自身坐标系的坐标原点,X轴表示所述角色躯干模型的左右方向,所述第一偏移量表示每只所述手部模型相对所述角色躯干模型在左右方向上的相对位置,(即表示每只手部模型在角色躯干模型的左侧还是右侧),
在所述自身坐标系中,将每只所述手部模型在Z轴上的向量值和所述角色躯干模型中前半边的角色躯干模型在Z轴上的向量值进行向量差值,得到在Z轴上每只所述手部模型相对所述角色躯干模型的第二偏移量,其中,Z轴表示所述角色躯干模型的前后方向,所述第二偏移量表示每只所述手部模型相对所述角色躯干模型在前后方向上的相对位置(即表示每只手部模型在角色躯干模型的前方还是后方)。
具体的,如图5所示,在自身坐标系中,X轴表示角色躯干模型的左右方向,角色躯干模型在X轴上的向量值表示角色躯干模型的宽度,角色躯干模型在X轴上的向量值的1/2即角色躯干模型一半的宽度,即左半边角色躯干模型在X轴上的向量值或者右半边角色躯干模型在X轴上的向量值,如以X轴的正半轴表示角色躯干模型的左侧,以X轴的负半轴表示角色躯干模型的右侧,基于实时监听到的手柄姿态数据获取手部模型在全局坐标系中的位置坐标后,在自身坐标系中可以将角色躯干模型左半边的宽度(左半边角色躯干模型在X轴上的向量值)与左手模型在X轴上的向量值进行向量差值,得到左手模型相对角色躯干模型左半边的宽度的第一偏移量,若第一偏移量小于0,则左手模型在角色躯干模型左半边的左侧,即左手模型在角色躯干模型的左侧,若第一偏移量大于0,则左手模型在角色躯干模型左半边的内侧,即左手模型不在角色躯干模型的左侧。同理,可以判断右手模型是否在角色躯干模型的右侧。
具体的,在自身坐标系中,Z轴表示角色躯干模型的前后方向,角色躯干模型在Z轴上的向量值表示角色躯干模型的深度,角色躯干模型在Z轴上的向量值的1/2即角色躯干模型一半的深度,前半边角色躯干模型在Z轴上的向量值或者后半边角色躯干模型在Z轴上的向量值,如以Z轴的正半轴表示角色躯干模型的前侧,以Z轴的负半轴表示角色躯干模型的后侧,基于实时监听到的手柄姿态数据获取手部模型在全局坐标系中的位置坐标后,在自身坐标系中,可以将角色躯干模型前半边的深度(前半边角色躯干模型在Z轴上的向量值)与左手(或者右手)模型在Z轴上的向量值进行向量差值,得到左手(或者右手)模型相对角色躯干模型前半边的深度的第二偏移量,若第二偏移量小于0,则左手(或者右手)模型在角色躯干模型前半边的前侧,即左手(或者右手)模型在角色躯干模型的前侧,若第二偏移量大于0,则左手(或者右手)模型在角色躯干模型后半边的后侧,即左手(或者右手)模型在角色躯干模型的后侧。
具体实施时,得到每只手部模型相对于角色躯干模型的相对位置后,为了实现准确计算每只手部模型在全局坐标系中的显示位置,在本实施例中,根据所述相对位置和每只所述手部模型在所述全局坐标系中的位置坐标,在所述角色躯干模型在所述全局坐标系中的坐标范围之外,确定每只所述手部模型在所述全局坐标系中的显示位置,包括:
将所述角色躯干模型在所述全局坐标系中的旋转信息(该旋转信息可以通过将VR设备姿态数据中的旋转信息映射到全局坐标系中得到)与三维向量(1,0,0)做求积运算,得到所述角色躯干模型在所述全局坐标系中的第一向量值,所述第一向量值表示所述角色躯干模型在所述全局坐标系中的左右方向信息;
将所述第一向量值与每只所述手部模型相对所述角色躯干模型的所述第一偏移量做乘积运算,并将乘积结果与每只所述手部模型在所述全局坐标系中的位置坐标做求和运算,得到每只所述手部模型在所述全局坐标系中的第一位置信息;
将所述角色躯干模型在所述全局坐标系中的旋转信息与三维向量(0,0,1)做求积运算,得到所述角色躯干模型在所述全局坐标系中的第二向量值,所述第二向量值表示所述角色躯干模型在所述全局坐标系中的前后方向信息;
将所述第二向量值与每只所述手部模型相对所述角色躯干模型的所述第二偏移量的绝对值做乘积运算,并将乘积结果与每只所述手部模型在所述全局坐标系中的第一位置信息做求和运算,得到每只所述手部模型在所述全局坐标系中的显示位置。
具体的,如图5所示,基于在X轴上每只所述手部模型相对所述角色躯干模型的第一偏移量和在Z轴上每只所述手部模型相对所述角色躯干模型的第二偏移量,确定出在自身坐标系中每只手部模型相对角色躯干模型的相对位置,继而基于该相对位置和每只手部模型在虚拟空间的全局坐标系中的位置坐标,计算得到每只所述手部模型在全局坐标系中的显示位置,确保了每只手部模型在全局坐标系中的显示位置在角色躯干模型的坐标范围之外,避免手部模型和角色躯干模型出现穿模现象,进而将每只手部模型在全局坐标系中的显示位置反馈给姿态矫正过程。
具体实施时,如图6所示,在姿态矫正过程中,将计算得到的每只手部模型在全局坐标系中的显示位置,与Avatar的双手模型进行重新绑定,以矫正在虚拟环境下双手模型的当前姿态,最后在虚拟空间中重新渲染,使得可以动态、正确的显示双手模型的姿态。同时,将监听过程中监听到的VR设备姿态数据与Avatar的躯干模型进行重新绑定,以矫正在虚拟环境下躯干模型的当前姿态,最后在虚拟空间中重新渲染,使可以动态、正确的显示躯干模型的姿态。
具体实施时,上述虚拟现实环境下手部姿态的显示方法可以运行在VR设备上,也可以运行在VR设备之外的其他设备上。
在本实施例中,提供了一种计算机设备,如图7所示,包括存储器701、处理器702及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意的虚拟现实环境下手部姿态的显示方法。
具体的,该计算机设备可以是计算机终端、服务器或者类似的运算装置。
在本实施例中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任意的虚拟现实环境下手部姿态的显示方法的计算机程序。
具体的,计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机可读存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
基于同一发明构思,本发明实施例中还提供了一种虚拟现实环境下手部姿态的显示装置,如下面的实施例所述。由于虚拟现实环境下手部姿态的显示装置解决问题的原理与虚拟现实环境下手部姿态的显示方法相似,因此虚拟现实环境下手部姿态的显示装置的实施可以参见虚拟现实环境下手部姿态的显示方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是本发明实施例的虚拟现实环境下手部姿态的显示装置的一种结构框图,如图8所示,包括:
操作状态监听模块801,用于获取手柄姿态数据;
姿态矫正计算模块802,用于根据所述手柄姿态数据,计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,其中,在所述全局坐标系中,所述手部模型的显示位置在所述角色模型的角色躯干模型范围的外部;
姿态反馈模块803,用于基于所述手部模型在全局坐标系中的显示位置,在所述虚拟空间中渲染显示所述手部模型的姿态。
在一个实施例中,姿态矫正计算模块,具体用于根据所述手柄姿态数据中的位置信息,映射出每只所述手部模型在所述全局坐标系中的位置坐标;在所述角色模型的自身坐标系中,根据所述角色躯干模型在所述自身坐标系中的坐标范围和每只所述手部模型在所述自身坐标系中的位置坐标,确定每只所述手部模型相对于所述角色躯干模型的相对位置;根据所述相对位置和每只所述手部模型在所述全局坐标系中的位置坐标,在所述角色躯干模型在所述全局坐标系中的坐标范围之外,确定每只所述手部模型在所述全局坐标系中的显示位置。
在一个实施例中,姿态矫正计算模块,用于在所述自身坐标系中,将每只所述手部模型在X轴上的向量值和所述角色躯干模型中与每只所述手部模型同侧的半边的角色躯干模型在X轴上的向量值进行向量差值,得到在X轴上每只所述手部模型相对所述角色躯干模型的第一偏移量,其中,所述角色躯干模型的几何中心点为所述自身坐标系的坐标原点,X轴表示所述角色躯干模型的左右方向,所述第一偏移量表示每只所述手部模型相对所述角色躯干模型在左右方向上的相对位置;
在所述自身坐标系中,将每只所述手部模型在Z轴上的向量值和所述角色躯干模型中前半边的角色躯干模型在Z轴上的向量值进行向量差值,得到在Z轴上每只所述手部模型相对所述角色躯干模型的第二偏移量,其中,Z轴表示所述角色躯干模型的前后方向,所述第二偏移量表示每只所述手部模型相对所述角色躯干模型在前后方向上的相对位置。
在一个实施例中,姿态矫正计算模块,具体用于将所述角色躯干模型在所述全局坐标系中的旋转信息与三维向量(1,0,0)做求积运算,得到所述角色躯干模型在所述全局坐标系中的第一向量值,所述第一向量值表示所述角色躯干模型在所述全局坐标系中的左右方向信息;
将所述第一向量值与每只所述手部模型相对所述角色躯干模型的所述第一偏移量做乘积运算,并将乘积结果与每只所述手部模型在所述全局坐标系中的位置坐标做求和运算,得到每只所述手部模型在所述全局坐标系中的第一位置信息;
将所述角色躯干模型在所述全局坐标系中的旋转信息与三维向量(0,0,1)做求积运算,得到所述角色躯干模型在所述全局坐标系中的第二向量值,所述第二向量值表示所述角色躯干模型在所述全局坐标系中的前后方向信息;
将所述第二向量值与每只所述手部模型相对所述角色躯干模型的所述第二偏移量的绝对值做乘积运算,并将乘积结果与每只所述手部模型在所述全局坐标系中的第一位置信息做求和运算,得到每只所述手部模型在所述全局坐标系中的显示位置。
在一个实施例中,所述操作状态监听模块,还用于获取VR设备姿态数据;
所述姿态反馈模块,还用于根据所述VR设备姿态数据在虚拟空间中渲染显示所述角色躯干模型的姿态。
在一个实施例中,所述操作状态监听模块通过VR设备的API获取所述手柄姿态数据和所述VR设备姿态数据。
本发明实施例实现了如下技术效果:提出了根据手柄姿态数据计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,在全局坐标系中,计算得到的该显示位置在角色模型的角色躯干模型范围的外部,进而基于显示位置在虚拟空间中渲染显示手部模型的姿态。由于计算得到的手部模型在全局坐标系中的显示位置在角色模型的角色躯干模型范围的外部,使得手部模型与角色躯干模型接触或碰撞时避免出现穿模的现象,进而有利于正确表达手部动作和手部姿态。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种虚拟现实环境下手部姿态的显示方法,其特征在于,包括:
获取手柄姿态数据;
根据所述手柄姿态数据,计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,在所述全局坐标系中,所述手部模型的显示位置在所述角色模型的角色躯干模型范围的外部;
基于所述手部模型在所述全局坐标系中的显示位置,在所述虚拟空间中渲染显示所述手部模型的姿态;
根据所述手柄姿态数据,计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,包括:
根据所述手柄姿态数据中的位置信息,映射出每只所述手部模型在所述全局坐标系中的位置坐标;
在所述角色模型的自身坐标系中,根据所述角色躯干模型在所述自身坐标系中的坐标范围和每只所述手部模型在所述自身坐标系中的位置坐标,确定每只所述手部模型相对于所述角色躯干模型的相对位置;
根据所述相对位置和每只所述手部模型在所述全局坐标系中的位置坐标,在所述角色躯干模型在所述全局坐标系中的坐标范围之外,确定每只所述手部模型在所述全局坐标系中的显示位置;
根据所述角色躯干模型在所述自身坐标系中的坐标范围和每只所述手部模型在所述自身坐标系中的位置坐标,确定每只所述手部模型相对于所述角色躯干模型的相对位置,包括:
在所述自身坐标系中,将每只所述手部模型在X轴上的向量值和所述角色躯干模型中与每只所述手部模型同侧的半边的角色躯干模型在X轴上的向量值进行向量差值,得到在X轴上每只所述手部模型相对所述角色躯干模型的第一偏移量,其中,所述角色躯干模型的几何中心点为所述自身坐标系的坐标原点,X轴表示所述角色躯干模型的左右方向,所述第一偏移量表示每只所述手部模型相对所述角色躯干模型在左右方向上的相对位置;
在所述自身坐标系中,将每只所述手部模型在Z轴上的向量值和所述角色躯干模型中前半边的角色躯干模型在Z轴上的向量值进行向量差值,得到在Z轴上每只所述手部模型相对所述角色躯干模型的第二偏移量,其中,Z轴表示所述角色躯干模型的前后方向,所述第二偏移量表示每只所述手部模型相对所述角色躯干模型在前后方向上的相对位置;
根据所述相对位置和每只所述手部模型在所述全局坐标系中的位置坐标,在所述角色躯干模型在所述全局坐标系中的坐标范围之外,确定每只所述手部模型在所述全局坐标系中的显示位置,包括:
将所述角色躯干模型在所述全局坐标系中的旋转信息与三维向量(1,0,0)做求积运算,得到所述角色躯干模型在所述全局坐标系中的第一向量值,所述第一向量值表示所述角色躯干模型在所述全局坐标系中的左右方向信息;
将所述第一向量值与每只所述手部模型相对所述角色躯干模型的所述第一偏移量做乘积运算,并将乘积结果与每只所述手部模型在所述全局坐标系中的位置坐标做求和运算,得到每只所述手部模型在所述全局坐标系中的第一位置信息;
将所述角色躯干模型在所述全局坐标系中的旋转信息与三维向量(0,0,1)做求积运算,得到所述角色躯干模型在所述全局坐标系中的第二向量值,所述第二向量值表示所述角色躯干模型在所述全局坐标系中的前后方向信息;
将所述第二向量值与每只所述手部模型相对所述角色躯干模型的所述第二偏移量的绝对值做乘积运算,并将乘积结果与每只所述手部模型在所述全局坐标系中的第一位置信息做求和运算,得到每只所述手部模型在所述全局坐标系中的显示位置。
2.如权利要求1所述的虚拟现实环境下手部姿态的显示方法,其特征在于,还包括:
获取VR设备姿态数据;
根据所述VR设备姿态数据在虚拟空间中渲染显示所述角色躯干模型的姿态。
3.如权利要求2所述的虚拟现实环境下手部姿态的显示方法,其特征在于,还包括:
通过VR设备的API获取所述手柄姿态数据和所述VR设备姿态数据。
4.如权利要求1所述的虚拟现实环境下手部姿态的显示方法,其特征在于,还包括:
所述手柄姿态数据包括旋转信息和位置信息。
5.一种虚拟现实环境下手部姿态的显示装置,其特征在于,包括:
操作状态监听模块,用于获取手柄姿态数据;
姿态矫正计算模块,用于根据所述手柄姿态数据,计算角色模型的手部模型在虚拟空间的全局坐标系中的显示位置,其中,在所述全局坐标系中,所述手部模型的显示位置在所述角色模型的角色躯干模型范围的外部;
姿态反馈模块,用于基于所述手部模型在所述全局坐标系中的显示位置,在所述虚拟空间中渲染显示所述手部模型的姿态;
所述姿态矫正计算模块,具体用于根据所述手柄姿态数据中的位置信息,映射出每只所述手部模型在所述全局坐标系中的位置坐标;在所述角色模型的自身坐标系中,根据所述角色躯干模型在所述自身坐标系中的坐标范围和每只所述手部模型在所述自身坐标系中的位置坐标,确定每只所述手部模型相对于所述角色躯干模型的相对位置;根据所述相对位置和每只所述手部模型在所述全局坐标系中的位置坐标,在所述角色躯干模型在所述全局坐标系中的坐标范围之外,确定每只所述手部模型在所述全局坐标系中的显示位置;
所述姿态矫正计算模块,用于在所述自身坐标系中,将每只所述手部模型在X轴上的向量值和所述角色躯干模型中与每只所述手部模型同侧的半边的角色躯干模型在X轴上的向量值进行向量差值,得到在X轴上每只所述手部模型相对所述角色躯干模型的第一偏移量,其中,所述角色躯干模型的几何中心点为所述自身坐标系的坐标原点,X轴表示所述角色躯干模型的左右方向,所述第一偏移量表示每只所述手部模型相对所述角色躯干模型在左右方向上的相对位置;在所述自身坐标系中,将每只所述手部模型在Z轴上的向量值和所述角色躯干模型中前半边的角色躯干模型在Z轴上的向量值进行向量差值,得到在Z轴上每只所述手部模型相对所述角色躯干模型的第二偏移量,其中,Z轴表示所述角色躯干模型的前后方向,所述第二偏移量表示每只所述手部模型相对所述角色躯干模型在前后方向上的相对位置;
所述姿态矫正计算模块,具体用于将所述角色躯干模型在所述全局坐标系中的旋转信息与三维向量(1,0,0)做求积运算,得到所述角色躯干模型在所述全局坐标系中的第一向量值,所述第一向量值表示所述角色躯干模型在所述全局坐标系中的左右方向信息;将所述第一向量值与每只所述手部模型相对所述角色躯干模型的所述第一偏移量做乘积运算,并将乘积结果与每只所述手部模型在所述全局坐标系中的位置坐标做求和运算,得到每只所述手部模型在所述全局坐标系中的第一位置信息;将所述角色躯干模型在所述全局坐标系中的旋转信息与三维向量(0,0,1)做求积运算,得到所述角色躯干模型在所述全局坐标系中的第二向量值,所述第二向量值表示所述角色躯干模型在所述全局坐标系中的前后方向信息;将所述第二向量值与每只所述手部模型相对所述角色躯干模型的所述第二偏移量的绝对值做乘积运算,并将乘积结果与每只所述手部模型在所述全局坐标系中的第一位置信息做求和运算,得到每只所述手部模型在所述全局坐标系中的显示位置。
6.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的虚拟现实环境下手部姿态的显示方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至4中任一项所述的虚拟现实环境下手部姿态的显示方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211523570.XA CN115629670B (zh) | 2022-12-01 | 2022-12-01 | 虚拟现实环境下手部姿态的显示方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211523570.XA CN115629670B (zh) | 2022-12-01 | 2022-12-01 | 虚拟现实环境下手部姿态的显示方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115629670A CN115629670A (zh) | 2023-01-20 |
CN115629670B true CN115629670B (zh) | 2023-03-17 |
Family
ID=84910781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211523570.XA Active CN115629670B (zh) | 2022-12-01 | 2022-12-01 | 虚拟现实环境下手部姿态的显示方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115629670B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022166264A1 (zh) * | 2021-02-04 | 2022-08-11 | 三一汽车起重机械有限公司 | 作业机械的模拟训练系统、方法、装置和电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9898864B2 (en) * | 2015-05-28 | 2018-02-20 | Microsoft Technology Licensing, Llc | Shared tactile interaction and user safety in shared space multi-person immersive virtual reality |
CN108230429A (zh) * | 2016-12-14 | 2018-06-29 | 上海交通大学 | 基于头部和双手位置及姿态的实时全身姿态重建方法 |
CN108196669B (zh) * | 2017-12-14 | 2021-04-02 | 网易(杭州)网络有限公司 | 游戏角色模型的修正方法、装置、处理器及头戴式显示设备 |
CN110111417B (zh) * | 2019-05-15 | 2021-04-27 | 浙江商汤科技开发有限公司 | 三维局部人体模型的生成方法、装置及设备 |
CN114053685A (zh) * | 2020-08-05 | 2022-02-18 | 叶玉宁 | 一种vr角色控制方法 |
-
2022
- 2022-12-01 CN CN202211523570.XA patent/CN115629670B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022166264A1 (zh) * | 2021-02-04 | 2022-08-11 | 三一汽车起重机械有限公司 | 作业机械的模拟训练系统、方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115629670A (zh) | 2023-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10366534B2 (en) | Selective surface mesh regeneration for 3-dimensional renderings | |
US11580705B2 (en) | Viewpoint dependent brick selection for fast volumetric reconstruction | |
US9779508B2 (en) | Real-time three-dimensional reconstruction of a scene from a single camera | |
US20170155885A1 (en) | Methods for reduced-bandwidth wireless 3d video transmission | |
CN112933597B (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
US11587298B2 (en) | Caching and updating of dense 3D reconstruction data | |
US20170186219A1 (en) | Method for 360-degree panoramic display, display module and mobile terminal | |
US11928779B2 (en) | Multi-resolution voxel meshing | |
US11830148B2 (en) | Reconstruction of essential visual cues in mixed reality applications | |
GB2567530A (en) | Virtual reality parallax correction | |
EP2747430B1 (en) | 3D display device for displaying 3D image using at least one of gaze direction of user or gravity direction | |
US20230147759A1 (en) | Viewpoint dependent brick selection for fast volumetric reconstruction | |
US11748905B2 (en) | Efficient localization based on multiple feature types | |
CN108154553A (zh) | 一种三维模型与监控视频的无缝融合方法及装置 | |
US20210181506A1 (en) | Image Display Method, Apparatus, and System | |
CN114494328B (zh) | 图像显示方法、装置、电子设备及存储介质 | |
JP2022550644A (ja) | パススルー視覚化 | |
RU2680355C1 (ru) | Способ и система удаления невидимых поверхностей трёхмерной сцены | |
CN115629670B (zh) | 虚拟现实环境下手部姿态的显示方法、装置、设备及介质 | |
CN113963103A (zh) | 一种三维模型的渲染方法和相关装置 | |
US20190377935A1 (en) | Method and apparatus for tracking features | |
CN113643343B (zh) | 深度估计模型的训练方法、装置、电子设备及存储介质 | |
CN115937299B (zh) | 在视频中放置虚拟对象的方法及相关设备 | |
CN112684917A (zh) | 一种穿戴设备显示方法及装置 | |
EP3936978B1 (en) | Object display |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |