一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

构建肌肉纤维模型方法、装置、计算机设备和存储介质与流程

2022-09-15 02:51:03 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种构建肌肉纤维模型方法、装置、计算机设备和存储介质。


背景技术:

2.随着计算机技术的发展,生物仿真技术得到广泛的应用。其中,关于肌肉纤维模型的研究是生物仿真领域中的重要组成部分,关于构建肌肉纤维方法的研究受到广泛关注。
3.现有技术中,当需要构建肌肉纤维模型时,需要有经验的工作人员逐条对肌肉纤维进行建模,由于需要人工操作逐条建模,需要花费较长的时间,构建肌肉纤维模型的效率低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种构建肌肉纤维模型方法、装置、计算机设备和存储介质,能够提高构建肌肉纤维模型的效率。
5.一种构建肌肉纤维模型方法,包括:获取有限元网格、皮肤网格、肌肉纤维生成方向;根据皮肤网格的形状特征在有限元网格中确定肌肉区域;对肌肉区域进行离散生成肌肉网格;根据肌肉纤维生成方向与肌肉网格确定肌肉纤维边界点,肌肉纤维边界点为肌肉纤维的起始边界区域与结束边界区域;根据肌肉网格的顶点的位置信息得到调整因子;根据调整因子与肌肉纤维边界点构造肌肉纤维方程,肌肉纤维方程用于表征肌肉网格上肌肉纤维的散度大小;根据肌肉纤维方程与肌肉网格的顶点的位置信息得到肌肉网格的顶点的目标矢量;根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型。
6.在一个实施例中,根据肌肉网格的顶点的位置信息得到调整因子,包括:根据肌肉网格的顶点的位置信息得到肌肉网格中有限元单元的目标边的位置信息以及有限元单元的目标边的长度;获取包含有限元单元的目标边的相邻有限元单元的位置信息;根据有限元单元的目标边的位置信息与相邻有限元单元的位置信息得到有限元单元的目标边在相邻有限元单元中所对应的二面角;基于二面角、有限元单元的目标边的长度生成拉普拉斯算子,根据拉普拉斯算子得到调整因子。
7.在一个实施例中,根据肌肉网格的顶点的位置信息得到肌肉网格中有限元单元的
边的位置信息以及有限元单元的边的长度,包括:当肌肉网格的顶点为两个相邻顶点时,根据两个相邻顶点确定肌肉网格中有限元单元的目标边的位置信息以及有限元单元的目标边的长度,两个相邻顶点被包含在同一个有限元单元中;当肌肉网格的顶点为单个顶点时,获取与单个顶点的相邻网格顶点的位置信息,根据单个顶点与相邻网格顶点的位置信息确定有限元单元的目标边的位置信息以及有限元单元的目标边的长度,相邻网格顶点为肌肉网格上与单个顶点属于同一个有限元单元上且直接相连的顶点。
8.在一个实施例中,根据肌肉网格的顶点的位置信息得到调整因子,包括:当肌肉网格为离散的三角形网格时,获取三角形网格中三角形单元的半周长与三角形单元的面积;根据肌肉网格的顶点的位置信息得到肌肉网格中有限元单元的目标边的位置信息以及有限元单元的目标边的长度;基于有限元单元的目标边的长度、三角形单元的半周长与三角形单元的面积融合生成拉普拉斯算子,根据拉普拉斯算子得到调整因子。
9.在一个实施例中,根据肌肉纤维方程与肌肉网格的顶点的位置信息得到肌肉网格的顶点的目标矢量,包括:根据肌肉纤维方程得到肌肉网格的顶点的离散值;根据肌肉网格的顶点的离散值生成离散值向量;根据肌肉网格的顶点的位置信息得到顶点位置向量;基于离散值向量与顶点位置向量融合生成肌肉网格中有限元单元的目标矢量;根据肌肉网格中有限元单元的目标矢量得到肌肉网格的顶点的目标矢量。
10.在一个实施例中,根据肌肉网格中有限元单元的目标矢量得到肌肉网格的顶点的目标矢量,包括:获取肌肉网格的顶点在肌肉网格中有限元单元中对应的立体角;基于立体角与有限元单元的目标矢量融合得到肌肉网格的顶点的目标矢量。
11.在一个实施例中,根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型,包括:根据顶点的目标矢量得到顶点的目标矢量对应的单位向量;由单位向量得到肌肉网格的肌肉纤维方向。
12.一种构建肌肉纤维模型装置,包括:数据信息获取模块,用于获取有限元网格、皮肤网格、肌肉纤维生成方向;肌肉区域确定模块,用于根据皮肤网格的形状特征在有限元网格中确定肌肉区域;肌肉网格生成模块,用于对肌肉区域进行离散生成肌肉网格;肌肉纤维边界点确定模块,用于根据肌肉纤维生成方向与肌肉网格确定肌肉纤维边界点,肌肉纤维边界点为肌肉纤维的起始边界区域与结束边界区域;调整因子生成模块,用于根据肌肉网格的顶点的位置信息得到调整因子;肌肉纤维方程构造模块,用于根据调整因子与肌肉纤维边界点构造肌肉纤维方
程,肌肉纤维方程用于表征肌肉网格上肌肉纤维的散度大小;顶点目标矢量生成模块,用于根据肌肉纤维方程与肌肉网格的顶点的位置信息得到肌肉网格的顶点的目标矢量;肌肉纤维生成模块,用于根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型。
13.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:获取有限元网格、皮肤网格、肌肉纤维生成方向;根据皮肤网格的形状特征在有限元网格中确定肌肉区域;对肌肉区域进行离散生成肌肉网格;根据肌肉纤维生成方向与肌肉网格确定肌肉纤维边界点,肌肉纤维边界点为肌肉纤维的起始边界区域与结束边界区域;根据肌肉网格的顶点的位置信息得到调整因子;根据调整因子与肌肉纤维边界点构造肌肉纤维方程,肌肉纤维方程用于表征肌肉网格上肌肉纤维的散度大小;根据肌肉纤维方程与肌肉网格的顶点的位置信息得到肌肉网格的顶点的目标矢量;根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型。
14.一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取有限元网格、皮肤网格、肌肉纤维生成方向;根据皮肤网格的形状特征在有限元网格中确定肌肉区域;对肌肉区域进行离散生成肌肉网格;根据肌肉纤维生成方向与肌肉网格确定肌肉纤维边界点,肌肉纤维边界点为肌肉纤维的起始边界区域与结束边界区域;根据肌肉网格的顶点的位置信息得到调整因子;根据调整因子与肌肉纤维边界点构造肌肉纤维方程,肌肉纤维方程用于表征肌肉网格上肌肉纤维的散度大小;根据肌肉纤维方程与肌肉网格的顶点的位置信息得到肌肉网格的顶点的目标矢量;根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型。
15.上述构建肌肉纤维模型方法、装置、计算机设备和存储介质,通过获取有限元网格、皮肤网格、肌肉纤维生成方向;根据皮肤网格的形状特征在有限元网格中确定肌肉区域;对肌肉区域进行离散生成肌肉网格;根据肌肉纤维生成方向与肌肉网格确定肌肉纤维边界点,肌肉纤维边界点为肌肉纤维的起始边界区域与结束边界区域;根据肌肉网格的顶点的位置信息得到调整因子;根据调整因子与肌肉纤维边界点构造肌肉纤维方程,肌肉纤维方程用于表征肌肉网格上肌肉纤维的散度大小;根据肌肉纤维方程与肌肉网格的顶点的
位置信息得到肌肉网格的顶点的目标矢量;根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型。这样,通过指定一个大致的肌肉纤维生成的方向,求解肌肉区域内的肌肉纤维方程,实现自动化地生成整个肌肉纤维方向,进而得到肌肉纤维模型,能够提高构建肌肉纤维模型的效率。
附图说明
16.图1为一个实施例中构建肌肉纤维模型方法的应用环境图;图2为一个实施例中构建肌肉纤维模型方法的流程示意图;图3为一个实施例中生成调整因子的流程示意图;图4为一个实施例中确定有限元单元目标边的流程示意图;图5为一个实施例中生成三角形网格对应的调整因子的流程示意图;图6为一个实施例中得到肌肉网格的顶点的目标矢量的流程示意图;图7为一个实施例中得到肌肉网格的顶点的目标矢量的流程示意图;图8为一个实施例中生成肌肉纤维方向的流程示意图;图9为一个实施例中动画对象有限元网格的示意图;图10为一个实施例中皮肤模型的示意图;图11为一个实施例中肌肉纤维束的示意图;图12为一个实施例中生成的整个肌肉纤维模型的示意图;图13为一个实施例中构建肌肉纤维模型装置结构框图;图14为一个实施例中计算机设备的内部结构图。
具体实施方式
17.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
18.本技术实施例提供的构建肌肉纤维模型方法,可以应用于如图1所示的应用环境中。如图1所示,计算机设备102获取有限元网格、皮肤网格、肌肉纤维生成方向,计算机设备102根据皮肤模型的形状特征在有限元网格中划定肌肉区域,将其离散为肌肉网格后,通过指定肌肉纤维生成的大致方向,自动化生成肌肉区域的肌肉纤维方向,进而得到肌肉纤维模型。其中,计算机设备102具体可以包括但不限于各种服务器、个人计算机、笔记本电脑、服务器、智能手机、平板电脑、智能摄像机和便携式可穿戴设备等。
19.在一个实施例中,如图2所示,提供了一种构建肌肉纤维模型方法,以该方法应用于图1中的计算机设备102为例进行说明,包括以下步骤:步骤s202,获取有限元网格、皮肤网格、肌肉纤维生成方向。
20.其中,有限元网格为三维动画对象有限元网格,用于接受各种外力以及骨骼驱动力作用而能产生形变的三维动画角色模型,如图9所示,皮肤网格是用于内嵌在动画对象有限元网格上的三维皮肤模型,皮肤模型是用于展示或表现动画对象的外表面具体细节、形状的三维动画模型,如图10所示;有限元网格与皮肤网格可以采用四面体网格或六面体网格或三角形网格等方法来进行有限元的划分,使得动画对象的有限元网格、皮肤网格以及
骨骼网格都是由一个个有限元单元组成的模型,这里不作限制,皮肤网格是通过有限元法离散后的角色皮肤图案模型,肌肉纤维生成方向是在构建肌肉纤维模型时,指定的肌肉纤维生成的大致方向,可以按经验由人工指定,也可以是对真实生物肌肉模板进行自动化图像识别得到,肌肉纤维是肌肉区域中无交叉的矢量场,肌肉纤维模型就是有限元网格中具有空间无交叉矢量方向的有限元单元及各顶点所组成的肌肉区域,体现在肌肉区域中每个顶点处的目标单位向量的总和,肌肉区域中每个顶点处的肌肉纤维方向就是该点处的对应的空间无交叉的单位向量所指的方向。
21.步骤s204,根据皮肤网格的形状特征在有限元网格中确定肌肉区域。
22.具体地,计算机设备根据人体或其他生物真实肌肉分布特点与动画角色的皮肤网格的形状特征,在皮肤网格的内部结合肌肉发力的特性来划定肌肉区域所在的空间位置,肌肉区域是在有限元网格中生成肌肉纤维之前而划定的一块肌肉待建模区域,划定了后续所生成的肌肉纤维的三维空间的边界。
23.步骤s206,对肌肉区域进行离散生成肌肉网格。
24.具体地,计算机设备采用四面体网格或六面体网格或三角形网格等有限元算法来对肌肉区域进行有限元的离散化,生成肌肉网格,离散化后的肌肉网格由一个个有限元单元组成,每个有限元单元都具有顶点,也就是离散化后肌肉网格的顶点。
25.步骤s208,根据肌肉纤维生成方向与肌肉网格确定肌肉纤维边界点,肌肉纤维边界点为肌肉纤维的起始边界区域与结束边界区域。
26.其中,肌肉纤维边界点可以通过人工指定的方式来确定,也可以根据肌肉网格在肌肉纤维生成方向上的最远两端的边界区域来确定,将两端边界区域作为肌肉纤维边界点,肌肉纤维边界点为肌肉纤维的起始边界区域与结束边界区域,肌肉纤维在起始边界区域处向外发散,肌肉纤维收敛于结束边界区域,即汇聚于结束边界区域,并且随机指定边界点的离散值,其中边界点的离散值可以为不同的任意值。
27.步骤s210,根据肌肉网格的顶点的位置信息得到调整因子。
28.其中,肌肉网格的顶点是肌肉网格中有限元单元的顶点,调整因子用于构造后续肌肉纤维方程,是肌肉纤维方程中的一项,调整因子反映了肌肉网格中各个顶点以及各个有限元单元的边的位置信息。
29.具体地,计算机设备根据肌肉网格的顶点的位置信息得到肌肉网格中相邻顶点所连成的目标边的位置信息以及目标边的几何长度,再由目标边的位置信息得到与该目标边所在的相邻有限元单元的位置信息,进而计算得到目标边分别在各个相邻有限元单元中对应的二面角大小,计算机设备将目标边的几何长度与各个二面角进行融合得到调整因子。
30.步骤s212,根据调整因子与肌肉纤维边界点构造肌肉纤维方程,肌肉纤维方程用于表征肌肉网格上肌肉纤维的散度大小。
31.其中,肌肉纤维方程用于表征肌肉网格上肌肉纤维的散度大小,肌肉纤维方程可以根据肌肉网格的顶点的位置信息计算出各个顶点的离散值大小,而各个点的离散值可以反映出各个顶点所确定的肌肉纤维之间的散度大小。
32.具体地,计算机设备随机指定肌肉纤维边界点的离散值,通过调整因子与肌肉纤维边界点的离散值逐渐迭代计算出肌肉网格中其他顶点的离散值,进而得到肌肉网格中所有顶点的离散值组成的矩阵,将这个顶点离散值组成的矩阵作为肌肉纤维方程。
33.举例说明,肌肉纤维分布的一个显著的特点是肌肉纤维没有空间上的交叉,因此可以类比无源温度场中的温度梯度场来近似表达,连续空间的无源温度场可以用泊松方程来表达:,公式1其中,为拉普拉斯算子,为温度场,通过指定边界点的温度,可以求解在该边界条件下空间的温度场,进而可以计算温度梯度场:,公式2在工程应用中,将肌肉区域做网格上的离散,利用有限元或边界元的方式对空间中的温度场进行求解,进而得到肌肉网格中各个顶点的温度值,进而得到离散空间的泊松方程:,其中为肌肉网格的顶点的温度值,为肌肉网格中顶点的数量值。
34.步骤s214,根据肌肉纤维方程与肌肉网格的顶点的位置信息得到肌肉网格的顶点的目标矢量。
35.其中,肌肉网格的顶点的目标矢量表征了各点处的肌肉纤维方向。
36.具体地,计算机设备根据肌肉纤维方程得到目标有限元单元各顶点的离散值,再根据有限元单元各顶点的离散值与有限元单元各顶点的位置信息计算得到有限元单元的目标矢量,在本方案中,假定各有限元单元内部的目标矢量恒定不变;计算机设备根据肌肉网格中有限元单元顶点的位置信息计算得到有限元单元顶点在对应的有限元单元中的立体角,计算机设备根据立体角与有限元单元的目标矢量,将有限元单元的梯度插值到顶点上,得到顶点的目标矢量。
37.步骤s216,根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型。
38.具体地,计算机设备获取到肌肉网格中各顶点的目标矢量,计算顶点的目标矢量对应的模,将顶点的目标矢量除以对应的模,得到顶点的目标矢量对应的单位向量,将对应的单位向量作为肌肉纤维方向,最后将肌肉网格顶点的纤维方向通过采样插值的方式放到有限元网格上,得到肌肉纤维模型,如图11与图12所示。
39.本实施例中,通过获取有限元网格、皮肤网格、肌肉纤维生成方向;根据皮肤网格的形状特征在有限元网格中确定肌肉区域;对肌肉区域进行离散生成肌肉网格;根据肌肉纤维生成方向与肌肉网格确定肌肉纤维边界点,肌肉纤维边界点为肌肉纤维的起始边界区域与结束边界区域;根据肌肉网格的顶点的位置信息得到调整因子;根据调整因子与肌肉纤维边界点构造肌肉纤维方程,肌肉纤维方程用于表征肌肉网格上肌肉纤维的散度大小;根据肌肉纤维方程与肌肉网格的顶点的位置信息得到肌肉网格的顶点的目标矢量;根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型。这样,通过指定一个大致的肌肉纤维生成的方向,求解肌肉区域内的肌肉纤维方程,实现自动化地生成整个肌肉纤维方向,进而得到肌肉纤维模型,能够提高构建肌肉纤维模型的效率。
40.在一个实施例中,如图3所示,根据肌肉网格的顶点的位置信息得到调整因子,包括:
步骤s302,根据肌肉网格的顶点的位置信息得到肌肉网格中有限元单元的目标边的位置信息以及有限元单元的目标边的长度;步骤s304,获取包含有限元单元的目标边的相邻有限元单元的位置信息;步骤s306,根据有限元单元的目标边的位置信息与相邻有限元单元的位置信息得到有限元单元的目标边在相邻有限元单元中所对应的二面角;步骤s308,基于二面角、有限元单元的目标边的长度生成拉普拉斯算子,根据拉普拉斯算子得到调整因子。
41.举例说明,设调整因子为拉普拉斯算子矩阵l,矩阵l中的第i行第j列的元素为,则如公式3所示,确定的值:,公式3其中,当且仅当肌肉网格中的点和点是相连的时不为0,是肌肉网格中点和点相连的边,点和点被包含在同一个有限元单元中,为边的几何长度,是第k个有限元单元,表示包含边的有限元单元的集合,为边在有限元单元中对应的二面角大小。
42.本实施例中,通过肌肉网格中顶点的位置信息确定有限元单元的边的位置信息,再通过计算有限元单元的边在包含该边的有限元单元中的二面角大小来确定边与的位置信息,基于二面角与边的几何长度所构建的拉普拉斯算子作为调整因子,能够更加全面反映肌肉网格中各个顶点的位置信息以及顶点之间的相对位置信息,使得基于此调整因子所构建的肌肉纤维方程充分包含顶点的位置信息,提高所生成的肌肉网格的顶点的离散值的准确性。
43.在一个实施例中,如图4所示,根据肌肉网格的顶点的位置信息得到肌肉网格中有限元单元的边的位置信息以及有限元单元的边的长度,包括:步骤s402,当肌肉网格的顶点为两个相邻顶点时,根据两个相邻顶点确定肌肉网格中有限元单元的目标边的位置信息以及有限元单元的目标边的长度,两个相邻顶点被包含在同一个有限元单元中。
44.举例说明,肌肉网格中的顶点和顶点,当时,即计算矩阵l中的第i行第j列的非对角线元素,由顶点和顶点能确定唯一的一条边,同时边可以同时作为多个有限元单元的共同边,因此,由边可以确定边的位置信息以及边的几何长度。
45.步骤s404,当肌肉网格的顶点为单个顶点时,获取与单个顶点的相邻网格顶点的位置信息,根据单个顶点与相邻网格顶点的位置信息确定有限元单元的目标边的位置信息以及有限元单元的目标边的长度,相邻网格顶点为肌肉网格上与单个顶点属于同一个有限元单元上且直接相连的顶点。
46.举例说明,肌肉网格中的顶点和顶点,当时,即计算矩阵l中的对角线元素,由单个顶点在肌肉网格中的位置信息得到与单个顶点相邻的所有边的位置信息以及有限元单元的目标边的长度,设与顶点相邻的边有j条,则按照公式3计算每条边对应的元素的值,再将每条边对应的元素进行求和计算得到,如下公式4所示:,公式4其中,为边在有限元单元中对应的二面角大小,为有限元单元的目标边的长度。
47.本实施例中,计算调整因子(即矩阵l)时,考虑到矩阵l的对角线元素与非对角线元素所对应的边的确定方式不同,分别提出不同构造方法进行求解,求解非对角线元素对应的肌肉网格的目标边时,由两个不同的相邻顶点确定唯一的一条目标边,当求解对角线元素对应的肌肉网格的目标边时,由单个顶点作为中心点向外发散,获取所有与其不同相邻网格顶点,其中相邻网格顶点为肌肉网格上与单个顶点属于同一个有限元单元上且直接相连的顶点,再由这些不同相邻网格顶点与中心点确定多个边,将这多个边组成的集合作为对角线元素对应的肌肉网格的目标边,充分结合肌肉网格中有限元单元的边在位置信息上的差异以此来分别构建不同的目标边,提高根据肌肉网格的顶点来确定目标边的可靠性。
48.在一个实施例中,如图5所示,根据肌肉网格的顶点的位置信息得到调整因子,包括:步骤s502,当肌肉网格为离散的三角形网格时,获取三角形网格中三角形单元的半周长与三角形单元的面积。
49.步骤s504,根据肌肉网格的顶点的位置信息得到肌肉网格中有限元单元的目标边的位置信息以及有限元单元的目标边的长度。
50.步骤s506,基于有限元单元的目标边的长度、三角形单元的半周长与三角形单元的面积融合生成拉普拉斯算子,根据拉普拉斯算子得到调整因子。
51.本实施例中,计算机设备获取三角形网格中三角形的半周长、面积,根据三角形的半周长、面积、由顶点和顶点所确定的边的位置信息以及边的几何长度融合得到拉普拉斯算子,设三角形网格中有k个三角形有限元单元:当时,即计算矩阵l中的第i行第j列的非对角线元素,由顶点和顶点能确定唯一的一条边,同时边可以同时作为多个有限元单元的共同边,因此,由边可以确定边的位置信息以及边的几何长度,如公式5所示:,公式5
当时,即计算矩阵l中的对角线元素,由单个顶点在肌肉网格中的位置信息得到与单个顶点相邻的所有边的位置信息以及有限元单元的目标边的长度,设与顶点相邻的边有j条,则按照公式5计算每条边对应的元素的值,再将每条边对应的元素进行求和计算得到,如公式6所示:,公式6计算机设备再将组成的拉普拉斯算子矩阵l作为调整因子,实现根据三角形网格算法对肌肉区域进行离散后,求解得到三角形网格对应的调整因子,有效提高了调整因子在肌肉网格边界区域的适应性。
52.在一个实施例中,如图6所示,根据肌肉纤维方程与肌肉网格的顶点的位置信息得到肌肉网格的顶点的目标矢量,包括:步骤s602,根据肌肉纤维方程得到肌肉网格的顶点的离散值。
53.具体地,计算机设备根据前述步骤中构建好的离散空间中的肌肉纤维方程,计算得到肌肉网格中所有顶点的离散值,每个顶点的离散值大小表征着各个顶点间的散度大小,也就是相互离散、相互远离的程度。
54.步骤s604,根据肌肉网格的顶点的离散值生成离散值向量。
55.其中,离散值向量由有限元单元上各顶点的离散值经过作差计算后组成的向量。
56.举例说明,假设肌肉网格为四面体网格,计算机设备获取肌肉网格中的有限元单元的四个顶点的位置信息,各个顶点对应的离散值为,则根据各个顶点对应的离散值生成离散值向量。
57.步骤s606,根据肌肉网格的顶点的位置信息得到顶点位置向量。
58.其中,顶点位置向量是由有限元单元上各顶点的位置信息经过作差计算后组成的向量。
59.举例说明,假设肌肉网格为四面体网格,计算机设备获取肌肉网格中的有限元单元的四个顶点的位置信息,各个顶点对应的离散值为,则根据四个顶点的位置信息生成顶点位置向量。
60.步骤s608,基于离散值向量与顶点位置向量融合生成肌肉网格中有限元单元的目标矢量。
61.举例说明,假设肌肉网格为四面体网格,计算机设备获取肌肉网格中的有限元单元各顶点的离散值向量与各顶点的顶点位置向量,设有限元单元的梯度为,则构建方程:,公式7由公式7得到有限元单元的梯度,进而得到有限元单元的目标矢
量。
62.步骤s610,根据肌肉网格中有限元单元的目标矢量得到肌肉网格的顶点的目标矢量。
63.其中,肌肉网格的顶点的目标矢量反映了顶点处的肌肉纤维方向,有限元单元的目标矢量反映了该有限元单元内所有点的肌肉纤维方向。
64.具体地,计算机设备根据肌肉网格的顶点的位置信息,得到肌肉网格中包含该顶点的相邻有限元单元的位置信息,按照步骤s608的方法得到相邻有限元单元的目标矢量,再根据所有相邻有限元单元的目标矢量得到该顶点的目标矢量,可以采用相邻有限元单元目标矢量的矢量和作为该顶点的目标矢量,也可以采用加权求矢量和来作为该顶点的目标矢量。
65.本实施例中,根据肌肉纤维方程得到肌肉网格中顶点的离散值,再根据顶点的离散值与顶点的位置信息计算得到肌肉网格中目标有限元单元的目标矢量,再基于有限元单元的目标矢量计算得到顶点的目标矢量,提高了各顶点离散值大小与各顶点目标矢量之间的关联性,使得生成的各顶点目标矢量能够准确反映各顶点在位置信息上的差异,从而使得顶点的目标矢量方向更加符合真实的肌肉纤维的方向。
66.在一个实施例中,如图7所示,根据肌肉网格中有限元单元的目标矢量得到肌肉网格的顶点的目标矢量,包括:步骤s702,获取肌肉网格的顶点在肌肉网格中有限元单元中对应的立体角。
67.其中,立体角表征了肌肉网格的顶点在肌肉网格中有限元单元中的相对位置关系。
68.步骤s704,基于立体角与有限元单元的目标矢量融合得到肌肉网格的顶点的目标矢量。
69.具体地,计算机设备根据肌肉网格的顶点的位置信息确定与包含当前顶点的所有相邻有限元单元的位置信息,根据相邻有限元单元的位置信息按照前述步骤公式7计算出相邻有限元单元的目标矢量,根据当前顶点的位置信息与对应的相邻有限元单元的位置信息计算得到当前顶点在对应相邻有限元单元中的立体角大小,再以当前顶点在对应相邻有限元单元中的立体角为权重将各相邻有限元单元的目标矢量插值到当前顶点上,生成肌肉网格的顶点的目标矢量。
70.如公式8所示,生成肌肉网格的顶点的目标矢量:,公式8其中,为顶点相邻的有限元单元集合,为顶点在有限元单元中的立体角大小。
71.本实施例中,根据肌肉网格的顶点位置信息与包含当前顶点的对应有限元单元的位置信息得到当前顶点在对应有限元单元中的立体角大小,该立体角大小表征当前顶点相对于各个邻接有限元单元的相对位置情况,在以各立体角大小为权重根据各邻接有限元单元的目标矢量计算出当前顶点的目标矢量,增强了当前顶点的目标矢量相较于在肌肉网格
中邻接区域的平滑性。
72.在一个实施例中,如图8所示,根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型,包括:步骤s802,根据顶点的目标矢量得到顶点的目标矢量对应的单位向量。
73.具体地,计算机设备计算顶点的目标矢量的模,再将顶点的目标矢量除以该目标矢量的模得到顶点的目标矢量对应的单位向量,单位向量的计算如公式9所示:,公式9其中,为肌肉网格的顶点i的单位向量,为顶点i的目标矢量,为目标矢量的模。
74.步骤s804,由单位向量得到肌肉网格的肌肉纤维方向。
75.具体地,由上述步骤s802的方法求解出肌肉网格中所有顶点的目标矢量对应的单位向量,由肌肉网格中所有顶点对应的单位向量得到肌肉网格的肌肉纤维方向。
76.本实施例中,将前述步骤得到的肌肉网格的顶点的目标矢量进行单位化,得到各个顶点的单位向量的长度统一为1,当肌肉网格发生形变时,使肌肉网格通过设定在肌肉纤维方向上的形变程度来发生相应的形变,而不会因为每个顶点对应的目标矢量的长度不统一而产生不自然的形变,提高了肌肉网格产生自然形变的准确性。
77.本技术还提供一种应用场景,该应用场景应用上述的构建肌肉纤维模型方法,该方法应用于创建三维动画角色的肌肉纤维模型的场景,具体地,该构建肌肉纤维模型方法在该应用场景的应用如下:计算机设备获取三维动画角色有限元网格、皮肤网格以及肌肉纤维生成方向;根据动画角色的皮肤网格的形状特征以及发力特征在有限元网格中大致确定出各个肌肉区域,各个肌肉区域是依据生物肌肉构造的特点来进行肌肉建模的,在构建人形三维动画角色的肌肉纤维模型时,根据人体肌肉相对于皮肤、骨骼的相对位置,来构建人形角色的肌肉纤维的相对位置,如在三维动画角色的相对位置构建肱二头肌、斜方肌等;使用四面体网格算法对肌肉区域进行离散生成四面体单元更小的肌肉网格;根据人体真实肌肉分布特点与动画角色的皮肤网格的形状特征来确定出有限元网格中各部分肌肉纤维的空间位置以及肌肉纤维生成方向,根据肌肉网格在肌肉纤维生成方向上的两端端点作为肌肉纤维边界点,设定边界点的离散值为1、2、3和98、99、100,根据肌肉网格的顶点的位置信息得到调整因子,具体过程如下:设肌肉网格中的顶点,顶点数为,设肌肉网格的四面体单元为,四面体单元数为,则构建如公式10所示的肌肉网格对应的泊松方程:,公式10其中,l为离散四面体网格(即肌肉网格)的拉普拉斯算子,,为肌肉网格中顶点i的离散值,为l中第i行第j列的元素,当且仅当肌肉网格中的顶点和顶点是相连时不为0,构造拉普拉斯算子l,按如下公式11与
公式12计算得到l中的元素与:当时:,公式11当时:,公式12其中,为顶点和顶点所确定的目标边,为与边所在的四面体单元集合,为该边在四面体单元中所对应的二面角大小,为边的几何长度。
78.由此得到拉普拉斯算子l,再根据公式10与预设的肌肉网格边界点的离散值得到肌肉网格中所有顶点的离散值,再根据各顶点的离散值与顶点的位置信息按照公式13计算得到四面体单元的梯度,设四面体单元内部的梯度恒为,四面体单元的顶点为,四个顶点的离散值为,则:,公式13其中,,,再根据公式14计算得到顶点的梯度值:,公式14其中为顶点相邻的四面体单元集合,为顶点在四面体单元中的立体角大小,进而计算得到肌肉网格中所有顶点的梯度,再将所有顶点的梯度单位化转换为对应的单位向量,得到整条肌肉纤维方向,进而完成动画角色的肌肉纤维模型的构建,得到整个动画角色的肌肉模型,如图12所示。
79.上述构建肌肉纤维模型方法中,在创建三维动画角色的肌肉纤维模型时,参照真实人体肌肉分布结构与角色皮肤网格的三维形状特征来确定动画角色的肌肉纤维分布,确定出动画角色的肌肉区域,进而确定出肌肉纤维边界点,根据四面体算法将肌肉区域离散化,生成肌肉网格,进而得到肌肉网格中各顶点以及各四面体单元的边的位置信息,构造离散空间中的拉普拉斯算子表达式,再通过拉普拉斯算子与肌肉纤维边界点的离散值求解离散空间中的泊松方程来确定出肌肉网格中各顶点的离散值,进而确定各顶点的梯度,由顶点梯度得到各个顶点处的肌肉纤维方向,进而确定整个肌肉区域上的肌肉纤维方向得到肌肉纤维模型,实现自动化地生成整个肌肉纤维方向得到肌肉纤维模型,而不需要人工花费较长的时间来对肌肉纤维逐条建模,提高构建肌肉纤维模型的效率。
80.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而
且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
81.在一个实施例中,如图13所示,提供了一种构建肌肉纤维模型装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:数据信息获取模块1302、肌肉区域确定模块1304、肌肉网格生成模块1306、肌肉纤维边界点确定模块1308、调整因子生成模块1310、肌肉纤维方程构造模块1312、顶点目标矢量生成模块1314、肌肉纤维生成模块1316,其中:数据信息获取模块1302,用于获取有限元网格、皮肤网格、肌肉纤维生成方向;肌肉区域确定模块1304,用于根据皮肤网格的形状特征在有限元网格中确定肌肉区域;肌肉网格生成模块1306,用于对肌肉区域进行离散生成肌肉网格;肌肉纤维边界点确定模块1308,用于根据肌肉纤维生成方向与肌肉网格确定肌肉纤维边界点,肌肉纤维边界点为肌肉纤维的起始边界区域与结束边界区域;调整因子生成模块1310,用于根据肌肉网格的顶点的位置信息得到调整因子;肌肉纤维方程构造模块1312,用于根据调整因子与肌肉纤维边界点构造肌肉纤维方程,肌肉纤维方程用于表征肌肉网格上肌肉纤维的散度大小;顶点目标矢量生成模块1314,用于根据肌肉纤维方程与肌肉网格的顶点的位置信息得到肌肉网格的顶点的目标矢量;肌肉纤维生成模块1316,用于根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型。
82.上述构建肌肉纤维模型装置,通过获取有限元网格、皮肤网格、肌肉纤维生成方向;根据皮肤网格的形状特征在有限元网格中确定肌肉区域;对肌肉区域进行离散生成肌肉网格;根据肌肉纤维生成方向与肌肉网格确定肌肉纤维边界点,肌肉纤维边界点为肌肉纤维的起始边界区域与结束边界区域;根据肌肉网格的顶点的位置信息得到调整因子;根据调整因子与肌肉纤维边界点构造肌肉纤维方程,肌肉纤维方程用于表征肌肉网格上肌肉纤维的散度大小;根据肌肉纤维方程与肌肉网格的顶点的位置信息得到肌肉网格的顶点的目标矢量;根据顶点的目标矢量得到肌肉网格的肌肉纤维方向,根据肌肉纤维方向得到肌肉纤维模型。这样,通过指定一个大致的肌肉纤维生成的方向,求解肌肉区域内的肌肉纤维方程,实现自动化地生成整个肌肉纤维方向,进而得到肌肉纤维模型,能够提高构建肌肉纤维模型的效率。
83.在一个实施例中,调整因子生成模块1310还用于根据肌肉网格的顶点的位置信息得到肌肉网格中有限元单元的目标边的位置信息以及有限元单元的目标边的长度;获取包含有限元单元的目标边的相邻有限元单元的位置信息;根据有限元单元的目标边的位置信息与相邻有限元单元的位置信息得到有限元单元的目标边在相邻有限元单元中所对应的二面角;基于二面角、有限元单元的目标边的长度生成拉普拉斯算子,根据拉普拉斯算子得到调整因子。
84.在一个实施例中,调整因子生成模块1310还用于当肌肉网格的顶点为两个相邻顶
点时,根据两个相邻顶点确定肌肉网格中有限元单元的目标边的位置信息以及有限元单元的目标边的长度,两个相邻顶点被包含在同一个有限元单元中;当肌肉网格的顶点为单个顶点时,获取与单个顶点的相邻网格顶点的位置信息,根据单个顶点与相邻网格顶点的位置信息确定有限元单元的目标边的位置信息以及有限元单元的目标边的长度,相邻网格顶点为肌肉网格上与单个顶点属于同一个有限元单元上且直接相连的顶点。
85.在一个实施例中,调整因子生成模块1310还用于当肌肉网格为离散的三角形网格时,获取三角形网格中三角形单元的半周长与三角形单元的面积;根据肌肉网格的顶点的位置信息得到肌肉网格中有限元单元的目标边的位置信息以及有限元单元的目标边的长度;基于有限元单元的目标边的长度、三角形单元的半周长与三角形单元的面积融合生成拉普拉斯算子,根据拉普拉斯算子得到调整因子。
86.在一个实施例中,顶点目标矢量生成模块1314还用于根据肌肉纤维方程得到肌肉网格的顶点的离散值;根据肌肉网格的顶点的离散值生成离散值向量;根据肌肉网格的顶点的位置信息得到顶点位置向量;基于离散值向量与顶点位置向量融合生成肌肉网格中有限元单元的目标矢量;根据肌肉网格中有限元单元的目标矢量得到肌肉网格的顶点的目标矢量。
87.在一个实施例中,顶点目标矢量生成模块1314还用于获取肌肉网格的顶点在肌肉网格中有限元单元中对应的立体角;基于立体角与有限元单元的目标矢量融合得到肌肉网格的顶点的目标矢量。
88.在一个实施例中,肌肉纤维生成模块1316还用于根据顶点的目标矢量得到顶点的目标矢量对应的单位向量;由单位向量得到肌肉网格的肌肉纤维方向。
89.关于构建肌肉纤维模型装置的具体限定可以参见上文中对于构建肌肉纤维模型方法的限定,在此不再赘述。上述构建肌肉纤维模型装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
90.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种构建肌肉纤维模型方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
91.本领域技术人员可以理解,图14中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
92.在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储
有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
93.在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
94.在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
95.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
96.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
97.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献