对象模型的构建方法及装置、计算设备、可读存储介质
文献发布时间:2024-05-31 01:29:11
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种对象模型的构建方法及装置、计算设备、计算机可读存储介质和计算机程序产品。
背景技术
目前,很多应用程序(如游戏应用程序)中需要显示虚拟对象(如人物或动物),虚拟对象越来越多样化,对于虚拟对象的构建过程的要求也越来越高。
构建虚拟对象也即是构建该对象的三维模型。对虚拟对象进行脸部形象构建的过程中,通常需要利用大量的表情及其他细节的资源,构建过程需要较高的计算资源,对构建过程中虚拟对象的形象展示实时性具有较大的影响,导致虚拟对象的构建过程流畅度较低。
发明内容
本说明书实施例提供了一种对象模型的构建方法,可以提升虚拟对象的构建流畅度。本说明书一个或者多个实施例同时涉及一种对象模型的构建装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序产品。
根据本说明书实施例的一方面,提供了一种对象模型的构建方法,所述方法包括:
响应于针对目标对象模型的调整指令,确定所述目标对象模型的骨骼相对基准骨骼的目标变化信息;
基于所述目标变化信息和多个参考模型对应的骨骼变化信息,确定所述目标变化信息对应的参考模型中的顶点信息;其中,所述参考模型对应的骨骼变化信息为所述参考模型对应的骨骼相对所述基准骨骼的变化信息;
基于所述目标变化信息对应的参考模型中的顶点信息,确定所述目标对象模型中调整后的顶点信息,得到调整后的所述目标对象模型。
根据本说明书实施例的另一方面,提供了一种对象模型的构建装置,所述对象模型的构建装置包括:
第一确定模块,用于响应于针对目标对象模型的调整指令,确定所述目标对象模型的骨骼相对基准骨骼的目标变化信息;
第二确定模块,用于基于所述目标变化信息和多个参考模型对应的骨骼变化信息,确定所述目标变化信息对应的参考模型中的顶点信息;其中,所述参考模型对应的骨骼变化信息为所述参考模型对应的骨骼相对所述基准骨骼的变化信息;
第三确定模块,用于基于所述目标变化信息对应的参考模型中的顶点信息,确定所述目标对象模型中调整后的顶点信息,得到调整后的所述目标对象模型。
根据本说明书实施例的又一方面,提供了一种计算设备,包括:存储器和处理器;
所述存储器用于存储计算机程序/指令,所述处理器用于执行所述计算机程序/指令,该计算机程序/指令被处理器执行时实现上述方法的步骤。
根据本说明书实施例的再一方面,提供了一种计算机可读存储介质,其存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现上述方法的步骤。
根据本说明书实施例的又一方面,提供了一种计算机程序产品,包括计算机程序/指令,当所述计算机程序产品中的计算机程序/指令在处理器中执行时实现上述方法的步骤。
本说明书一个实施例中,可以预先确定多个参考模型对应的骨骼相对基准骨骼的变化信息,在针对目标对象模型进行调整时,可以基于该调整对骨骼带来的目标变化信息和多个参考模型对应的骨骼变化信息,确定该目标变化信息对应的参考模型及其顶点信息,进而可以基于该顶点信息确定调整后的目标对象模型。如此相当于用骨骼变化信息代表参考模型,可以通过比对目标变化信息和各个参考模型对应的骨骼变化信息的方式,来确定对目标对象模型进行调整所需利用的参考模型。因此无需加载各个参考模型的全部数据,仅利用数据量较小的骨骼变化信息就可实现对目标对象模型的调整,构建出所需的目标对象模型,可以减少对象模型构建过程所需的计算资源,保证对象模型构建过程的流畅度。
附图说明
图1是本说明书一实施例提供的一种对象模型的构建方法的流程图;
图2是本说明书一实施例提供的另一种对象模型的构建方法的流程图;
图3是本说明书一实施例提供的一种脸部模型的构建方法的简易流程图;
图4是本说明书一实施例提供的一种对象模型的构建装置的结构示意图;
图5是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。本说明书一个或多个实施例中的术语“至少一个”指的是“一个或多个”,“多个”指的是“两个或两个以上”。术语“包括”为开放性的描述,应当理解为“包括但不限定”,在已描述的内容的基础上还可能包括其他内容。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语“第一”、“第二”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,“第一”也可以被称为“第二”,类似地,“第二”也可以被称为“第一”。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
此外,本说明书一个或多个实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关的标准和要求,并提供有相应的操作入口,供用户选择授权或者拒绝。
目前,很多场景中需要在显示设备中显示较为逼真的各种对象(如人物或动物),可以创建对象的三维模型,以通过该三维模型呈现相应的对象。示例地,三维游戏中的游戏角色或者三维动画中的动画角色可以对应三维对象模型,通常可以由应用程序的开发人员预先针对所需呈现的对象构建其相应的三维对象模型,进而在游戏应用程序或动画应用程序运行时直接基于构建的三维对象模型显示相应的三维对象。在一些场景中,也可以由用户自行构建三维对象模型。
不同的虚拟对象可以展示不同的形象,针对每个虚拟对象可以基于其所需形象构建相应的三维对象模型。对于虚拟人物对象,其形象可以通过身体部位(如脸部)的形态、表情以及妆容等方面的特征来展现。人物角色的显示场景中,人物脸部形态及表情等方面的设置对人物角色的显示真实度来说至关重要。对三维人物模型脸部的构建可以称为捏脸。在针对人物模型进行高精度捏脸,使人物模型的脸部具有更高精度的细节和真实感表现时,通常需要耗费显示设备较高的计算资源,可能会造成显示设备的卡顿,对捏脸效果的显示实时性带来影响,也会影响捏脸效果。
本说明书实施例提供了一种对象模型的构建方法,可以在保证对象模型的高精度构建的基础上,保证对象模型的构建装置的性能和运行效率较高,提高对象模型的构建过程的流畅度。本说明书同时涉及一种对象模型的构建装置,一种计算设备,一种计算机可读存储介质,以及一种计算机程序产品,在下面的实施例中将逐一进行详细说明。该对象模型的构建方法可以用于该对象模型的构建装置和该计算设备。例如,该对象模型的构建装置和该计算设备可以为一种终端设备,如智能手机、笔记本电脑、平板电脑、虚拟现实显示设备或增强现实显示设备等。
图1是本说明书一实施例提供的一种对象模型的构建方法的流程图,该方法可以应用于对象模型的构建装置,下面简称为构建装置。如图1所示,该对象模型的构建方法包括以下步骤:
步骤102、响应于针对目标对象模型的调整指令,确定目标对象模型的骨骼相对基准骨骼的目标变化信息。
构建装置中可以安装有用于进行对象模型构建的目标应用程序,可以启动该目标应用程序以基于该目标应用程序进行目标对象模型的构建。用户可以通过在一初始对象模型的基础上进行调整,以实现对目标对象模型的构建。该初始对象模型可以在目标应用程序发布之前预先构建好的,在目标应用程序安装在构建装置中后,该初始对象模型的数据便可以存储在构建装置中。或者,该初始对象模型也可以由构建装置从其他设备获取得到,或者由用户利用目标应用程序生成。
构建装置可以提供多个初始模型供用户选择,不同的初始模型可以对应不同的对象类型,也可以对应同一对象类型中不同的对象形态。本说明书实施例中,以用户选择针对目标对象模型进行调整以实现对象模型的构建为例进行介绍。
示例地,构建装置基于目标对象模型的数据进行渲染以显示目标对象模型,如目标对象模型包括脸部模型,则可以显示相应的脸部图像。用户可以在该脸部图像上进行调整操作(如滑动、长按或缩放),以对目标对象模型进行调整。或者,构建装置可以显示多种参数的调整控件,可以针对相应的控件进行调整操作(如拉动某些参数调节条,填入某些参数值),以对目标对象模型进行相应参数的调整。
用户在针对目标对象模型进行任意调整操作时,构建装置可以接收到相应的调整指令。基于该调整指令可以确定目标对象模型中各个部位在该调整操作下被调整的情况。
目标对象模型可以对应有一套骨骼。目标对象模型可以通过对该骨骼进行蒙皮得到,也即是在该骨骼上绑定皮肤模型得到。皮肤模型可以由多个网格组成,皮肤模型中每个网格的顶点可以与一些骨骼绑定,这些骨骼称为该顶点的权重骨骼,顶点的位置受其权重骨骼的运动影响,不同权重骨骼对该顶点位置的影响程度可以通过相应的权重来表示。用户针对目标对象模型进行调整,可以相应地使目标对象模型对应的骨骼发生变化,构建装置可以获取该调整对骨骼带来的变化信息。
本说明书实施例中可以设置一套基准骨骼,该基准骨骼中各个骨骼的位置及相对关系均已知。在用户构建目标对象模型时,构建装置显示的初始对象模型可以为该基准骨骼对应的对象模型。
在用户对目标对象模型进行调整后,构建装置可以将目标对象模型的各个骨骼的位置与基准骨骼中各个骨骼的位置进行比较,以确定调整后目标对象模型的骨骼相对基准骨骼的目标变化信息。该目标变化信息可以用来代表调整后的目标对象模型的形态。
步骤104、基于目标变化信息和多个参考模型对应的骨骼变化信息,确定目标变化信息对应的参考模型中的顶点信息;其中,参考模型对应的骨骼变化信息为参考模型对应的骨骼相对基准骨骼的变化信息。
该参考模型与目标对象模型可以为同一类对象模型,例如参考模型也为脸部模型。本说明书实施例中,可以预先获取多个参考模型,每个参考模型对应有一套骨骼(如称为参考骨骼),且可以获取每个参考模型的参考骨骼的位置信息。该参考骨骼的位置信息包括参考骨骼中各个骨骼的位置信息。示例地,参考模型可以为美术制作者通过实践和脸部表情技术分析,设计出表征脸部关键表情和形态的脸部模型,参考骨骼为脸部骨骼。每个参考模型可包含5万个以上的顶点,参考模型的信息容量较大。
针对每个参考模型可以将参考骨骼的位置信息和基准骨骼的位置信息进行对比,以得到该参考骨骼相对基准骨骼的变化信息。参考骨骼和基准骨骼中骨骼数量及连接方式可以相同,具体的骨骼位置以及骨骼尺寸等信息不同,参考骨骼中每个骨骼均在基准骨骼中存在相应的骨骼。参考模型和基准骨骼对应的对象模型(如可以称为基准模型)中,各顶点与骨骼采用相同的绑定方式绑定。可选地,该基准模型可以为构建装置提供的初始对象模型。
针对参考模型中每个顶点,可以将该顶点在参考骨骼中对应的权重骨骼及该顶点在基准骨骼中对应的权重骨骼进行对比,进而确定各个顶点对应的权重骨骼的变化情况,得到参考模型对应的骨骼变化信息。该骨骼变化信息可以利用骨骼矩阵变化数据表示。该对比过程也可以认为是将参考模型与基准模型进行对比,确定在基准模型中每个顶点变换到参考模型中相应顶点的情况下,该顶点的权重骨骼的变化情况。
本说明书实施例中,通过把基准模型绑在基准骨骼(如一副精细的脸部骨骼)上,再将每个关键模型与基准模型进行对比,推算出各顶点对应的权重骨骼的变化情况,得到骨骼变化信息。如此可以将参考模型的数据映射成骨骼变化信息,可以大大压缩了利用参考模型进行处理时的数据量且可以提高程序处理效率。
本说明书实施例中,针对各个参考模型生成骨骼变化信息的过程可以由构建装置执行,或者也可以由构建装置之外的其他装置执行,构建装置在进行目标对象模型的构建时可以获取该骨骼变化信息即可。
构建装置在步骤102中确定目标对象模型的骨骼相对基准骨骼的目标变化信息后,可以将该目标变化信息与各个参考模型对应的骨骼变化信息进行比较分析,并将与目标变化信息相接近的至少一个骨骼变化信息对应的参考模型,确定为该目标变化信息对应的参考模型。相应地,构建装置可以获取目标变化信息对应的参考模型(如称为目标参考模型)的顶点信息,以基于目标参考模型的顶点信息确定目标对象模型调整后的顶点。示例地,构建装置可以获取目标参考模型中全部顶点的顶点信息,或者,构建装置也可以仅获取目标参考模型中与变化的骨骼相绑定的顶点的顶点信息。
步骤106、基于目标变化信息对应的参考模型中的顶点信息,确定目标对象模型中调整后的顶点信息,得到调整后的目标对象模型。
若构建装置在步骤104中获取到多个目标参考模型的顶点信息,进而在步骤106中可以对各目标参考模型的顶点信息进行融合处理,以使融合得到的顶点信息与调整后的目标对象模型中各骨骼的信息相匹配,此时该融合得到的顶点信息即可被确定为目标对象模型中调整后的顶点信息。构建装置可以利用该顶点信息,确定调整后的目标对象模型中的各顶点应当处于的位置,并将各顶点设置于相应的位置,则可得到调整后的目标对象模型。
若构建构建装置在步骤104中获取到一个目标参考模型的顶点信息,也即是存在一个目标参考模型对应的骨骼变化信息与目标对象模型对应的目标变化信息相同,则可以直接将该目标参考模型的顶点信息确定为目标对象模型中调整后的顶点信息,将该目标参考模型确定为调整后的目标对象模型。
本说明书实施例中,构建装置在得到调整后的目标对象模型的情况下,可以显示该调整后的目标对象模型,以便于用户可以直观地获知其进行的调整操作对目标对象模型带来的调整效果,以根据该显示效果确定是否要针对目标对象模型继续进行调整。
上述步骤102至步骤106是用户对目标对象模型进行一次调整操作构建装置所需执行的调整过程,用户可以针对目标对象模型进行多次调整,才最终得到调整完成的目标对象模型。该种情况下,每次调整之后均可以将此次调整后的目标对象模型确定为初始对象模型,进而重新执行步骤102至步骤106。
综上所述,本说明书实施例提供的对象模型的构建方法中,可以预先确定多个参考模型对应的骨骼相对基准骨骼的变化信息,在针对目标对象模型进行调整时,可以基于该调整对骨骼带来的目标变化信息和多个参考模型对应的骨骼变化信息,确定该目标变化信息对应的参考模型及其顶点信息,进而可以基于该顶点信息确定调整后的目标对象模型。如此相当于用骨骼变化信息代表参考模型,可以通过比对目标变化信息和各个参考模型对应的骨骼变化信息的方式,来确定对目标对象模型进行调整所需利用的参考模型。因此无需加载各个参考模型的全部数据,仅利用数据量较小的骨骼变化信息就可实现对目标对象模型的调整,构建出所需的目标对象模型,可以减少模型构建过程所需的计算资源,保证模型构建过程的流畅度。
图2是本说明书一实施例提供的另一种对象模型的构建方法的流程图,该方法可以应用于对象模型的构建装置。如图2所示,该对象模型的构建方法包括以下步骤:
步骤202、将基准模型与基准骨骼进行绑定。
本说明书实施例中,构建装置可以获取工作人员设计的基准模型和基准骨骼,基准骨骼可以包括多个骨骼。关于基准模型和基准骨骼可以参考上述步骤104中的相关介绍,此处对于前面介绍过的内容不作赘述。该基准模型可以包括多个顶点,构建装置可以将该基准模型和基准骨骼相绑定,如将基准模型中的每个顶点与基准骨骼中的至少一个骨骼相绑定,该至少一个骨骼即为该顶点的关联骨骼(也可以称为该顶点的权重骨骼)。构建装置还可以针对每个顶点设置其各个权重骨骼的权重,该权重表示相应的权重骨骼对顶点位置的影响程度。
在将基准模型与基准骨骼进行绑定后,构建装置便可以获取到基准模型中各顶点的顶点信息,以及基准骨骼中各顶点的关联骨骼的位置信息。
步骤204、将参考模型中每个顶点的关联骨骼与该顶点在基准模型中对应的顶点的关联骨骼进行位置对比,得到该顶点对应的骨骼变化信息。
构建装置可以获取多个参考模型的信息,如可以获取每个参考模型中各顶点的顶点信息,还可以获取参考模型的参考骨骼中各顶点的关联骨骼的位置信息。关于参考模型、参考骨骼以及参考模型与基准模型的关系,可以参考上述步骤104中的相关介绍,此处对于前面介绍过的内容不再赘述。
每个参考模型中的各顶点与基准模型中的各顶点一一对应,构建装置可以对比参考模型中每个顶点的关联骨骼的位置信息与基准模型对应顶点的关联骨骼的位置信息,得到参考模型中每个顶点对应的骨骼变化信息。
步骤206、基于参考模型中各顶点对应的骨骼变化信息,确定参考模型对应的骨骼变化信息。
构建装置可以将参考模型中各顶点对应的骨骼变化信息进行整合,如整合为一个数据矩阵,进而将整合后得到的骨骼变化信息确定为参考模型对应的骨骼变化信息。如此,构建装置可以得到多个参考模型对应的骨骼变化信息,也即是参考模型相对基准模型的差异信息。本说明书实施例中,相当于用各参考模型对应的骨骼变化信息来表征各参考模型的信息,该骨骼变化信息的数据量较小,如此可以节省数据存储空间,也有利于针对参考模型进行数据处理时的数据处理速率。
步骤208、基于对象模型在任一维度参数的多个参数值下的骨骼信息,确定该维度参数对应的待调骨骼,且确定待调骨骼的变化信息与该维度参数的变化信息的关系。
本说明书实施例中所述的模型均为一种对象模型,如该对象模型可以指三维对象模型。步骤208中所述的对象模型可以与上述参考模型、基准模型和目标对象模型属于同一类型,如均为人物模型或脸部模型。
本说明书实施例中的对象模型可以具有多个维度的参数,每个维度可以对应对象模型上的不同区域。示例地,脸部模型可以具有额头高低维度的参数、脸颊宽窄维度的参数以及眼睛大小维度的参数等。构建装置可以基于对象模型的构建经验设定任一维度参数的参数值范围,该参数值范围可以包括多个参数值。
构建装置可以获取历史构建的多个对象模型的信息(包括其各顶点的信息以及骨骼的信息),并基于这些对象模型的信息分析得到对象模型在每个维度参数的每个参数值下的骨骼信息。该骨骼信息可以包括各个骨骼的位置信息以及尺寸信息等。这些历史构建的对象模型可以是构建装置从其他设备收集得到的,或者也可以是构建装置自行构建的。
构建装置还可以基于对象模型在各个维度参数的各参数值下的骨骼信息,针对每个维度参数确定影响其参数值的各个骨骼,将这些骨骼确定为该维度参数对应的待调骨骼。并且,可以针对每个维度参数,总结待调骨骼的变化信息与该维度参数的变化信息的关系,也即是确定待调骨骼对维度参数的影响情况。
示例地,通过对历史构建的多个对象模型的信息进行分析,可以得到额头高低对应的待调骨骼为骨骼1、2、3和4,将额头调高a厘米,需要将骨骼1沿第一方向移动k1*a厘米,将骨骼2沿第二方向移动k2*a厘米,将骨骼3沿第三方向移动k3*a厘米,将骨骼4沿第四方向移动k4*a厘米。此处仅以待调骨骼的变化信息与维度参数的变化信息成一定比例为例,实际应用中待调骨骼的变化信息与维度参数的变化信息之间的关系可能非常复杂,此处并不对该关系构成限定。
本说明书实施例中,可以针对对象模型设定多个单一维度参数,且针对各维度参数与骨骼信息的关系进行抽象和细化,如形成一套公式来表征每个维度参数的变化信息与相应的待调骨骼的变化信息的关系。如此可以实现将对象模型的参数与骨骼信息进行映射,便于进行对象模型的参数调整时直接利用相应的骨骼信息进行处理,可以提升模型调整效率。
本说明书实施例中,上述步骤202至步骤208在实际进行目标对象模型的构建之前执行。可选地,步骤202至步骤208的执行装置与进行目标对象模型的构建的装置可以不同,也可以相同,此处不作限定。
步骤210、响应于针对目标对象模型的任一维度参数的调整指令,基于该维度参数对应的待调骨骼的变化信息与该维度参数的变化信息的关系,确定待调骨骼的变化信息。
本说明书实施例中,步骤210可以参考步骤102中的相关介绍,此处对前面介绍过的内容不作赘述。示例地,构建装置可以展示多种维度参数的调整控件,对于每种维度参数可以在其对应的可调参数值范围内进行调整,构建装置接收到的任一维度参数(如目标维度参数)的调整指令可以携带其待调整至的参数值。
在用户触发构建装置对目标对象模型进行调整的情况下,构建装置可以获取预先确定的各个参考模型的维度参数的变化信息与待调骨骼的变化信息的关系。在用户针对目标对象模型进行目标维度参数的调整的情况下,构建装置可以确定目标对象模型对应的骨骼中目标维度参数对应的待调骨骼。构建装置还可以基于用户对目标维度参数的具体调整情况,确定该待调骨骼具体的变化信息,也即是确定在目标对象模型当前状态的基础上待调骨骼应当如何变化。
步骤212、基于待调骨骼的变化信息,确定目标对象模型的骨骼相对基准骨骼的目标变化信息。
构建装置基于目标对象模型的待调骨骼的变化信息,以及目标对象模型原本的骨骼信息,可以确定进行目标维度参数的调整后目标对象模型的骨骼信息。构建装置可以将调整后目标对象模型的骨骼信息与基准骨骼的信息进行比对,以得到目标对象模型的骨骼相对基准骨骼的目标变化信息。目标变化信息的确定过程可以参考上述步骤102中的相关介绍,此处对于前面介绍过的内容不作赘述。
步骤214、基于目标变化信息和多个参考模型对应的骨骼变化信息,确定目标变化信息对应的参考模型中的顶点信息;其中,参考模型对应的骨骼变化信息为参考模型对应的骨骼相对基准骨骼的变化信息。
构建装置可以获取用骨骼变化信息表示的各参考模型,并确定对目标对象模型进行目标维度参数的调整需利用的参考模型的顶点信息,也是确定目标变化信息对应的参考模型的顶点信息。本说明书实施例中,步骤214可以参考步骤104中的相关介绍,此处不作赘述。
步骤216、基于目标变化信息对应的参考模型中的顶点信息,确定目标对象模型中调整后的顶点信息,得到调整后的目标对象模型。
目标变化信息可以对应至少两个参考模型,构建装置可以将目标变化信息对应的至少两个参考模型中的顶点信息进行融合处理,以确定目标对象模型中调整后的顶点信息。步骤214可以参考步骤104中的相关介绍,此处不作赘述。
可选地,目标对象模型可以仅包括基础的五官、表情及形态等特征。在一些情况中,可以为人脸进行更加精细化的设置,如在人脸上设置装饰物或对人脸进行化妆(如在脸部添加腮红)。在这些情况下,构建装置可以获取相应的贴图,并将所需的贴图与目标对象模型绑定。如设置该贴图在目标对象模型上的设置位置,以供后续将该贴图显示于目标对象模型上指定位置处。例如,构建装置可以执行下述步骤218。
步骤218、响应于针对目标对象模型的贴图合成指令,通过辅助线程对多张贴图进行合成得到目标贴图。
示例地,构建装置可以显示对目标对象模型进行精细化设置的控件,如显示多种装饰物添加控件以及妆容搭配控件。用户可以针对这些控件进行操作,以触发构建装置接收到针对目标对应模型的贴图合成指令,该贴图合成指令可以携带用户选定的多张贴图的指示信息。构建装置可以基于该贴图合成指令将该多张目标贴图合成。贴图合成可以涉及对脸部和各器官部件的颜色、法线和光泽度等贴图进行颜色混合、向量混合和颜色偏色等操作。构建装置还可以对某些贴图进行调整,以使得到的目标贴图与目标对象模型更为匹配。
构建装置可以利用辅助线程进行贴图合成和其他贴图处理操作,该辅助线程可以与渲染线程不同。由于进行贴图处理的过程中需要进行大量贴图资源的加载和处理,通常需耗费较多的处理资源,可能导致程序性能受损造成目标对象模型的显示出现卡顿等现象。本说明书实施例中,采用异步的辅助线程进行贴图的处理,在辅助线程对贴图处理完毕后,再将处理后的贴图加载至渲染线程进行相应地渲染显示,可以避免贴图处理过程对目标对象模型的调整过程的影响,减少对程序性能和运行效率的影响。
可选地,构建装置还可以响应于针对目标对象模型的贴图合成指令,并行处理贴图合成过程中的多个子过程得到目标贴图。构建装置可以利用图形处理器(GPU,graphicsprocessing unit)计算资源进行目标贴图的合成和其他贴图处理操作,以提升贴图处理效果。
构建装置在得到目标贴图后,可以将目标贴图与目标对象模型绑定,设置目标贴图与目标对象模型具体的位置对应关系。如目标贴图中的某些位置与目标对象模型中的某些位置相对应。
步骤220、通过渲染线程显示目标对象模型和目标贴图,其中,辅助线程不同于渲染线程。
构建装置可以在辅助线程对各贴图进行处理得到目标贴图后,再将该目标贴图加载至渲染线程进行渲染显示。渲染线程可以基于目标贴图与目标对象模型的绑定关系,将目标贴图渲染于目标对象模型中的相应位置,实现对目标对象模型添加目标贴图。可选地,上述步骤210至步骤216也可以由构建装置中的渲染线程处理。
本说明书实施例中,构建装置采用延迟加载贴图资源和多线程技术,将贴图合成操作放到异步线程里,可以减少对程序性能的影响。并且,利用快速的GPU计算资源和并行算法加速对贴图的处理,可以使得用户的输入反馈能及时生效到屏幕上。
图3是本说明书一实施例提供的一种脸部模型的构建方法的简易流程图。如图3所示,构建装置可以预先进行对象模型的顶点、骨骼和捏脸参数之间的转换。如构建装置可以获取基准模型和多个表情关键模型1、2、...、i,该表情关键模型即为上述参考模型。构建装置将每个表情关键模型与基准模型进行比对,得到各表情关键模型对应的骨骼矩阵1、2、...、j,该骨骼矩阵也即是上述参考模型对应的骨骼变化信息。构建装置还可以获取多种捏脸参数1、2、...、k,该捏脸参数也即是上述的维度参数,并将每种捏脸参数的变化映射成相应待调骨骼的变化。
在进行实际的捏脸时,构建装置的渲染线程可以获取各个捏脸参数组成的捏脸参数集,并针对至少一个捏脸参数进行调整。构建装置基于捏脸参数变化与骨骼变化的映射关系,确定该调整所需利用的骨骼矩阵,进而确定捏脸参数调整对应的捏脸结果。
在捏脸中需要进行脸部细节贴图处理的情况下,可以利用捏脸细节贴图处理线程(也即上述的辅助线程)对所需的贴图进行高效处理,得到处理后的细节贴图。该细节贴图和捏脸参数调整对应的捏脸结果共同组成最终的捏脸结果。进而渲染线程可以对该捏脸结果进行渲染显示。
本说明书实施例中,通过骨骼转换技术,把美术制作的数百个精细的脸部细节和表情顶点数据,转换成高效的骨骼驱动数据(也即上述骨骼变化信息)。抽象一套数据转换公式,把复杂的骨骼数据抽象成单一维度的脸部特征数据(也即维度参数),对使用者进行更直观的展现。采用多线程贴图合成的技术架构,合成脸部细节贴图,减少对程序运行效率的影响。采用高效的细节贴图合成算法,加快捏脸进程的速度,实现所见即所得的捏脸效果。本说明书实施例可以在提升目标对象模型的真实感和自定义程度的同时,优化设备性能和用户界面,提升用户体验。
综上所述,本说明书实施例提供的对象模型的构建方法中,可以预先确定多个参考模型对应的骨骼相对基准骨骼的变化信息,在针对目标对象模型进行调整时,可以基于该调整对骨骼带来的目标变化信息和多个参考模型对应的骨骼变化信息,确定该目标变化信息对应的参考模型及其顶点信息,进而可以基于该顶点信息确定调整后的目标对象模型。如此相当于用骨骼变化信息代表参考模型,可以通过比对目标变化信息和各个参考模型对应的骨骼变化信息的方式,来确定对目标对象模型进行调整所需利用的参考模型。因此无需加载各个参考模型的全部数据,仅利用数据量较小的骨骼变化信息就可实现对目标对象模型的调整,构建出所需的目标对象模型,可以减少模型构建过程所需的计算资源,保证模型构建过程的流畅度。
与上述方法实施例相对应,本说明书还提供了对象模型的构建装置实施例,图4是本说明书一实施例提供的一种对象模型的构建装置的结构示意图。如图4所示,该对象模型的构建装置包括:
第一确定模块401,用于响应于针对目标对象模型的调整指令,确定目标对象模型的骨骼相对基准骨骼的目标变化信息;
第二确定模块402,用于基于目标变化信息和多个参考模型对应的骨骼变化信息,确定目标变化信息对应的参考模型中的顶点信息;其中,参考模型对应的骨骼变化信息为参考模型对应的骨骼相对基准骨骼的变化信息;
第三确定模块403,用于基于目标变化信息对应的参考模型中的顶点信息,确定目标对象模型中调整后的顶点信息,得到调整后的目标对象模型。
可选地,对象模型的构建装置还包括:
绑定模块,用于在基于目标变化信息和多个参考模型对应的骨骼变化信息,确定目标变化信息对应的参考模型中的顶点信息之前,将基准模型与基准骨骼进行绑定;
对比模块,用于将参考模型中每个顶点的关联骨骼与每个顶点在基准模型中对应的顶点的关联骨骼进行位置对比,得到每个顶点对应的骨骼变化信息;
第四确定模块,用于基于各顶点对应的骨骼变化信息,确定参考模型对应的骨骼变化信息。
可选地,第一确定模块401用于:
响应于针对目标对象模型的任一维度参数的调整指令,基于该任一维度参数对应的待调骨骼的变化信息与该任一维度参数的变化信息的关系,确定待调骨骼的变化信息;
基于待调骨骼的变化信息,确定目标对象模型的骨骼相对基准骨骼的目标变化信息。
可选地,对象模型的构建装置还包括:
第五确定模块,用于在响应于针对目标对象模型的任一维度参数的调整指令,基于该任一维度参数对应的待调骨骼的变化信息与该任一维度参数的变化信息的关系,确定待调骨骼的变化信息之前,基于对象模型在该任一维度参数的多个参数值下的骨骼信息,确定该任一维度参数对应的待调骨骼,且确定待调骨骼的变化信息与该任一维度参数的变化信息的关系。
可选地,目标变化信息对应至少两个参考模型;第三确定模块403用于:
目标变化信息对应的至少两个参考模型中的顶点信息进行融合处理,确定目标对象模型中调整后的顶点信息。
可选地,对象模型的构建装置还包括:
合成模块,用于响应于针对目标对象模型的贴图合成指令,通过辅助线程将目标贴图与目标对象模型合成;
显示模块,用于通过渲染线程显示目标对象模型,其中,辅助线程不同于渲染线程。
可选地,对象模型的构建装置还包括:
处理模块,用于响应于针对目标对象模型的贴图合成指令,并行处理贴图合成过程中的多个子过程,得到合成有目标贴图的目标对象模型。
可选地,目标对象模型包括脸部模型,多个参考模型包括不同表情形态的脸部模型。
综上所述,本说明书实施例提供的对象模型的构建装置,可以预先确定多个参考模型对应的骨骼相对基准骨骼的变化信息,在针对目标对象模型进行调整时,第二确定模块可以基于该调整对骨骼带来的目标变化信息和多个参考模型对应的骨骼变化信息,确定该目标变化信息对应的参考模型及其顶点信息,进而第三调整模块可以基于该顶点信息确定调整后的目标对象模型。如此相当于用骨骼变化信息代表参考模型,可以通过比对目标变化信息和各个参考模型对应的骨骼变化信息的方式,来确定对目标对象模型进行调整所需利用的参考模型。因此无需加载各个参考模型的全部数据,仅利用数据量较小的骨骼变化信息就可实现对目标对象模型的调整,构建出所需的目标对象模型,可以减少模型构建过程所需的计算资源,保证模型构建过程的流畅度。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。对于对象模型的构建装置而言,由于其基本相似于对象模型的构建方法实施例,所以描述的比较简单,相关之处参见对象模型的构建方法实施例的部分说明即可。
图5是本说明书一实施例提供的一种计算设备的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,networkinterface controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)。
在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
其中,处理器520用于执行计算机程序/指令,该计算机程序/指令被处理器执行时实现上述图1或图2所示的方法。
对于计算设备实施例而言,由于其基本相似于对象模型的构建方法实施例,所以描述的比较简单,相关之处参见对象模型的构建方法实施例的部分说明即可。
本说明书一个实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现上述对象模型的构建方法的步骤。所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读存储介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读存储介质包含的内容可以根据管辖区内立法和专利实践的要求进行适当的增减,例如在某些管辖区,根据立法和专利实践,计算机可读存储介质不包括电载波信号和电信信号。
本说明书一个实施例还提供一种计算机程序产品,包括计算机程序/指令,当所述计算机程序/指令在处理器中执行时实现上述对象模型的构建方法的步骤。
对于计算机可读存储介质实施例和计算机程序产品实施例而言,由于其基本相似于对象模型的构建方法实施例,所以描述的比较简单,相关之处参见对象模型的构建方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。
- 模态框构建方法、装置、电子设备、计算机可读存储介质
- 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
- 一种元数据存储方法、装置、设备及计算机可读存储介质
- 存储设备的数据删除方法、装置及计算机可读存储介质
- 一种数据存储方法、装置、设备及计算机可读存储介质
- 业务对象模型生成方法、电子设备、计算机可读存储介质
- 实例对象模型构建方法及装置、可读介质和电子设备