一种数字人头发及服装适配的方法、装置及系统与流程
未命名
07-13
阅读:95
评论:0
1.本发明涉及数字人领域, 应用于实现对数字人进行个性化换装。
背景技术:
2.现阶段在数字人领域,对数字人进行个性化换装已经是很常见的应用,换装包括更换数字人的发型、衣服、裤子、鞋子、袜子等服饰。同时目前的数字人头发适配一般是针对每个数字人进行单独制作或者生成数字人时需要针对这个人进行特殊处理,处理时间长,产生资源量大 ,服装适配时,由于数字人对多套服装进行自由搭配时,往往需要美术人员对服装进行精细调整来解决模型穿插问题,处理此类工作工作量巨大。
技术实现要素:
3.本发明要解决的技术问题在于,针对现有技术中存在的缺陷,提供了一种数字人头发及服装适配的方法、装置及系统,实现了只需要制作一套头发模型就可以适配所有数字人,并且只需要n+m 张mask贴图就可以解决模型穿透问题,其中n、m是搭配服装的数量。
4.其中本发明解决其技术问题所采用的技术方案是:根据本公开实施例的一方面,提供了一种数字人头发适配的方法,包括:关于数字人头发适配包括头发离线处理和头发实时渲染;其中,头发离线处理步骤包括:读取模型、标记发际线位置、平滑数据、保存数据;s1.1、获取头发模型,将头发模型读取到内存中,通过渲染的方式将头发模型以网格形式显示出来;s1.2、对头发模型发际线位置处的顶点进行标记,得到标记数据;s1.3、将标记数据相加求平均值,得到平均数据;s1.4、将平均数据保存为文件形式,应用于实时渲染;其中,头发实时渲染步骤包括:加载角色模型、读取发际线、计算额头部分位置偏移;s2.1、获取头发模型,解析头发模型数据文件,得到头发模型的点、边、面数据;s2.2、读取平均数据,得到第一头发顶点p0,并对头发模型进行顶点索引,得到第二头发顶点p1;s2.3、根据第一头发顶点p0和第二头发顶点p1计算头发部分位置偏移。
5.根据本公开实施例的另一方面,计算额头部分位置偏移,包括:计算额头部分位置偏移offsety =||p1-p0||;并且当头发模型换头发时,将额头部分位置传入头发材质中,并调整模型坐标posw的y,其中posw.y = offsety。
6.根据本公开实施例的一方面,提供了一种数字人服装适配的方法,包括:关于数字人服装适配包括服装离线处理和服装实时渲染;
其中,服装离线处理步骤包括:s3.1、获取人体模型,读取人体模型的点、线、面数据;s3.2、获取服装模型,读取服装模型的点、线、面数据;s3.3、根据人体模型的点、线、面数据和服装模型的点、线、面数据进行投影,得到服装与人体对应的uv和法线数据;s3.4、根据服装与人体对应的uv和法线数据生成mask贴图和法线贴图;其中,服装实时渲染步骤包括:采样mask贴图和法线贴图,并根据mask贴图和法线贴图对模型顶点进行缩放、过渡处剔除以及裁剪。
7.根据本公开实施例的另一方面,其中根据人体模型的点、线、面数据和服装模型的点、线、面数据进行投影,包括:将人体和服装放在同一坐标位置,遍历服装所有顶点,沿法线方向向人体模型发射射线,通过相交点找到相交位置的uv,并将相交位置的uv写入服装的uv1通道,找到人体上的法线写入服装的顶点颜色通道。
8.根据本公开实施例的另一方面,找到人体上的法线写入服装的顶点颜色通道,包括:颜色通道算法为:color=n*0.5+0.5,其中n为法线、color为颜色通道。
9.根据本公开实施例的另一方面,根据服装与人体对应的uv和法线数据生成mask贴图和法线贴图,包括:生成mask贴图时,在uv边缘处理进行过渡处理,应用于在进行服装实时渲染时通过过渡处理进行接缝处理的平滑优化。
10.根据本公开实施例的一方面,提供了一种数字人头发适配的装置,包括:关于数字人头发适配包括头发离线处理模块和头发实时渲染模块;其中,头发离线处理模块包括:读取模型单元、标记发际线位置单元、平滑数据单元、保存数据单元;读取模型单元:获取头发模型,将头发模型读取到内存中,通过渲染的方式将头发模型以网格形式显示出来;标记发际线位置单元:对头发模型发际线位置处的顶点进行标记,得到标记数据;平滑数据单元:将标记数据相加求平均值,得到平均数据;保存数据单元:将平均数据保存为文件形式,应用于实时渲染;其中,头发实时渲染模块包括:加载角色模型单元、读取发际线单元、计算额头部分位置偏移单元;加载角色模型单元:获取头发模型,解析头发模型数据文件,得到头发模型的点、边、面数据;读取发际线单元:读取平均数据,得到第一头发顶点p0,并对头发模型进行顶点索引,得到第二头发顶点p1;计算额头部分位置偏移单元:根据第一头发顶点p0和第二头发顶点p1计算头发部分位置偏移。
11.根据本公开实施例的一方面,提供了一种数字人服装适配的装置,包括:
关于数字人服装适配包括服装离线处理模块和服装实时渲染模块;其中,服装离线处理模块包括:数据获取单元:获取人体模型,读取人体模型的点、线、面数据,获取服装模型,读取服装模型的点、线、面数据;投影单元:根据人体模型的点、线、面数据和服装模型的点、线、面数据进行投影,得到服装与人体对应的uv和法线数据;贴图获取单元:根据服装与人体对应的uv和法线数据生成mask贴图和法线贴图;其中,服装实时渲染模块包括:采样mask贴图和法线贴图,并根据mask贴图和法线贴图对模型顶点进行缩放、过渡处剔除以及裁剪。
12.根据本公开实施例的一方面,提供了一种数字人头发及服装适配的系统,其特征在于,数字人头发及服装适配的系统应用于上述的数字人服装适配的装置以及数字人头发适配的装置。
13.根据本公开实施例的一方面,提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质上存储有计算机程序,处理器执行计算机程序,实现如上述任一项的数字人头发及服装适配的方法即数字人头发适配的方法以及数字人服装适配的方法。
14.本发明采用以上技术方案,至少具备以下有益效果:针对头发适配问题,本公开实施例只需要针对一套标准数字人制作头发就可以适配所有数字人;针对服装适配问题,本公开实施例只需要美术人员按常规方法制作服装模型就进行自由搭配而不会有模型穿插问题,大大减少了美术人员制作模型的工作量及后续模型修改的工作量。
15.同时应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
16.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
17.图1是本公开实施例中一种数字人头发及服装适配的方法的方法示意图;图2是本公开实施例中一种数字人头发适配的方法的离线处理步骤示意图;图3是本公开实施例中一种数字人头发适配的方法的实时渲染步骤示意图;图4是本公开实施例中一种数字人服装适配的方法的离线处理步骤示意图;图5是本公开实施例中uv展开的示意图;图6是本公开实施例中uv1通道的示意图;图7是本公开实施例中一种数字人头发适配的装置的装置示意图;图8是本公开实施例中一种数字人服装适配的装置的装置示意图。
具体实施方式
18.为使本公开实施例的目的、技术方案和优点更加清楚,下面将对本公开实施例的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
19.本公开实施例中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
20.现阶段数字人领域,对数字人进行个性化换装已经是比较常见的应用,换装包含更换数字人的发型,衣服,裤子,鞋,袜子等。
21.其中针对头发现阶段主要采用针对每个数字人都单独制作头发模型或者是在生成数字人时,同时生成适配此数字人的头发模型;针对服装主要对不同服装搭配进行测试,对有穿插的服装模型进行单独调整,或者是针对不同服装搭配,对有穿插的部分制作一张mask贴图进行裁剪来解决,此方法需要生成n*m张mask贴图,其中n、m是指搭配的服装数量。
22.对此本公开实施例对现有技术进行改进,提供了一种数字人头发及服装适配的方法,如图一所示,实现了只需要针对一套标准数字人制作头发就可以适配所有数字人,针对服装适配问题,本技术只需要美术人员按常规方法制作服装模型就进行自由搭配而不会有模型穿插问题,大减少了美术人员制作模型的工作量及后续模型修改的工作量。
23.于是,根据本公开实施例的一方面,提供了一种数字人头发适配的方法,包括:关于数字人头发适配包括头发离线处理和头发实时渲染;其中,头发离线处理步骤如图2所示,包括:读取模型、标记发际线位置、平滑数据、保存数据;s1.1、获取头发模型,将头发模型读取到内存中,通过渲染的方式将头发模型以网格形式显示出来;s1.2、对头发模型发际线位置处的顶点进行标记,得到标记数据;s1.3、将标记数据相加求平均值,得到平均数据;s1.4、将平均数据保存为文件形式,应用于实时渲染;其中,头发实时渲染步骤如图3所示,包括:加载角色模型、读取发际线、计算额头部分位置偏移;s2.1、获取头发模型,解析头发模型数据文件,得到头发模型的点、边、面数据;s2.2、读取平均数据,得到第一头发顶点p0,并对头发模型进行顶点索引,得到第二头发顶点p1;s2.3、根据第一头发顶点p0和第二头发顶点p1计算头发部分位置偏移。
24.综上,本公开实施例中数字人头部顶点的替换方式为将标准模型头部顶点替换到生成的模型上,将平滑处理接缝。并且本公开实施例通过对数字人头发适配即头发离线处
理和头发实时渲染,实现了只需要制作一套头发模型就可以适配所有数字人的效果。
25.一种可能的实施例中,计算额头部分位置偏移,包括:计算额头部分位置偏移offsety =||p1-p0||;并且当头发模型换头发时,将额头部分位置传入头发材质中,并调整模型坐标posw的y,其中公式(1)为:posw.y = offsety(1)根据本公开实施例的一方面,提供了一种数字人服装适配的方法,包括:关于数字人服装适配包括服装离线处理和服装实时渲染;其中,服装离线处理步骤如图4所示,包括:s3.1、获取人体模型,读取人体模型的点、线、面数据;s3.2、获取服装模型,读取服装模型的点、线、面数据;s3.3、根据人体模型的点、线、面数据和服装模型的点、线、面数据进行投影,得到服装与人体对应的uv和法线数据;其中关于uv展开如图5所示,uv按人体结构进行展开,该展开方式能够处理肢体连接处的接缝问题。
26.同时投影的步骤还包括:将人体和服装放在同一坐标位置;遍历服装所有顶点,沿法线方向向人体模型发射射线,通过相交点找到相交位置的uv,并将找到的人体上的uv写入到付账的uv1通道,其中uv1通道如图6所示;找到人体上的法线写入服装的顶点颜色通道,其中颜色通道算法(2)为:color=n*0.5+0.5(2)其中n为法线、color为颜色通道。
27.s3.4、根据服装与人体对应的uv和法线数据生成mask贴图和法线贴图;针对于生成mask贴图,本公开实施例通过uv1通道数据,生成mask贴图,生成mask贴图时,在uv边缘处理进行过渡处理,目的在于在实时渲染的过程中通过操作进行接缝处理的平滑优化;针对于生成法线,本公开实施例通过顶点颜色数据,生成法线贴图。在生成法线贴图时,先将颜色转换为[-1,1]范围,其中公式(3)为:c1 = color * 2
ꢀ‑ꢀ
1(3)然后将c1转换到切线空间,公式(4)为:m(t, b, n)*c1(4)其中,m(t, b, n)为切线空间矩阵,其中t为切线,b为副切线,n为法线,将转换完的c1 变换到[0,1]范围,生成c2,公式(5)为:c2 = c1*0.5 +0.5(5)最后将c2烘焙到贴图中。
[0028]
其中,服装实时渲染步骤包括:采样mask贴图和法线贴图,并根据mask贴图和法线贴图对模型顶点进行缩放、过渡处剔除以及裁剪。
[0029]
其中在渲染的过程中,将烘焙的c2贴图及mask贴图传到着色器中进行处理,关于实时渲染具体操作如下:
采样c2贴图,转换到模型空间:公式(6)、(7)为:c3=c2*2-1(6)c4=invert(m(t,b,n))*c3)(7)其中,c2为读取的贴图,invert 求矩阵的逆矩阵, m(t,b,n)为切线空间矩阵。
[0030]
采样mask贴图,读取到的值为m通过c4和m,对模型顶点进行缩放,公式为(8):positionos
ꢀ‑
= ( ( ( 1.0
ꢀ‑ꢀ
c4) * m) * 0.01 )(8)positionos为模型顶点。
[0031]
将c4值传入片段着色器,将过渡处剔除,并在片段着色器中进行裁剪,其中裁剪规则按如下裁剪函数公式(9)执行,clip(co
ꢀ‑ꢀ
0.5)(9),其中 clip为裁剪函数。
[0032]
综上,关于数字人uv的展开规则为数字人uv按人体特性进行展开,如手,脚,腿的位置按3体正交投影方式摆放;关于服装uv映射则是将服装上的点投影到身体来找到对应的uv坐标。实现了美术人员只需要按常规方法制作服装模型就进行自由搭配而不会有模型穿插问题,大减少了美术人员制作模型的工作量及后续模型修改的工作量。
[0033]
一种可能的实施例中,其中根据人体模型的点、线、面数据和服装模型的点、线、面数据进行投影,包括:将人体和服装放在同一坐标位置,遍历服装所有顶点,沿法线方向向人体模型发射射线,通过相交点找到相交位置的uv,并将相交位置的uv写入服装的uv1通道,找到人体上的法线写入服装的顶点颜色通道。
[0034]
一种可能的实施例中,找到人体上的法线写入服装的顶点颜色通道,包括:颜色通道算法(10)为:color=n*0.5+0.5 (10),其中n为法线、color为颜色通道。
[0035]
一种可能的实施例中,根据服装与人体对应的uv和法线数据生成mask贴图和法线贴图,包括:生成mask贴图时,在uv边缘处理进行过渡处理,应用于在进行服装实时渲染时通过过渡处理进行接缝处理的平滑优化。
[0036]
根据本公开实施例的一方面,提供了一种数字人头发适配的装置,包括:关于数字人头发适配包括头发离线处理模块701和头发实时渲染模块702;其中,头发离线处理模块701包括:读取模型单元7011、标记发际线位置单元7012、平滑数据单元7013、保存数据单元7014;读取模型单元7011:获取头发模型,将头发模型读取到内存中,通过渲染的方式将头发模型以网格形式显示出来;标记发际线位置单元7012:对头发模型发际线位置处的顶点进行标记,得到标记数据;平滑数据单元7013:将标记数据相加求平均值,得到平均数据;保存数据单元7014:将平均数据保存为文件形式,应用于实时渲染;其中,头发实时渲染模块702包括:加载角色模型单元7021、读取发际线单元7022、计算额头部分位置偏移单元7023;
加载角色模型单元7021:获取头发模型,解析头发模型数据文件,得到头发模型的点、边、面数据;读取发际线单元7022:读取平均数据,得到第一头发顶点p0,并对头发模型进行顶点索引,得到第二头发顶点p1;计算额头部分位置偏移单元7023:根据第一头发顶点p0和第二头发顶点p1计算头发部分位置偏移。
[0037]
根据本公开实施例的一方面,提供了一种数字人服装适配的装置,包括:关于数字人服装适配包括服装离线处理模块801和服装实时渲染模块802;其中,服装离线处理模块801包括:数据获取单元8011:获取人体模型,读取人体模型的点、线、面数据,获取服装模型,读取服装模型的点、线、面数据;投影单元8012:根据人体模型的点、线、面数据和服装模型的点、线、面数据进行投影,得到服装与人体对应的uv和法线数据;贴图获取单元8013:根据服装与人体对应的uv和法线数据生成mask贴图和法线贴图;其中,服装实时渲染模块802包括:采样mask贴图和法线贴图,并根据mask贴图和法线贴图对模型顶点进行缩放、过渡处剔除以及裁剪。
[0038]
根据本公开实施例的一方面,提供了一种数字人头发及服装适配的系统,其特征在于,数字人头发及服装适配的系统应用于上述的数字人服装适配的装置以及数字人头发适配的装置。
[0039]
根据本公开实施例的一方面,提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质上存储有计算机程序,处理器执行计算机程序,实现上述任一项的数字人头发及服装适配的方法即数字人头发适配的方法以及数字人服装适配的方法。
[0040]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开实施例中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现公开实施例公开的技术方案所期望的结果,本公开在此不进行限制。
[0041]
上述具体实施方式,并不构成对本公开实施例保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开实施例的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开实施例保护范围之内。
技术特征:
1.一种数字人头发适配的方法,其特征在于,包括:关于数字人头发适配包括头发离线处理和头发实时渲染;其中,所述头发离线处理步骤包括:读取模型、标记发际线位置、平滑数据、保存数据;s1.1、获取头发模型,将所述头发模型读取到内存中,通过渲染的方式将所述头发模型以网格形式显示出来;s1.2、对所述头发模型发际线位置处的顶点进行标记,得到标记数据;s1.3、将所述标记数据相加求平均值,得到平均数据;s1.4、将所述平均数据保存为文件形式,应用于实时渲染;其中,所述头发实时渲染步骤包括:加载角色模型、读取发际线、计算额头部分位置偏移;s2.1、获取所述头发模型,解析所述头发模型数据文件,得到所述头发模型的点、边、面数据;s2.2、读取所述平均数据,得到第一头发顶点p0,并对所述头发模型进行顶点索引,得到第二头发顶点p1;s2.3、根据所述第一头发顶点p0和所述第二头发顶点p1计算头发部分位置偏移。2.根据权利要求1所述的方法,计算额头部分位置偏移,其特征在于,包括:计算额头部分位置偏移offsety =||p1-p0||;并且当头发模型换头发时,将额头部分位置传入头发材质中,并调整模型坐标posw的y,其中posw.y = offsety。3.一种数字人服装适配的方法,其特征在于,包括:关于数字人服装适配包括服装离线处理和服装实时渲染;其中,所述服装离线处理步骤包括:s3.1、获取人体模型,读取所述人体模型的点、线、面数据;s3.2、获取服装模型,读取所述服装模型的点、线、面数据;s3.3、根据所述人体模型的点、线、面数据和所述服装模型的点、线、面数据进行投影,得到服装与人体对应的uv和法线数据;s3.4、根据所述服装与人体对应的uv和法线数据生成mask贴图和法线贴图;其中,所述服装实时渲染步骤包括:采样所述mask贴图和所述法线贴图,并根据所述mask贴图和所述法线贴图对模型顶点进行缩放、过渡处剔除以及裁剪。4.根据权利要求3所述的方法,其中根据所述人体模型的点、线、面数据和所述服装模型的点、线、面数据进行投影,其特征在于,包括:将人体和服装放在同一坐标位置,遍历所述服装所有顶点,沿法线方向向人体模型发射射线,通过相交点找到相交位置的uv,并将所述相交位置的uv写入所述服装的uv1通道,找到所述人体上的法线写入服装的顶点颜色通道。5.根据权利要求4所述的方法,找到所述人体上的法线写入服装的顶点颜色通道,其特征在于,包括:所述颜色通道算法为:color=n*0.5+0.5,其中n为法线、color为颜色通道。
6.根据权利要求3所述的方法,根据所述服装与人体对应的uv和法线数据生成mask贴图和法线贴图,其特征在于,包括:生成mask贴图时,在uv边缘处理进行过渡处理,应用于在进行服装实时渲染时通过所述过渡处理进行接缝处理的平滑优化。7.一种数字人头发适配的装置,其特征在于,包括:关于数字人头发适配包括头发离线处理模块和头发实时渲染模块;其中,所述头发离线处理模块包括:读取模型单元、标记发际线位置单元、平滑数据单元、保存数据单元;读取模型单元:获取头发模型,将所述头发模型读取到内存中,通过渲染的方式将所述头发模型以网格形式显示出来;标记发际线位置单元:对所述头发模型发际线位置处的顶点进行标记,得到标记数据;平滑数据单元:将所述标记数据相加求平均值,得到平均数据;保存数据单元:将所述平均数据保存为文件形式,应用于实时渲染;其中,所述头发实时渲染模块包括:加载角色模型单元、读取发际线单元、计算额头部分位置偏移单元;加载角色模型单元:获取所述头发模型,解析所述头发模型数据文件,得到所述头发模型的点、边、面数据;读取发际线单元:读取所述平均数据,得到第一头发顶点p0,并对所述头发模型进行顶点索引,得到第二头发顶点p1;计算额头部分位置偏移单元:根据所述第一头发顶点p0和所述第二头发顶点p1计算头发部分位置偏移。8.一种数字人服装适配的装置,其特征在于,包括:关于数字人服装适配包括服装离线处理模块和服装实时渲染模块;其中,所述服装离线处理模块包括:数据获取单元:获取人体模型,读取所述人体模型的点、线、面数据,获取服装模型,读取所述服装模型的点、线、面数据;投影单元:根据所述人体模型的点、线、面数据和所述服装模型的点、线、面数据进行投影,得到服装与人体对应的uv和法线数据;贴图获取单元:根据所述服装与人体对应的uv和法线数据生成mask贴图和法线贴图;其中,所述服装实时渲染模块包括:采样所述mask贴图和所述法线贴图,并根据所述mask贴图和所述法线贴图对模型顶点进行缩放、过渡处剔除以及裁剪。9.一种数字人头发及服装适配的系统,其特征在于,所述数字人头发及服装适配的系统应用于上述的数字人服装适配的装置以及数字人头发适配的装置。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实现如权利要求1-6中任一项所述的数字人头发及服装适配的方法即数字人头发适配的方法以及数字人服装适配的方法。
技术总结
本发明提供了一种数字人头发及服装适配的方法、装置及系统,涉及数字人领域,应用于实现对数字人进行个性化换装。具体包括:对头发离线处理即读取模型、标记发际线位置、平滑数据、保存数据;对头发实时渲染即加载角色模型、读取发际线、计算额头部分位置偏移;对服装离线处理即获取人体模型以及服装模型数据,同时投影得到服装与人体对应的UV和法线数据,生成mask贴图和法线贴图;对于服装实时渲染即根据mask贴图和法线贴图对模型顶点进行缩放、过渡处剔除以及裁剪。本发明只需一套标准数字人制作头发就可以适配所有数字人,同时本方面只需美术人员按常规方法制作服装模型就进行自由搭配,减少了美术人员制作模型的工作量及后续模型修改的工作量。模型修改的工作量。模型修改的工作量。
技术研发人员:胡强 张剑
受保护的技术使用者:北京盈锋科技有限公司
技术研发日:2023.05.30
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
