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

模型更新方法及装置

文献发布时间:2024-04-18 19:58:26


模型更新方法及装置

技术领域

本申请涉及计算机技术领域,特别涉及模型更新方法。本申请同时涉及游戏模型更新装置,一种计算设备,以及一种计算机可读存储介质。

背景技术

随着游戏行业的快速发展,用户对于卡通渲染中虚拟角色的表现要求也越来越高。目前市面上的卡通渲染游戏,对于卡通角色的塑造都主要集中在着色上,而卡通风格区别于写实风格中最重要的一点,就是夸张、生动、有些不符合透视规律的表现,尤其是在角色面部特写镜头下,会产生强烈的透视畸变,从而打破用户的沉浸感。虽然可以通过固定摄像机,对模型进行变形达到这种效果,但是在其他视角下,经过变形后的模型就会穿帮,所以这种方法是不可交互的。为了呈现效果更好的虚拟模型对象,如何使游戏或视频动画中的人物模型的面部在不同视角下都可以保持美感,需要针对不同视角对原始面部模型进行调整。现有的模型形变技术并不能很好的达到预期效果,可能会存在形变过程中计算资源大、形变效果差的问题。因此,如何在不同的视角下对模型精确地进行形变更新是目前亟需解决的问题。

发明内容

有鉴于此,本申请实施例提供了模型更新方法。本申请同时涉及模型更新装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的上述问题。

根据本申请实施例的第一方面,提供了一种模型更新方法,包括:

确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角;

加载所述目标预设视角对应的目标预设形变贴图,并根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息;

确定所述目标模型对应的模型类型信息,基于所述模型类型信息和所述形变信息对所述目标模型进行模型形变,其中,形变后的模型与所述当前视角具有视觉效果对应关系。

根据本申请实施例的第二方面,提供了一种模型更新方法,包括:

确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角;

加载所述目标预设视角对应的目标预设形变贴图,并根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息;

确定所述目标模型的第一骨骼模型顶点数据,将所述骨骼模型顶点数据转换为第二静态模型顶点数据,并基于所述形变信息对所述第二静态模型顶点数据进行调整,获得第三静态模型顶点数据;

将所述第三静态模型顶点数据转换为第二骨骼模型顶点数据,作为对所述目标模型进行模型形变,其中,形变后的模型与所述当前视角具有视觉效果对应关系。

根据本申请实施例的第三方面,提供了一种模型更新装置,包括:

选择模块,被配置为确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角;

生成模块,被配置为加载所述目标预设视角对应的目标预设形变贴图,并根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息;

形变模块,被配置为确定所述目标模型对应的模型类型信息,基于所述模型类型信息和所述形变信息对所述目标模型进行模型形变,其中,形变后的模型与所述当前视角具有视觉效果对应关系。

根据本申请实施例的第四方面,提供了一种模型更新装置,包括:

选择模块,被配置为确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角;

生成模块,被配置为加载所述目标预设视角对应的目标预设形变贴图,并根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息;

转换模块,被配置为确定所述目标模型的第一骨骼模型顶点数据,将所述骨骼模型顶点数据转换为第二静态模型顶点数据,并基于所述形变信息对所述第二静态模型顶点数据进行调整,获得第三静态模型顶点数据;

形变模块,被配置为将所述第三静态模型顶点数据转换为第二骨骼模型顶点数据,作为对所述目标模型进行模型形变,其中,形变后的模型与所述当前视角具有视觉效果对应关系。

根据本申请实施例的第五方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述模型更新方法的步骤。

根据本申请实施例的第六方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述模型更新方法的步骤。

本申请提供的模型更新方法,包括确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角;加载所述目标预设视角对应的目标预设形变贴图,并根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息;确定所述目标模型对应的模型类型信息,基于所述模型类型信息和所述形变信息对所述目标模型进行模型形变,其中,形变后的模型与所述当前视角具有视觉效果对应关系。

本申请一实施例实现了通过在目标模型的预设视角集合中选择当前视角对应的目标预设视角,根据目标预设视角的目标预设形变贴图确定当前视角的形变信息,并根据目标模型的模型类型信息和形变信息对目标模型进行形变,从而实现基于采样贴图进行实时形变,减小模型在各个视角的形变计算开销,同时可以保证精确且高度自定义的形变目的。

附图说明

图1是本申请一实施例提供的一种模型更新方法的场景示意图;

图2是本申请一实施例提供的一种模型更新方法的流程图;

图3是本申请一实施例提供的一种模型更新方法中的预设视角示意图;

图4是本申请一实施例提供的一种模型更新方法中的目标模型在不同预设视角下的形变示意图;

图5是本申请一实施例提供的一种模型更新方法中的形变贴图示意图;

图6是本申请一实施例提供的一种模型更新方法中的骨骼蒙皮模型示意图;

图7是本申请一实施例提供的一种模型更新方法的处理流程图;

图8是本申请一实施例提供的另一种模型更新方法的流程图;

图9是本申请一实施例提供的一种模型更新装置的结构示意图;

图10是本申请一实施例提供的一种模型更新装置的结构示意图;

图11是本申请一实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本申请一个或多个实施例涉及的名词术语进行解释。

图形处理器:图形处理器(Graphics Processing Unit,GPU)是一种用于现代个人计算机,服务器,移动设备,游戏主机等专门用于图形图像处理的专用芯片。

顶点着色器:顶点着色器(Vertex Shader,VS)是一种增加3D特效的影像处理单元,VS具有可程序化特效,允许开发人员利用新式指令来调整特效,每个顶点(Vertex)被数据结构定义,顶点的基本属性有x、y、z三个方向上的顶点坐标,顶点属性还可能有颜色、最初径路、材质、光线特征等。

视角场:视角场(Field ofView,FOV)是指摄像机可以接收影像的角度范围,也可以常被称为视野。

顶点动画贴图技术:顶点动画贴图(VertexAnimation Texture,VAT),是一种利用贴图来保存模型顶点信息的技术。

随着游戏、动漫等影视效果品质的提升,影视中虚拟对象的面部表情的逼真渲染效果,能够让虚拟对象在动态过程中变得更加真实。为了使游戏或视频动画中的人物模型的面部在不同视角下都可以保持真实感、美感,需要针对不同视角对原始面部模型进行适应性地调整。在二维卡通渲染领域,目前都主要是通过着色模拟卡通效果,没有针对几何变形的模拟。尤其是虚拟人物的面部表情,在特写镜头下三维渲染的效果受制于摄像机的FOV和透视原理,无法模拟出手绘动画那种不符合透视效果,却能保证真实感的效果,所以只能通过提高FOV或沿着视角方向压扁头部模型减少透视带来的畸变。在离线动画渲染方面也会采用绑定等手段在特定镜头视角下修改面部模型,比如在侧视图移动人物模型的眼睛让鼻子不会遮挡另一侧的眼睛,移动嘴巴的位置,让嘴巴保持在脸部轮廓内部等。上述方式可能需要制作美术资源的美术人员与模型设计人员进行配合,才能实现对形变效果的预览以确定是否符合预期,合作需求大导致沟通成本增加,也会对模型的制作效率产生不理影响,并且也可能因为需要写入多个形变模型,导致包体占用内存大,使得后续渲染GPU计算开销大,使用不方便的问题。

基于此在本申请中,提供了模型更新方法,通过目标模型在各个预设视角的预设形变贴图,生成目标模型在当前视角下的形变信息,实现了仅需要通过采样贴图即可完成实时形变的需求,并且针对静态模型和骨骼模型两种不同类型的目标模型,通过引入模型类型信息与形变信息一起对目标模型进行模型形成,保证任意一种类型的模型都可进行模型形变的效果。

本申请同时涉及模型更新装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图1示出了根据本申请一实施例提供的一种模型更新方法的场景示意图,其中,图1中包括当前视角下形变之前的目标模型、当前视角下形变后的目标模型,以及另一个视角下,发生形变的模型。为了便于说明,图1中模型的形变只沿x轴上进行距离形变。当观测目标模型的视角发生变化时,确定目标模型当前的观测视角,并根据当前视角在目标模型的预设视角集合中选择目标预设视角,即选择出影响当前视角下目标模型发生形变的预设视角,并基于目标预设视角预先存储的目标预设形变贴图生成当前视角下目标模型的形变信息。通过该形变信息和目标模型对应的模型类型信息,则可以在当前视角下对目标模型进行调整,从而实现基于视角变化实时进行模型形变的效果。

具体的实施方式过程为确定目标模型的当前视角,并根据所述当前视角在球面坐标系的所述目标模型的预设视角集合中选择在垂直(极轴)方向和垂直方向(方向角轴)相邻的两个预设视角并计算得到当前视角相邻预设视角球面坐标之间的插值(θ,Φ)。顶点着色器中采样所述目标预设视角对应的目标预设形变贴图,得到相邻预设目标模型所有顶点的偏移值,根据前面得到的插值(θ,Φ)计算得到在所述当前视角的形变信息。本申请提供的模型更新方法对静态模型和蒙皮模型都适用。对于蒙皮模型,考虑了骨骼对顶点变形的影响,保证模型在受到骨骼蒙皮的影响下,顶点变形的正确性。顶点变形和骨骼蒙皮变形相互独立,并可以随时开关变形效果,通过将视角与形变的对应关系离线保存成VAT贴图,游戏内通过顶点着色器实时采样VAT贴图,即可还原当前视角下的形变。减小模型在各个视角的形变计算开销,同时可以保证精确且高度自定义的形变目的。

图2示出了根据本申请一实施例提供的一种模型更新方法的流程图,具体包括以下步骤:

步骤202:确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角。

其中,目标模型可以理解为虚拟人物对应的模型,如游戏开发阶段中为游戏角色创建绘制的人物模型,或者是视频动画中为角色创建绘制的角色模型等。在创建目标模型的时候,一般会设置有模型对应的初始视角,在初始视角下对模型进行绘制,以绘制游戏人物为例,将游戏人物的正视图作为初始视角。在此情况下,从其他视角观看这个游戏人物时,为了保证游戏人物的真实感,则需要游戏人物的面部发生一些形变。当前视角即可以理解为观看游戏人物的视角,也可以理解为玩家或者游戏美术人员在观看这个游戏人物对应的目标模型时的摄像机视角。随着从不同角度观看目标模型,当前视角也会随之变化,在确定当前视角之后,则可以在目标模型的预设视角集合中选择目标预设视角。

在实际应用中,目标模型的预设视角集合中可以有多个预设视角,在确定了目标模型当前的摄像机视角之后,则可以基于当前视角在目标模型的预设视角集合中选择出目标预设视角。参见图3,图3是根据本申请一实施例提供的一种模型更新方法中的预设视角示意图,其中目标模型的预设视角集合中包括9个预设视角,并且每个预设视角会对应各自的形变数据包括形变距离、形变方向如法线偏移量或顶点偏移量等。参见图4,图4是根据本申请一实施例提供的一种模型更新方法中的目标模型在不同预设视角下的形变示意图,在图4中,为了便于说明针对每个视角只进行目标模型上某个立方体沿x轴方向进行长度变化,可以发现在不同的预设视角下,目标模型形变的状态不同,而在确定当前视角之后,则可以在预设视角集合中选择出多个目标预设视角,并基于目标预设视角的形变数据去计算出当前视角下目标模型的形变数据,从而实现根据视角变化实时形变目标模型的效果。

具体实施时,根据当前视角在预设视角集合中选择目标预设视角可以是在水平方向上选出两个水平视角作为目标预设视角,如果超出了边界则选一个水平视角,后续用当前视角在球坐标的极角和两个水平视角的球坐标的极角,求出一个[0,1]范围的插值,用于计算目标模型在当前视角的形变信息;同理,在垂直方向上选择两个垂直视角作为目标预设视角,如果超出了选择边界则选一个,后续用当前视角在球坐标的极角和两个垂直视角的球坐标的极角,求出一个[0,1]范围的插值,用于计算目标模型在当前视角的形变信息。

在本申请一具体实施例中,目标模型为虚拟角色的脸部模型,美术人员需要预先制作好初始视角下的目标模型,以及目标模型在预设视角下的预设形变模型,将目标模型以及不同预设视角的形变数据导入至终端设备的绘制程序中如Unity引擎,当终端设备运行Unity引擎,则可以在Unity引擎的编辑模式界面中显示初始视角下的目标模型。当开发人员调整展示目标模型的展示角度时,则可以确定目标模型的当前视角,并基于当前视角从导入的预设视角集合中确定出目标预设视角。

进一步的,为了将不同预设视角的预设形变模型的形变数据导入至绘制程序中,需要提前将形变数据以贴图形式进行存储,具体的确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角之前,所述方法还包括:确定所述目标模型的预设视角集合中预设视角对应的初始形变信息;对所述初始形变信息进行存储,获得所述预设视角对应的初始预设形变贴图;按照预设排列规则对所述初始预设形变贴图进行排列处理,获得所述预设视角对应的预设形变贴图。

其中,初始形变信息可以理解为每个预设视角对应的预设形变模型的形变数据,包括在这个预设视角下,目标模型的顶点数据的法线偏移信息和顶点偏移信息等。预设形变贴图可以理解为将形变数据烘焙成的离线数据资源即顶点动画贴图(VertexAnimationTexture,VAT)。

在实际应用中,在美术人员制作好离线状态下初始视角对应的目标模型后,还会制作多个不同预设视角下的预设形变模型,根据目标模型的各个顶点的位置信息与预设形变模型的对应顶点的位置信息,可以确定各个顶点在预设视角下的形变信息,从而确定出目标模型在各个预设视角下对应的初始形变信息。然后对初始形变信息进行存储如对初始形变信息进行编码,使每个顶点的变形信息能作为一个像素(颜色信息)存储在贴图中,获得每个预设视角对应的初始预设形变贴图,参见图5,图5是根据本申请一实施例提供的一种模型更新方法中的形变贴图示意图,其中,在初始预设形变贴图中包括9行像素点,每行像素点包括一个预设视角对应的预设形变模型的顶点位置信息,从而根据初始预设形变贴图可以确定每个预设视角下目标模型的顶点形变信息。需要说明的是,针对存储贴图格式的不同,编码方式也不同,如PNG(Portable Network Graphics,便携式网络图形)贴图使用使用RGB24编码格式,EXR(EXR是一种高动态范围HDR图像格式,通常用于存储和处理具有高反差场景的图像数据)贴图使用RGBHalf编码格式,PNG兼容性更好但是精度低,EXR贴图精度高但是占用内存相对较大,且兼容性不如PNG,具体实施时可根据实际情况选择。

具体实施时,目标模型的各个顶点与预设形变贴图中的像素点之间存在的关系由UV关联,UV是纹理贴图坐标的简称,与空间模型的x,y,z轴类似,它定义了纹理贴图上每个点的位置信息,并且这些点与目标模型表面是相互联系的,UV将纹理贴图上每一个点精确对应的目标模型表面。因此可以根据UV确定目标模型的各个顶点在预设形变贴图中的对应的像素点。

为了便于终端内存读取初始预设形变贴图,还会对VAT贴图进行重新排列,使贴图大小符合2的整数幂大小,宽高比更接近于1,从而更节省内存。如图5中的预设形变贴图,可以认为将初始预设形变贴图以正方形的格式进行存储,便于后续终端内存的读取。

在本申请一具体实施例中,确定目标模型对应的每个预设视角的预设形变模型的初始形变信息,并将初始形变信息存储至初始预设形变贴图中,然后对初始预设形变贴图的像素信息或颜色信息进行重新排列,生成每个预设视角对应的预设形变贴图。

基于此,通过将形变信息存储至初始预设形变贴图中,使得后续模型在不同视角下发生形变时,只需要采样贴图即可。同时为了提高贴图读取效率,还可以将初始预设形变贴图重新排列为预设形变贴图,提高目标模型的形变效率。

步骤204:加载所述目标预设视角对应的目标预设形变贴图,并根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息。

其中,目标预设视角可以理解为从预设视角集合中,根据当前视角选择出的预设视角。当确定了当前视角之后,可以依据当前视角的角度确定哪些预设视角的形变信息会对当前视角下的模型的形变产生影响,将具有影响的预设视角作为目标预设视角,并将目标预设视角对应的预设形变贴图作为目标预设形变贴图。

在实际应用中,在确定当前视角、目标预设视角之后,则可以根据目标预设视角的目标预设形变贴图生成目标模型在当前视角下的形变信息,形变信息中包括目标模型的各个顶点在当前视角下的形变数据。

进一步的,为了能够准确地计算出当前视角下目标模型的各个顶点的形变数据,还需要计算出当前视角与初始视角之间的角度变化,具体的根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息,包括:确定所述目标模型的初始视角,基于所述初始视角和所述当前视角计算视角变化信息;根据所述目标预设形变贴图获取所述目标预设视角对应的目标形变信息;根据所述视角变化信息和所述目标形变信息计算所述目标模型在所述当前视角的形变信息。

其中,初始视角即为目标模型绘制时的视角,根据初始视角和当前视角可以计算出视角变化信息,视角变化信息可以理解为初始视角与当前视角之间的视角变化量,基于视角变化率可以确定出每个预设视角的形变信息对于当前视角下的目标模型的影响权重,从而再基于目标预设形变贴图准确地计算出目标模型在当前视角下的形变信息。

在实际应用中,当计算出视角变化信息之后,则可以根据视角变化信息和目标形变信息进行当前视角下的目标模型的形变信息的计算,具体的可以通过对目标预设形变贴图中存储的预设顶点形变数据进行插值、拟合等处理,计算出目标模型在当前视角下的形变信息。具体实施时,确定所述目标模型的初始视角,求得初始视角与预设视角集合中在球面坐标系下,水平方向和竖直方向相邻的若干预设视角。根据初始视角在球面坐标系的坐标与相邻预设视角在球面坐标系下的球面坐标,计算插值得到垂直插值Δθ水平插值ΔΦ。根据初始视角相邻的预设视角的索引值,根据映射算法计算VAT形变贴图中对应的顶点像素信息:位置P

在本申请一具体实施例中,根据初始视角和当前视角计算出视角变化信息,确定目标预设形变贴图中的目标形变信息,目标形变信息分别为每个目标预设形变视角对应的形变数据,包括有形变数据A、形变数据B、形变数据C、形变数据D,其中形变数据包括有顶点位置偏移、顶点法线偏移等数据,根据视角变化信息以及各个预设形变视角对应的形变数据计算出当前视角的形变数据,从而确定目标模型在当前视角下的各个顶点的形变信息。

基于此,通过视角变化信息和目标预设视角对应的目标形变信息则可以准确地计算出目标模型在当前视角下各个顶点的形变信息,从而实现通过顶点着色器采样VAT,实时进行目标模型的形变。

步骤206:确定所述目标模型对应的模型类型信息,基于所述模型类型信息和所述形变信息对所述目标模型进行模型形变,其中,形变后的模型与所述当前视角具有视觉效果对应关系。

其中,模型类型信息可以理解为目标模型的类型信息,模型类型信息分为静态类型和骨骼蒙皮类型,对于不同类型的目标模型需要按照不同的形变策略进行形变,从而需要确定出目标模型对应的模型类型信息,后续基于模型类型信息和形变信息对目标模型进行模型形变。形变后的模型与当前视角具有视觉效果对应关系可以理解为在不同视角观看模型时,模型产生的形变与当前观看模型的视角具有对应关系。如图4中,从预设视角8观看模型时,模型是右上角立柱发生形变;从预设视角2观看模型时,模型是右下角立柱发生形变;即从不同的观看视角可以观看到产生不同形变的模型,每个观看视角对应一种形变模型,使得形变后的模型与当前的观看视角具有视觉效果上的对应关系。

在实际应用中,对顶点进行偏移即模型进行形变的操作需要在模型空间下实现,而静态模型的顶点数据本身就在模型空间下,所以通过顶点着色器直接进行偏移即可。但是对于骨骼蒙皮模型而言,由于骨骼蒙皮模型内置的骨骼蒙皮权重算法,导致在顶点着色器中直接获取的顶点数据已经转换到了当前帧骨骼姿态空间下的顶点数据,无法直接应用于顶点偏移,需要进行空间转换后才能进行顶点偏移。所以在对目标模型进行模型形变之前,需要确定出目标模型对应的模型类型信息。

进一步的,为了避免无法正确的在当前视角下对目标模型进行形变,需要确定出目标模型对应的模型类型信息,具体的所述目标模型对应的模型类型信息,包括:读取所述目标模型的模型顶点数据,并确定所述模型顶点数据对应的顶点数据类型;根据所述顶点数据类型确定所述目标模型对应的模型类型信息。

其中,模型顶点数据可以理解为目标模型的顶点位置信息,顶点数据类型可以理解为模型顶点数据的数据类型,通过顶点数据类型可以确定出模型顶点数据是模型空间下的位置信息还是骨骼姿态空间下的位置信息,从而根据顶点数据类型来确定目标模型的模型类型信息。在实际应用中,模型类型也可以由软件中的展示视图直接判断出是静态模型还是骨骼蒙皮模型。

在本申请一具体实施例中,读取目标模型的模型顶点数据,确定模型顶点数据对应的顶点数据类型为静态数据类型,则说明模型顶点数据为模型空间下的数据,此时根据顶点数据类型可以确定出目标模型对应的模型类型信息为静态模型类型。

基于此,通过模型顶点数据的顶点数据类型确定目标模型对应的模型类型信息,从而后续基于模型类型信息选择相应的形变策略对目标模型进行形变。

进一步的,为了针对不同模型类型信息的目标模型进行形变,需要选择不同的模型形变策略进行模型形变,具体的基于所述模型类型信息和所述形变信息对所述目标模型进行模型形变,包括:根据所述模型类型信息确定所述目标模型对应的模型形变策略;按照所述模型形变策略基于所述形变信息对所述目标模型进行模型形变。

其中,模型形变策略可以理解为对目标模型进行模型形变的策略方法,不同的模型类型信息对应有不同的模型形变策略,当确定模型类型信息之后,则需要根据模型类型信息选择相应的模型形变策略,后续按照该模型形变策略对目标模型进行模型形变,从而保证模型在不同视角的正常形变。

在本申请一具体实施例中,模型类型信息为静态模型类型,确定目标模型对应的模型形变策略为静态模型形变策略,按照静态模型形变策略对目标模型进行形变。

进一步的,按照所述模型形变策略基于所述形变信息对所述目标模型进行模型形变,包括:基于所述形变信息确定所述目标模型的模型顶点数据对应的法线偏移信息和顶点偏移信息;按照所述模型形变策略基于所述法线偏移信息和所述顶点偏移信息对所述目标模型进行模型形变。

其中,法线偏移信息可以理解为模型顶点的法线改变量或偏移量,顶点偏移信息可以理解为模型顶点的顶点位置改变量或偏移量,通过法线偏移信息和顶点偏移信息可以准确地对目标模型进行模型形变。在实际应用中,法线偏移信息为法线变化信息Δn,顶点偏移信息为位置变化信息Δp,按照模型形变策略基于法线变化信息和位置变化信息对目标模型进行变形。

在本申请一具体实施例中,根据形变信息确定目标模型的模型顶点数据对应的法线偏移信息和顶点偏移信息,后续按照模型形变策略基于法线偏移信息和顶点偏移信息对目标模型进行模型形变。

进一步的,所述模型形变策略为静态模型形变策略,所述目标模型的模型顶点数据为第一静态模型顶点数据;此时,按照所述模型形变策略基于所述形变信息对所述目标模型进行模型形变,包括:基于所述法线偏移信息和所述顶点偏移信息对所述第一静态模型顶点数据进行调整,作为对所述目标模型进行模型形变。

其中,当目标模型为静态模型的情况下,说明目标模型在静态模型空间下,获取到的模型顶点数据也为静态模型顶点数据,第一静态模型顶点数据即可以理解为静态模型空间下的模型顶点数据。

在实际应用中,当确定目标模型的顶点数据在静态模型空间下时,则说明目标模型的顶点数据为静态模型顶点数据,此时可以直接基于法线偏移信息和顶点偏移信息对模型顶点数据进行顶点偏移,从而完成对目标模型的模型形变。具体实施时,将静态模型空间中的顶点位置信息和顶点法线信息分别加上位置变化信息和法线变化信息,即可获得形变后的模型顶点数据。

在本申请一具体实施例中,确定目标模型的模型顶点数据为第一静态模型顶点数据,基于法线偏移信息确定第一静态模型顶点数据的顶点偏移方向,基于顶点偏移信息确定第一静态模型顶点数据的沿顶点偏移方向的偏移距离,从而完成对目标模型的模型形变。

基于此,通过模型类型信息确定目标模型的模型类型之后,可以根据模型类型信息和形变信息对目标模型进行模型形变,实现实时形变的效果。

进一步的,所述模型形变策略为骨骼模型形变策略,所述目标模型的模型顶点数据为第一骨骼模型顶点数据;按照所述模型形变策略基于所述形变信息对所述目标模型进行模型形变,包括:将所述第一骨骼模型顶点数据转换为第二静态模型顶点数据;基于所述法线偏移信息和所述顶点偏移信息对所述第二静态模型顶点数据进行调整,获得第三静态模型顶点数据;将所述第三静态模型顶点数据转换为第二骨骼模型顶点数据,作为对所述目标模型进行模型形变。

其中,当模型形变策略为骨骼模型形变策略的情况下,说明目标模型的模型顶点数据为骨骼姿态空间下的模型顶点数据,此时需要对第一骨骼模型顶点数据进行空间转换,转换到静态模型空间下的模型顶点数据之后才能进行顶点偏移。

在实际应用中,当目标模型为骨骼蒙皮模型时,获取到的目标模型的模型顶点数据即为骨骼姿态空间下的第一骨骼模型顶点数据,参见图6,图6是根据本申请一实施例提供的一种模型更新方法中的骨骼蒙皮模型示意图,图6中的目标模型的模型顶点数据是已经转换到了当前帧骨骼姿态空间后的顶点位置信息,所以无法直接进行顶点偏移操作。需要将第一骨骼模型顶点数据转换为第二静态模型顶点数据,然后才能进行顶点偏移,将偏移后获得的第三静态模型顶点数据按照蒙皮权重算法再转换回骨骼姿态空间,从而实现对目标模型的模型形变。

具体实施时,当模型形变策略为骨骼模型形变策略的情况下,目标模型的模型顶点数据为经过了骨骼绑定空间和骨骼姿态空间变换后的第一骨骼模型顶点数据V

在本申请一具体实施例中,对于蒙皮骨骼模型,顶点信息已经应用了骨骼蒙皮的影响,所以目标模型的模型顶点数据为第一骨骼模型顶点数据。在顶点着色器中,将第一骨骼模型顶点数据如顶点位置、法线信息进行空间转换,通过矩阵乘法,利用骨骼姿态矩阵、骨骼绑定矩阵等进行逆变换,将当前的第一骨骼模型顶点数据转换到模型空间中的第二静态模型顶点数据,对第二静态模型顶点数据应用BAT贴图变换,即在模型局部空间下应用视角变形的变换,得到第三静态模型顶点数据,将第三模型顶点数据通过矩阵乘法,利用骨骼姿态矩阵、骨骼绑定矩阵等进行变换,获得第二骨骼模型顶点数据,第二骨骼模型顶点数据即为最终的模型顶点信息,从而实现对骨骼蒙皮模型的视角变形。

基于此,通过对骨骼姿态空间下的模型顶点数据进行空间转换操作,使得能够直接使用形变数据对转换后的模型顶点数据进行偏移操作,保证了目标模型的形变效果。

进一步的,将所述第一骨骼模型顶点数据转换为第二静态模型顶点数据,包括:确定骨骼空间与模型空间之间的空间转换逆矩阵;基于所述空间转换逆矩阵和所述骨骼空间中的第一骨骼模型顶点数据进行计算,获得所述模型空间中的第二静态模型顶点数据;

其中,空间转换逆矩阵可以理解为将骨骼空间即骨骼姿态空间下的模型顶点数据转换到模型空间下的模型顶点数据的矩阵,即将骨骼模型顶点数据转换为静态模型顶点数据,通过空间转换数据与第一骨骼模型顶点数据进行计算,从而获得模型空间中的第二静态模型顶点数据。

将所述第三静态模型顶点数据转换为第二骨骼模型顶点数据,包括:确定所述骨骼空间与所述模型空间之间的空间转换矩阵;基于所述空间转换矩阵和所述模型空间中的第三静态模型顶点数据进行计算,获得所述骨骼空间中的第二骨骼模型顶点数据。

其中,空间转换矩阵可以理解为将模型空间下的模型顶点数据转换回骨骼空间下的模型顶点数据,即将静态模型顶点数据转换为骨骼模型顶点数据,通过将静态模型顶点数据转换回骨骼模型顶点数据,从而实现对骨骼模型的模型形变。实际应用中,空间转换逆矩阵与空间转换矩阵可以为相同矩阵如骨骼姿态矩阵、骨骼绑定矩阵,在需要将骨骼空间的数据转换到静态空间的数据时,通过矩阵乘法,利用骨骼姿态矩阵、骨骼绑定矩阵等进行逆变换即可;在需要将静态空间的数据转换到骨骼空间的数据时,通过矩阵乘法,利用骨骼姿态矩阵、骨骼绑定矩阵等进行逆变换即可。

在本申请一具体实施例中,确定目标模型为骨骼模型,此时获取到的目标模型的模型顶点数据为第一骨骼模型顶点数据,基于空间转换逆矩阵将第一骨骼模型顶点数据转换为第二静态模型顶点数据,然后基于形变信息对第二静态模型顶点数据进行顶点偏移操作,获得偏移后的第三静态模型顶点数据,然后再将第三静态模型顶点数据通过空间转换矩阵重新转换回骨骼空间下的第二骨骼模型顶点数据,从而实现对骨骼模型的模型形变。

综上所述,本申请提供的模型更新方法,通过确定目标模型O的当前视角V,并根据所述当前视角V在所述目标模型O的预设视角集合中选择与目标当前视角V相邻的目标预设视角SV;加载所述目标预设视角SV对应的变形模型T集合对应的目标预设形变贴图VAT,并根据所述目标预设形变贴图生成目标模型O在当前视角V下的形变信息;确定所述目标模型对应的模型类型信息S(静态模型Static或骨骼蒙皮模型Skined),基于模型类型信息和形变信息对目标模型进行模型形变。实现了利用顶点着色器的并行处理能力采样变形贴图进行实时形变,从而在实时运行时,可交互的摄像机视角和模型变形的一一对应关系。区别于传统离线渲染,使模型变形不在受到摄像机视角限制,区别于传统实时变形的动态修改fov法和z轴缩放法,使模型变形高度可控,可以精确到每个顶点。

本申请提供的一种模型更新方法,包括确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角;加载所述目标预设视角对应的目标预设形变贴图,并根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息;确定所述目标模型对应的模型类型信息,基于所述模型类型信息和所述形变信息对所述目标模型进行模型形变,其中,形变后的模型与所述当前视角具有视觉效果对应关系。通过在目标模型的预设视角集合中选择当前视角对应的目标预设视角,根据目标预设视角的目标预设形变贴图确定当前视角的形变信息,并根据目标模型的模型类型信息和形变信息对目标模型进行形变,从而实现基于采样贴图进行实时形变,减小模型在各个视角的形变计算开销,同时可以保证精确且高度自定义的形变目的。

下述结合附图7,以本申请提供的模型更新方法在面部模型形变的应用为例,对所述模型更新方法进行进一步说明。其中,图7示出了本申请一实施例提供的一种应用于面部模型形变的模型更新方法的处理流程图,具体包括以下步骤:

步骤702:确定目标模型的预设视角集合中预设视角对应的初始形变信息,对初始形变信息进行存储,获得预设视角对应的初始预设形变贴图。

在一种可实现的方式中,目标模型即为需要进行变形的模型,目标模型为游戏人物的面部模型,在离线状态下,制作面部模型在各个预设视角的初始形变信息,并对初始模型在所有预设视角下的形变信息以顶点为单位存储为初始预设形变贴图的像素,生成预设视角集合具体存储过程为对各个预设视角的初始形变信息进行编码,使每个顶点的变形信息能作为一个像素(颜色信息)存储在贴图中。

步骤704:按照预设排列规则对初始预设形变贴图进行排列处理,获得预设视角对应的预设形变贴图。

在一种可实现的方式中,按照预设排列规则对初始预设形变贴图进行排列处理,获得每个预设视角对应的预设形变贴图。

步骤706:确定目标模型的当前视角,并根据当前视角在目标模型的预设视角集合中选择目标预设视角。

在一种可实现的方式中,确定面部模型的当前视角,并根据当前的观看视角在球面坐标系的坐标,在面部模型的预设视角集合中选择水平方向与其最近的两个或一个目标预设视角和垂直方向与其最近的两个或一个目标预设视角,求出其在垂直方向的极角的插值比例α,和在水平方向的方向角的插值比例β。

步骤708:加载目标预设视角对应的目标预设形变贴图,并根据目标预设形变贴图生成目标模型在当前视角的形变信息。

在一种可实现的方式中,加载目标预设视角对应的目标预设形变贴图,在顶点着色器中采样,得到相邻预设形变顶点的偏移信息。根据插值比例α、β,利用三线性插值算法计算预设顶点的偏移信息,并根据目标预设形变贴图生成得到面部模型在当前视角的形变信息。

步骤710:确定所述目标模型对应的模型类型信息。

在一种可实现的方式中,读取面部模型的模型类型,面部模型对应的模型类型信息为骨骼模型类型。

步骤712:根据模型类型信息确定目标模型对应的模型形变策略,按照模型形变策略基于形变信息对目标模型进行模型形变。

在一种可实现的方式中,面部模型的模型顶点数据为骨骼模型顶点数据,在顶点着色器中,将骨骼模型顶点数据进行空间转换,通过矩阵乘法,利用骨骼姿态矩阵、骨骼绑定矩阵等进行逆变换,将当前的骨骼模型顶点数据转换到静态模型空间中的静态模型顶点数据,对静态模型顶点数据应用VAT贴图变换,即在模型局部空间下应用视角变形的变换,得到变换后的静态模型顶点数据,将变换后的模型顶点数据通过矩阵乘法,利用骨骼姿态矩阵、骨骼绑定矩阵等进行变换,获得变换后的骨骼模型顶点数据,变换后的骨骼模型顶点数据即为最终的模型顶点信息,通过变换后的骨骼模型顶点数据即可以渲染出当前视角下经过形变之后的面部模型,从而实现对面部模型的视角变形。

本申请提供的一种模型更新方法,通过在目标模型的预设视角集合中选择当前视角对应的目标预设视角,根据目标预设视角的目标预设形变贴图确定当前视角的形变信息,并根据目标模型的模型类型信息和形变信息对目标模型进行形变,从而实现基于采样贴图进行实时形变,减小模型在各个视角的形变计算开销,同时可以保证精确且高度自定义的形变目的。

图8示出了根据本申请一实施例提供的另一种模型更新方法的流程图,具体包括以下步骤:

步骤802:确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角。

步骤804:加载所述目标预设视角对应的目标预设形变贴图,并根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息。

步骤806:确定所述目标模型的第一骨骼模型顶点数据,将所述骨骼模型顶点数据转换为第二静态模型顶点数据,并基于所述形变信息对所述第二静态模型顶点数据进行调整,获得第三静态模型顶点数据。

步骤808:将所述第三静态模型顶点数据转换为第二骨骼模型顶点数据,作为对所述目标模型进行模型形变,其中,形变后的模型与所述当前视角具有视觉效果对应关系。

本申请提供的一种模型更新方法,通过在目标模型的预设视角集合中选择当前视角对应的目标预设视角,根据目标预设视角的目标预设形变贴图确定当前视角的形变信息,并根据目标模型的模型类型信息和形变信息对目标模型进行形变,从而实现基于采样贴图进行实时形变,减小模型在各个视角的形变计算开销,同时可以保证精确且高度自定义的形变目的。并且还可以针对骨骼空间下的模型顶点数据进行顶点偏移操作,避免了无法达到模型形变的效果。

与上述方法实施例相对应,本申请还提供了模型更新装置实施例,图9示出了本申请一实施例提供的一种模型更新装置的结构示意图。如图9所示,该装置包括:

选择模块902,被配置为确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角;

生成模块904,被配置为加载所述目标预设视角对应的目标预设形变贴图,并根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息;

形变模块906,被配置为确定所述目标模型对应的模型类型信息,基于所述模型类型信息和所述形变信息对所述目标模型进行模型形变,其中,形变后的模型与所述当前视角具有视觉效果对应关系。

可选的,所述装置还包括存储模块,被配置为确定所述目标模型的预设视角集合中预设视角对应的初始形变信息;对所述初始形变信息进行存储,获得所述预设视角对应的初始预设形变贴图;按照预设排列规则对所述初始预设形变贴图进行排列处理,获得所述预设视角对应的预设形变贴图。

可选的,所述形变模块906进一步被配置为根据所述模型类型信息确定所述目标模型对应的模型形变策略;按照所述模型形变策略基于所述形变信息对所述目标模型进行模型形变。

可选的,所述形变模块906进一步被配置为基于所述形变信息确定所述目标模型的模型顶点数据对应的法线偏移信息和顶点偏移信息;按照所述模型形变策略基于所述法线偏移信息和所述顶点偏移信息对所述目标模型进行模型形变。

可选的,所述形变模块906进一步被配置为将所述第一骨骼模型顶点数据转换为第二静态模型顶点数据;基于所述法线偏移信息和所述顶点偏移信息对所述第二静态模型顶点数据进行调整,获得第三静态模型顶点数据;将所述第三静态模型顶点数据转换为第二骨骼模型顶点数据,作为对所述目标模型进行模型形变。

可选的,所述形变模块906进一步被配置为确定骨骼空间与模型空间之间的空间转换逆矩阵;基于所述空间转换逆矩阵和所述骨骼空间中的第一骨骼模型顶点数据进行计算,获得所述模型空间中的第二静态模型顶点数据;将所述第三静态模型顶点数据转换为第二骨骼模型顶点数据,包括:确定所述骨骼空间与所述模型空间之间的空间转换矩阵;基于所述空间转换矩阵和所述模型空间中的第三静态模型顶点数据进行计算,获得所述骨骼空间中的第二骨骼模型顶点数据。

可选的,所述形变模块906进一步被配置为基于所述法线偏移信息和所述顶点偏移信息对所述第一静态模型顶点数据进行调整,作为对所述目标模型进行模型形变。

可选的,所述生成模块904进一步被配置为确定所述目标模型的初始视角,基于所述初始视角和所述当前视角计算视角变化信息;根据所述目标预设形变贴图获取所述目标预设视角对应的目标形变信息;根据所述视角变化信息和所述目标形变信息计算所述目标模型在所述当前视角的形变信息。

上述为本实施例的一种模型更新装置装置的示意性方案。需要说明的是,该模型更新装置装置的技术方案与上述的模型更新装置方法的技术方案属于同一构思,模型更新装置装置的技术方案未详细描述的细节内容,均可以参见上述模型更新装置方法的技术方案的描述。

与上述方法实施例相对应,本申请还提供了模型更新装置实施例,图10示出了本申请一实施例提供的一种模型更新装置的结构示意图。如图10所示,该装置包括:

选择模块1002,被配置为确定目标模型的当前视角,并根据所述当前视角在所述目标模型的预设视角集合中选择目标预设视角;

生成模块1004,被配置为加载所述目标预设视角对应的目标预设形变贴图,并根据所述目标预设形变贴图生成所述目标模型在所述当前视角的形变信息;

转换模块1006,被配置为确定所述目标模型的第一骨骼模型顶点数据,将所述骨骼模型顶点数据转换为第二静态模型顶点数据,并基于所述形变信息对所述第二静态模型顶点数据进行调整,获得第三静态模型顶点数据;

形变模块1008,被配置为将所述第三静态模型顶点数据转换为第二骨骼模型顶点数据,作为对所述目标模型进行模型形变,其中,形变后的模型与所述当前视角具有视觉效果对应关系。

图11示出了根据本申请一实施例提供的一种计算设备1100的结构框图。该计算设备1100的部件包括但不限于存储器1110和处理器1120。处理器1120与存储器1110通过总线1130相连接,数据库1150用于保存数据。

计算设备1100还包括接入设备1140,接入设备1140使得计算设备1100能够经由一个或多个网络1160通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,LocalAreaNetwork)、广域网(WAN,WideAreaNetwork)、个域网(PAN,PersonalAreaNetwork)或诸如因特网的通信网络的组合。接入设备1140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,network interfacecontroller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocalAreaNetwork)无线接口、全球微波互联接入(Wi-MAX,Worldwide Interoperabilityfor MicrowaveAccess)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,NearField Communication)接口,等等。

在本申请的一个实施例中,计算设备1100的上述部件以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备1100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备1100还可以是移动式或静止式的服务器。

其中,处理器1120执行所述计算机指令时实现所述的模型更新方法的步骤。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的模型更新方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述模型更新方法的技术方案的描述。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述模型更新方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的模型更新方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述模型更新方法的技术方案的描述。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 用于更新模型的方法和装置
  • 用于分发数据的方法、装置和模型更新系统
  • 判断数据状态的装置和方法以及数据更新的装置和方法
  • 神经网络的更新方法、更新装置和电子设备
  • 一种车辆控制器软件更新方法和更新装置
  • 模型更新装置、模型更新方法、以及记录了模型更新程序的计算机可读介质
  • 模型更新方法、模型更新装置、电子设备和介质
技术分类

06120116487199