发明内容
本公开提供虚拟数字人的纹理渲染方法及装置、云服务器和存储介质,以解决相关技术中的不足。
根据本公开实施例的第一方面,提出一种虚拟数字人的纹理渲染方法,由云服务器执行,所述方法包括:
将原始纹理贴图拆分为第一纹理贴图以及第二纹理贴图;其中,所述第一纹理贴图上纹理的尺度大于预设阈值,所述第二纹理贴图上纹理的尺度小于或等于所述预设阈值;
基于图像采集装置与虚拟数字人之间的距离值,对所述第二纹理贴图上纹理的尺度进行调整后,得到第三纹理贴图;
对所述第一纹理贴图以及所述第三纹理贴图进行混合,得到目标纹理贴图;
基于所述目标纹理贴图,对所述虚拟数字人进行纹理渲染。
根据本公开实施例的第二方面,提出一种虚拟数字人的纹理渲染装置,设置于云服务器,所述装置包括:
拆分模块,用于将原始纹理贴图拆分为第一纹理贴图以及第二纹理贴图;其中,所述第一纹理贴图上纹理的尺度大于预设阈值,所述第二纹理贴图上纹理的尺度小于或等于所述预设阈值;
第一处理模块,用于基于图像采集装置与虚拟数字人之间的距离值,对所述第二纹理贴图上纹理的尺度进行调整后,得到第三纹理贴图;
第二处理模块,用于对所述第一纹理贴图以及所述第三纹理贴图进行混合,得到目标纹理贴图;
渲染模块,用于基于所述目标纹理贴图,对所述虚拟数字人进行纹理渲染。
根据本公开实施例的第三方面,提出一种通信设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现上述纹理渲染方法。
根据本公开实施例的第四方面,提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述纹理渲染方法中的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
在本实施例中,一方面,可以将原始纹理贴图拆分为纹理尺度不同的两张纹理贴图,对于拆分得到的纹理尺度较小的第二纹理贴图可以无缝重复使用,避免在图像平铺时增加纹理接缝。
另一方面,可以基于图像采集装置与虚拟数字人之间的距离值的变化,对纹理尺度较小的第二纹理贴图上的纹理的尺度进行动态调整,有效对冲其渲染效果的消散。第二纹理贴图上呈现的是更加细节的纹理,随着图像采集装置镜头的远近变化,通过此时图像采集装置与虚拟数字人之间的距离值对第二纹理贴图上的纹理的尺度进行调整后,可以使得渲染后的虚拟数字人的细节纹理更加清晰,提升虚拟数字人渲染的写实度。
据此,可以有效提高纹理渲染效果,解决写实角色皮肤细节难以分辨的问题,且可以有效提升超写实虚拟数字人的渲染品质。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
图1是根据本公开的实施例示出的一种虚拟数字人的纹理渲染方法的示意流程图。本实施例所示的纹理渲染方法可以由云服务器执行。
如图1所示,纹理渲染方法可以包括以下步骤:
在步骤S101中,将原始纹理贴图拆分为第一纹理贴图以及第二纹理贴图;其中,第一纹理贴图上纹理的尺度大于预设阈值,第二纹理贴图上纹理的尺度小于或等于预设阈值;
在步骤S102中,基于图像采集装置与虚拟数字人之间的距离值,对第二纹理贴图上纹理的尺度进行调整后,得到第三纹理贴图;
在步骤S103中,对第一纹理贴图以及第三纹理贴图进行混合,得到目标纹理贴图;
在步骤S104中,基于目标纹理贴图,对虚拟数字人进行纹理渲染。
在一些实施例中,可以基于纹理的不同尺度,对原始纹理贴图进行拆分,得到纹理尺度大于预设阈值的第一纹理贴图,以及纹理尺度小于或等于预设阈值的第二纹理贴图。
在一个示例中,预设阈值可以设置为大于0的数值,本公开对预设阈值的取值不作限定。
其中,在计算机图形学中,可以将物体表面的细节称为纹理,在本公开实施例中,纹理可以指虚拟数字人的皮肤沟壑、毛孔等细节。在虚拟数字人的渲染场景下,纹理对象包括贴图的UV坐标,将纹理渲染到虚拟数字人上就是指将贴图的UV坐标映射到虚拟数字人上,从而在虚拟数字人的表面呈现皮肤沟壑、毛孔等细节。
纹理的尺度是纹理的重要特征,采用不同的尺度可能得到不同的纹理结构。
其中,纹理的尺度是指纹理的大小或尺寸,在本公开实施例中,纹理的尺度可以表征不同尺寸的细节。以虚拟数字人的渲染场景为例,纹理的尺度不同时,原始纹理贴图可以拆分得到用于渲染虚拟数字人的不同细节的纹理结构,例如,按照较大的纹理的尺度对原始纹理贴图进行细节提取时,可以得到皮肤皱纹、沟壑等较大尺度的纹理结构。再例如,按照较小的纹理的尺度对原始纹理贴图进行细节提取时,可以得到毛孔等较小尺度的纹理结构。
在本公开实施例中,云服务器可以将原始纹理贴图,例如图2A所示,按照纹理的不同尺度进行拆分,得到用于表征尺度较大的细节的第一纹理贴图,例如图2B所示,以及得到用于表征尺度较小的细节的第二纹理贴图,例如图2C所示。
在一个示例中,第一纹理贴图可以用于表征脸上的皱纹等尺度较大的细节,第二纹理贴图可以用于表征脸上的毛孔等尺度较小的细节。
在一些实施例中,图像采集装置包括但不限于摄像机、录像机等设备。
在本实施例中,可以根据图像采集装置与虚拟数字人之间的距离值,对尺度较小的第二纹理贴图进行无缝重复使用,即通过该距离值,对更加细节的纹理的尺度进行调整有效对冲其渲染效果的消散。
在一个示例中,第三纹理贴图上纹理的尺度与图像采集装置的视觉距离,即图像采集装置与虚拟数字人之间的距离值正相关。
可以理解的是,图像采集装置与虚拟数字人之间的距离值越远,第三纹理贴图上纹理的尺度越大,当虚拟数字人与图像采集装置的距离值变远,可以让虚拟数字人呈现较大的纹理。反之,当虚拟数字人与图像采集装置的距离值变近,即使第三纹理贴图上纹理的尺度变小,可以让虚拟数字人呈现较小的纹理。使得渲染后的虚拟数字人的细节纹理随着虚拟数字人与图像采集装置的距离值的变化而变化,提升虚拟数字人渲染的写实度。
得到第三纹理贴图的方式可以参照后续图4所示的实施例,此处暂不介绍。
在一些实施例中,在得到第三纹理贴图后,可以将其与第一纹理贴图进行混合,得到新的纹理贴图,即目标纹理贴图。
在一些实施例中,云服务器可以基于该目标纹理贴图对虚拟数字人进行纹理渲染。
在一个示例中,云服务器可以基于目标纹理贴图进行光照计算,并基于光照计算结果对虚拟数字人进行纹理渲染。光照计算结果可以包括光照强度、光照角度等,在虚拟数字人的渲染中,为了使渲染后的虚拟数字人具有更真实的效果,可以基于目标纹理贴图的UV坐标,对绘制虚拟数字人的网格(mesh)计算光照强度,以便在渲染虚拟数字人时,可以让其呈现出对应的纹理效果。例如,可以计算让虚拟数字人呈现目标纹理贴图对应的纹理的尺度时,所需要的光照强度、光照角度,通过该光照计算结果虚拟光源所在位置和强度,当光源发射的光线照射在虚拟数字人上时,可以让虚拟数字人呈现对应的纹理。
图3是根据本公开的实施例示出的又一种虚拟数字人的纹理渲染方法的示意流程图。如图3所示,步骤S102可以包括:
在步骤S301中,计算图像采集装置与虚拟数字人之间的距离值;
在步骤S302中,基于距离值,确定纹理乘数;
在步骤S303中,基于纹理乘数对第二纹理贴图上纹理的尺度进行调整,得到第三纹理贴图。
在一些实施例中,参照图4所示,可以通过云服务器的GPU获取图像采集装置在三维空间,例如世界坐标系中的第一坐标(x1,y1,z1),以及虚拟数字人在三维空间中的第二坐标(x2,y2,z2)。
在一些实施例中,GPU可以调用长度(length)函数,基于第一坐标(x1,y1,z1)、第二坐标(x2,y2,z2),计算得到图像采集装置与虚拟数字人之间的距离值。
在一些实施例中,参照图4所示,可以将目标值作为分子,图像采集装置与该虚拟数字人之间的距离值作为分母,得到该纹理乘数。
在一个示例中,目标值可以为固定值,且可以基于经验值确定,比如大于1的数值。
示例性地,目标值可以为大于1的数值,本公开对目标值的取值不作限定。
在一些实施例中,参照图4所示,对所述第二纹理贴图上纹理的尺度按照所述纹理乘数进行放大或缩小后,得到所述第三纹理贴图的过程可以包括:对第二纹理贴图按照纹理乘数在固定大小的网格内进行平铺,得到第三纹理贴图。
可以理解的是,图像采集装置与虚拟数字人之间的距离值越大,纹理乘数越小,在固定大小的网格内对第二纹理贴图平铺的数目越多,这样得到的第三纹理贴图的纹理的尺度也就越大,随着图像采集装置的视觉距离拉远,也可以让虚拟数字人呈现更大尺度的纹理。当图像采集装置与虚拟数字人之间的距离值越小,该纹理乘数就越大,在网格内对第二纹理贴图的图像平铺的数目越少,随着图像采集装置的视觉距离拉近,可以让虚拟数字人呈现的纹理的尺度也越小。
上述实施例中,可以基于图像采集装置与所述虚拟数字人之间的距离值的变化,对纹理尺度较小的第二纹理贴图上的纹理的尺度进行动态调整,有效对冲其渲染效果的消散。第二纹理贴图上呈现的是更加细节的纹理,随着图像采集装置镜头的远近变化,通过此时图像采集装置与虚拟数字人之间的距离值对第二纹理贴图上的纹理的尺度进行调整后,可以使得渲染后的虚拟数字人的细节纹理更加清晰,提升虚拟数字人渲染的写实度。
与前述的虚拟数字人的纹理渲染方法的实施例相对应地,本公开还提供了虚拟数字人的纹理渲染装置的实施例。
图5是根据本公开的实施例示出的一种虚拟数字人的纹理渲染装置的示意框图。本实施例所示的虚拟数字人的纹理渲染装置可以设置于云服务器。
如图5所示,虚拟数字人的纹理渲染装置500包括:
拆分模块501,用于将原始纹理贴图拆分为第一纹理贴图以及第二纹理贴图;其中,第一纹理贴图上纹理的尺度大于预设阈值,第二纹理贴图上纹理的尺度小于或等于预设阈值;
第一处理模块502,用于基于图像采集装置与虚拟数字人之间的距离值,对第二纹理贴图上纹理的尺度进行调整后,得到第三纹理贴图;
第二处理模块503,用于对第一纹理贴图以及第三纹理贴图进行混合,得到目标纹理贴图;
渲染模块504,用于基于目标纹理贴图,对所述虚拟数字人进行纹理渲染。
在一些实施例中,该第一处理模块包括:
计算子模块,用于计算所述图像采集装置与所述虚拟数字人之间的所述距离值;
确定子模块,用于基于所述距离值,确定纹理乘数;
调整子模块,用于基于所述纹理乘数对所述第二纹理贴图上纹理的尺度进行调整,得到所述第三纹理贴图。
在一些实施例中,所述计算子模块具体用于:
通过图形处理器分别获取图像采集装置在三维空间中的第一坐标,以及获取虚拟数字人在三维空间中的第二坐标;
基于第一坐标与第二坐标,调用长度函数,计算得到图像采集装置与虚拟数字人之间的距离值。
在一些实施例中,确定子模块具体用于将目标值与所述距离值的商值确定为所述纹理乘数。
在一些实施例中,调整子模块具体用于对所述第二纹理贴图上纹理的尺度按照所述纹理乘数进行放大或缩小后,得到所述第三纹理贴图。在一些实施例中,第三纹理贴图上纹理的尺度与距离值正相关。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在相关方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本公开的实施例还提出一种云服务器,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为实现上述任一实施例的方法。
本公开的实施例还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例方法中的步骤。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。