对象生成方法、装置、计算机设备和存储介质与流程

文档序号:30619451发布日期:2022-07-02 02:03阅读:73来源:国知局
对象生成方法、装置、计算机设备和存储介质与流程

1.本技术涉及计算机图形图像技术领域,特别是涉及一种对象生成方法、装置、计算机设备和存储介质。


背景技术:

2.随着计算机技术的发展,越来越多的领域中应用到虚拟对象,例如游戏领域中,通过构建虚拟对象生成虚拟的游戏世界,动漫领域中,通过构建虚拟对象生成虚拟的动画场景。虚拟对象中很多是具有毛绒效果的,例如虚拟对象为具有毛发的动物、具有毛发的人物、地毯或草地等。
3.传统技术中,为了生成具有毛绒效果的虚拟对象,通常是手动为虚拟对象绘制毛状物,比如,手动绘制毛发或者草等。因而,导致生成虚拟对象的效率较低。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高生成虚拟对象的效率的对象生成方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.一方面,本技术提供了一种对象生成方法。所述方法包括:对三维毛状对象模型中的毛状对象进行划分,得到多个三维毛状对象簇;为每个所述三维毛状对象簇生成毛状对象面片组,基于各个所述毛状对象面片组生成三维毛状对象面片模型;对于所述三维毛状对象面片模型中的每个毛状对象面片,基于所述毛状对象面片的面片纹理坐标将对应的三维毛状对象簇变换成所述毛状对象面片对应的二维毛状对象簇;对各个所述二维毛状对象簇进行图像渲染生成目标毛状对象贴图,基于所述三维毛状对象面片模型以及所述目标毛状对象贴图,生成具有毛绒效果的目标虚拟对象。
6.另一方面,本技术还提供了一种对象生成装置。所述装置包括:三维毛状对象簇得到模块,用于对三维毛状对象模型中的毛状对象进行划分,得到多个三维毛状对象簇;面片模型生成模块,用于为每个所述三维毛状对象簇生成毛状对象面片组,基于各个所述毛状对象面片组生成三维毛状对象面片模型;二维毛状对象簇得到模块,用于对于所述三维毛状对象面片模型中的每个毛状对象面片,基于所述毛状对象面片的面片纹理坐标将对应的三维毛状对象簇变换成所述毛状对象面片对应的二维毛状对象簇;对象生成模块,用于对各个所述二维毛状对象簇进行图像渲染生成目标毛状对象贴图,基于所述三维毛状对象面片模型以及所述目标毛状对象贴图,生成具有毛绒效果的目标虚拟对象。
7.在一些实施例中,所述三维毛状对象簇得到模块,还用于确定待生成的目标虚拟对象的三维毛状对象模型中的各个毛状对象的根部点;对各个所述根部点进行聚类分析,得到多个目标聚类中心点;对于所述三维毛状对象模型中的每个毛状对象,从所述多个目标聚类中心点中确定所述毛状对象对应的邻近中心点;将邻近中心点相同的各个毛状对象组成三维毛状对象簇,得到多个三维毛状对象簇。
8.在一些实施例中,所述三维毛状对象簇得到模块,还用于在预设毛状对象面片组
数量的基础上增大预设倍数,得到第一聚类类别数量;对各个所述根部点进行第一聚类分析,得到所述第一聚类类别数量的第一聚类中心点;对所述第一聚类类别数量的第一聚类中心点进行第二聚类分析,得到多个目标聚类中心点。
9.在一些实施例中,所述三维毛状对象簇得到模块,还用于确定所述毛状对象的毛状对象包围盒;获取所述毛状对象的毛状对象包围盒的中心位置,将各个所述目标聚类中心点中与所述中心位置最近的目标聚类中心点,确定为所述毛状对象对应的邻近中心点。
10.在一些实施例中,所述面片模型生成模块,还用于确定每个所述三维毛状对象簇分别对应的毛状对象簇包围盒;确定单位包围盒与每个所述三维毛状对象簇分别对应的毛状对象簇包围盒之间的仿射变换关系;对于每个所述三维毛状对象簇,利用对应的仿射变换关系对单位面片组进行仿射变换,生成所述三维毛状对象簇对应的毛状对象面片组。
11.在一些实施例中,所述二维毛状对象簇得到模块,还用于确定所述毛状对象面片对应的三维毛状对象簇在所述毛状对象面片上的各个投影点;每个所述投影点对应三维毛状对象簇中的一个毛状对象点;基于所述毛状对象面片的面片纹理坐标,确定所述毛状对象面片上的各个投影点的纹理坐标;按照所述投影点的纹理坐标对所述投影点对应的毛状对象点进行排布,生成所述毛状对象面片对应的二维毛状对象簇。
12.在一些实施例中,所述二维毛状对象簇得到模块,还用于从所述毛状对象面片上确定对应的三维毛状对象簇中的各个毛状对象点分别对应的邻近点;从所述毛状对象面片上确定每个所述邻近点分别所属的基本几何图形;对于每个所述毛状对象点,基于对应的邻近点所属的基本几何图形在所述邻近点处的法线,确定所述毛状对象点的投影方向;在所述毛状对象点的投影方向上的射线与所述毛状对象面片相交的情况下,将所述毛状对象点对应的邻近点确定为所述毛状对象点在所述毛状对象面片上的投影点。
13.在一些实施例中,所述二维毛状对象簇得到模块,还用于从所述毛状对象面片上确定每个投影点相对于所属的基本几何图形的相对纹理坐标;对于每个所述投影点,基于所属的基本几何图形的纹理坐标以及对应的相对纹理坐标,确定所述投影点的纹理坐标。
14.在一些实施例中,所述对象生成模块,还用于对于所述三维毛状对象面片模型中的每个毛状对象面片,基于所述毛状对象面片上的投影点确定所述投影点对应的毛状对象点的相对位置信息;所述毛状对象点的相对位置信息,用于表征所述毛状对象点与所述毛状对象面片之间的相对关系;基于各个所述二维毛状对象簇中的毛状对象点的相对位置信息,对各个所述二维毛状对象簇进行图像渲染,生成所述三维毛状对象面片模型对应的目标毛状对象贴图。
15.在一些实施例中,所述面片模型生成模块,还用于统计各个所述毛状对象面片组包括的毛状对象面片的数量,得到总面片数量;基于所述总面片数量以及每个所述毛状对象面片的面片序号,确定每个所述毛状对象面片分别对应的纹理坐标变换系数;利用所述毛状对象面片对应的纹理坐标变换系数,对所述毛状对象面片中的每个顶点的初始纹理坐标进行缩小平移处理,得到所述毛状对象面片中每个顶点的目标纹理坐标;利用每个所述顶点的目标纹理坐标替换对应的初始纹理坐标,将替换纹理坐标后的各个所述毛状对象面片组成的模型确定为所述三维毛状对象面片模型。
16.在一些实施例中,所述面片模型生成模块,还用于基于所述总面片数量从纹理空间中划分出多个纹理区域;基于所述毛状对象面片的面片序号,从各个所述纹理区域中确
定与每个所述毛状对象面片分别对应的纹理区域;基于所述毛状对象面片对应的纹理区域在纹理空间中的位置以及纹理区域的尺寸,确定所述毛状对象面片对应的纹理坐标变换系数。
17.在一些实施例中,所述装置还用于获取目标虚拟对象的三维网格模型以及预设毛状对象属性贴图;基于所述三维网格模型以及所述预设毛状对象属性贴图,生成所述目标虚拟对象的三维毛状对象模型。
18.另一方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述对象生成方法中的步骤。
19.另一方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述对象生成方法中的步骤。
20.另一方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述对象生成方法中的步骤。
21.上述对象生成方法、装置、计算机设备、存储介质和计算机程序产品,对三维毛状对象模型中的毛状对象进行划分,得到多个三维毛状对象簇,为每个三维毛状对象簇生成毛状对象面片组,基于各个毛状对象面片组生成三维毛状对象面片模型,对于三维毛状对象面片模型中的每个毛状对象面片,基于毛状对象面片的面片纹理坐标将对应的三维毛状对象簇变换成毛状对象面片对应的二维毛状对象簇,对各个二维毛状对象簇进行图像渲染生成目标毛状对象贴图,基于三维毛状对象面片模型以及目标毛状对象贴图,生成具有毛绒效果的目标虚拟对象。从而可以基于三维毛状对象面片模型以及目标毛状对象贴图,自动生成具有毛绒效果的目标虚拟对象,提高了生成虚拟对象的效率。
附图说明
22.图1为一些实施例中对象生成方法的应用环境图;图2为一些实施例中对象生成方法的流程示意图;图3为一些实施例中目标虚拟对象的示意图;图4为一些实施例中目标虚拟对象的表面示意图;图5为一些实施例中预设毛状对象属性贴图的示意图;图6为一些实施例中生成的毛状对象示意图;图7为一些实施例中预设颜色贴图的示意图;图8为一些实施例中初始毛状对象模型的示意图;图9为一些实施例中三维毛状对象模型的示意图;图10为一些实施例中参数获取区域的示意图;图11为一些实施例中设置毛状对象参数的示意图;图12为一些实施例中参考毛状对象模型的示意图;图13为一些实施例中参考毛状对象模型的示意图;图14为一些实施例中三维毛状对象面片模型的示意图;图15为一些实施例中确定三维毛状对象簇的原理图;
图16为一些实施例中聚类的原理图;图17为一些实施例中确定毛状对象面片组的原理图;图18为一些实施例中调整毛状对象面片组的原理图;图19为一些实施例中二维毛状对象簇的示意图;图20为一些实施例中二维毛状对象簇的示意图;图21为一些实施例中距离贴图的示意图;图22为一些实施例中面片属性贴图的示意图;图23为一些实施例中方向贴图的示意图;图24为一些实施例中设置贴图的参数的界面图;图25为一些实施例中三维毛状对象面片模型对应的纹理坐标示意图;图26为一些实施例中对象生成方法的流程示意图;图27为一些实施例中对象生成方法的流程示意图;图28为一些实施例中对象生成装置的结构框图;图29为一些实施例中计算机设备的内部结构图;图30为一些实施例中计算机设备的内部结构图。
具体实施方式
23.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
24.本技术实施例提供的对象生成方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。
25.具体地,终端102可以获取待生成的目标虚拟对象的三维毛状对象模型,对三维毛状对象模型中的毛状对象进行划分,得到多个三维毛状对象簇,为每个三维毛状对象簇生成毛状对象面片组,基于各个毛状对象面片组生成三维毛状对象面片模型,对于三维毛状对象面片模型中的每个毛状对象面片,基于毛状对象面片的面片纹理坐标将对应的三维毛状对象簇变换成毛状对象面片对应的二维毛状对象簇,对各个二维毛状对象簇进行图像渲染生成目标毛状对象贴图。终端102可以基于三维毛状对象面片模型以及目标毛状对象贴图生成具有毛绒效果的目标虚拟对象。终端102还可以将三维毛状对象面片模型以及目标毛状对象贴图发送至服务器104,服务器104可以将三维毛状对象面片模型以及目标毛状对象贴图进行对应存储,还可以将三维毛状对象面片模型以及目标毛状对象贴图发送至其他的设备,其他的设备可以基于三维毛状对象面片模型以及目标毛状对象贴图生成具有毛绒效果的目标虚拟对象。
26.其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
27.在一些实施例中,如图2所示,提供了一种对象生成方法,该方法可以由终端或服
务器执行,还可以由终端和服务器共同执行,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:步骤202,对三维毛状对象模型中的毛状对象进行划分,得到多个三维毛状对象簇。
28.其中,虚拟对象是指虚拟场景中的事物,虚拟对象包括但不限于是虚拟的人物、动物、家具或建筑物等中的至少一种。目标虚拟对象为待生成的具有毛绒效果的虚拟对象,毛绒效果也可以称为类毛发效果,目标虚拟对象包括但不限于是拟场景中的带有毛绒质地的织物、草地、具有毛发的植物、动物或人物等中的至少一种,带有毛绒质地的织物包括但不限于是地毯或毛绒玩具等中的至少一种。毛状对象即为毛状物,可以理解,毛状对象包括但不限于是织物的绒毛、虚拟角色的头发、虚拟角色的皮毛、植物表皮的毛、草地的草毛等中的至少一种,例如为动物的皮毛,动物的皮毛例如可以为动物的羽毛等。虚拟角色包括但不限于是虚拟人物或虚拟动物等中的至少一种。例如,目标虚拟对象为图3中展示的游戏场景中的具有毛状对象的虚拟动物。
29.虚拟场景,是指计算机通过数字通讯技术勾勒出的数字化场景,虚拟场景包括但不限于是二维虚拟场景或三维虚拟场景中的至少一种。虚拟场景例如可以是游戏中的场景、vr(virtual reality,vr)中的场景或动漫中的场景。
30.三维毛状对象模型是指三维立体的毛状对象模型,三维毛状对象模型中包括多根毛状对象。多根是指至少两根,例如包括10000根毛状对象。毛状对象簇是由毛状对象组成的集合,每个毛状对象簇包括至少一根毛状对象。三维毛状对象簇是指三维立体空间中的毛状对象组成的集合,多个三维毛状对象簇是指至少两个三维毛状对象簇。三维立体空间例如可以是世界空间。三维毛状对象模型可以是预设的,也可以是根据目标虚拟对象生成,例如可以是基于用于反映目标虚拟对象的表面的三维网格模型生成的。其中,三维网格模型(3d mesh)是由一系列基本几何图形组成的多边形网格,用于模拟虚拟对象的表面,如图4所示,展示了图3中的目标虚拟对象的表面。基本几何图形是构成三维网格模型的最小的形状,基本几何图形例如可以为三角形或四边形等中的任意一种,基本几何图形包括多个顶点,例如,三角形包括3个顶点,四边形包括4个顶点。其中,贴图为二维图像。
31.具体地,终端可以获取目标虚拟对象的三维毛状对象模型,通过聚类分析将三维毛状对象模型中的各个毛状对象划分为多个三维毛状对象簇。聚类分析可以采用任意的聚类算法,这里不做具体限定。终端可以通过至少一次的聚类分析将三维毛状对象模型中的各个毛状对象划分为多个三维毛状对象簇,例如可以通过两次的聚类分析得到多个三维毛状对象簇。
32.在一些实施例中,终端可以获取目标虚拟对象的三维网格模型,获取目标虚拟对象的预设毛状对象属性贴图,基于三维网格模型以及预设毛状对象属性贴图生成目标虚拟对象的三维毛状对象模型。
33.其中,贴图为二维图像。预设毛状对象属性贴图是预先生成的贴图,预设毛状对象属性贴图例如为图5所示的贴图。预设毛状对象属性贴图用于控制毛状对象的分布或毛状对象的长度等,预设毛状对象属性贴图的颜色信息可以是采用rgb色彩模式存储,r、g和b为3种颜色通道,通过颜色通道可以存储毛状对象密度系数或毛状对象长度系数等。毛状对象密度系数用于表征(即控制)毛状对象的密度,毛状对象密度系数越大,则表征毛状对象越
稠密,密度越小则表示毛状对象越稀疏(即生成的毛状对象数量越少)。毛状对象长度系数用于表征(即控制)毛状对象的长度,毛状对象长度系数越大,则生成的毛状对象越长,毛状对象长度系数越小,则生成的毛状对象越短。例如,用r通道存储毛状对象密度系数,即用r通道控制毛状对象生成的区域,控制毛状对象生成的密度,值越小则生成的毛状对象数量越少,毛状对象密度越稀疏,用g通道存储毛状对象长度系数,即用g通道控制毛状对象的长短,值越小的地方,生成的毛状对象越短。如图6所示,展示了生成的部分毛状对象,a处的毛状对象密度相比b处较大,a处的毛状对象长度相比b处较长。毛状对象属性贴图中,不同的像素点所存储的毛状对象密度系数可以相同也可以不同,不同的像素点所存储的毛状对象长度系数可以相同也可以不同。使用预设毛状对象属性贴图可精确控制毛状对象的生长范围。
34.在一些实施例中,三维网格模型中包括多个顶点,每个顶点具有纹理坐标,三维网格模型中顶点的纹理坐标是预先设置的。对于三维网格模型中的每个顶点,终端可以根据顶点的纹理坐标,从预设毛状对象属性贴图中确定顶点对应的像素点,得到第一像素点,例如,终端可以确定预设毛状对象属性贴图中每个像素点的纹理坐标,计算每个像素点的纹理坐标与该顶点的纹理坐标之间的距离,将距离最小的像素点确定为第一像素点,或者,终端可以按照距离从小到大的顺序对各个像素点进行排列,得到第一像素点序列,将第一像素点序列中的排列在第一预设位置之前的像素点确定为第一像素点,第一预设位置可以根据需要设置,例如为第一像素点序列中的第3个位置。终端可以基于第一像素点的颜色信息中存储的毛状对象密度系数,确定该顶点对应的毛状对象密度系数,基于第一像素点的颜色信息中存储的毛状对象长度系数确定该顶点对应的毛状对象长度系数,从而得到三维网格模型中各个顶点分别对应的毛状对象密度系数以及毛状对象长度系数,基于各个顶点分别对应的毛状对象密度系数以及毛状对象长度系数生成目标虚拟对象的三维毛状对象模型。其中,像素点的颜色信息包括像素点对应的各个颜色通道所存储的信息。纹理坐标也可以称为uv坐标。u表示纹理坐标中的横坐标,v表示纹理坐标中的纵坐标。
35.在一些实施例中,终端可以获取目标虚拟对象对应的预设颜色贴图,预设颜色贴图是预先生成的贴图,预设颜色贴图例如为图7所示的贴图。预设颜色贴图用于确定目标虚拟对象的表面的颜色,用于确定三维网格模型中各个顶点对应的颜色值。对于三维网格模型中的每个顶点,终端可以根据顶点的纹理坐标,从预设颜色贴图中确定顶点对应的像素点,得到第二像素点,例如,终端可以确定预设颜色贴图中每个像素点的纹理坐标,计算每个像素点的纹理坐标与该顶点的纹理坐标之间的距离,将距离最小的像素点确定为第二像素点,或者,终端可以按照距离从小到大的顺序对各个像素点进行排列,得到第二像素点序列,将第二像素点序列中的排列在第二预设位置之前的像素点确定为第二像素点,第二预设位置可以根据需要设置,例如为第二像素点序列中的第3个位置。终端可以基于第二像素点的颜色信息确定该顶点对应的颜色信息,终端可以将顶点对应的颜色信息确定为在该顶点处生长的毛状对象的颜色信息。终端可以基于预设颜色贴图、预设毛状对象属性贴图以及三维网格模型生成目标虚拟对象的三维毛状对象模型。
36.在一些实施例中,终端在确定了三维网格模型中各个顶点分别对应的毛状对象密度系数、毛状对象长度系数以及颜色信息后,可以基于各个顶点分别对应的毛状对象密度系数、毛状对象长度系数以及颜色信息生成目标虚拟对象的三维毛状对象模型。由于毛状
对象密度系数并不代表具体的毛状对象密度,毛状对象长度系数也不代表具体的毛状对象长度,故为了生成三维毛状对象模型,终端可以获取第一基准毛状对象长度和第一基准毛状对象密度,第一基准毛状对象长度和第一基准毛状对象密度可以根据需要设置,对于每个顶点,终端可以将第一基准毛状对象长度与毛状对象长度系数相乘的结果作为该顶点对应的初始毛状对象长度,将第一基准毛状对象密度和毛状对象密度系数相乘的结果作为该顶点对应的初始毛状对象密度。终端可以基于各个顶点分别对应的初始毛状对象密度、初始毛状对象长度以及颜色信息生成初始毛状对象模型,初始毛状对象模型也是三维的,初始毛状对象模型例如为图8所示的模型。终端可以将初始毛状对象模型确定为目标虚拟对象的三维毛状对象模型,也可以对初始毛状对象模型进行进一步的处理得到目标虚拟对象的三维毛状对象模型,例如可以在初始毛状对象模型的基础上添加卷曲、噪波或修剪长短等效果,将添加效果后的模型确定为目标虚拟对象的三维毛状对象模型。如图9所示,展示了对图8中的初始毛状对象模型添加卷曲、噪波或修剪长短等效果后所得到的三维毛状对象模型。通过调整曲线(即毛状对象)和简单参数设置,即可实现不同类型的毛状对象效果,避免了完全手动的毛状对象制作方式,整个制作的过程完全可视化,可控,自定义程度高。
37.在一些实施例中,终端可以展示第一参数获取页面,第一参数编辑页面用于获取对初始毛状对象模型进行调整所需要的参数。第一参数获取区域如图10所示,第一参数获取页面中可以设置毛状对象的密度以及毛状对象厚度等信息。图10中,重采样长度用于对曲线(毛状对象)进行采样,例如一根曲线初始长度为1,且只有两个端点,当重采样长度为0.1是,则表示从一个端点开始,每隔0.1增加一个新的点,重采样长度的值越小则添加的点越多,则该条曲线的外观也更平滑且能表现更细微的细节。平滑强度用于控制曲线的平滑程度,平滑强度越高,曲线(毛状对象)的外观越平滑,控制点代表的是渐变曲线的控制点,图10中的“处理”包括设置修剪长度、方向、波浪、弯曲、拉直等效果,“混合”一般取值0-1之间 ,簇的轮廓由渐变曲线控制的,曲线的形状控制了一簇毛发的整体大的外观。在一些实施例中,对于三维网格模型中的每个顶点,终端可以获取第二基准毛状对象密度,将第二基准毛状对象密度与该顶点对应的毛状对象长度系数相乘的结果作为该顶点的参考毛状对象密度,终端可以基于各个顶点分别对应的参考毛状对象密度生成参考毛状对象模型,第二基准毛状对象密度小于第一基准毛状对象密度,例如,第二基准毛状对象密度为1000,第一基准毛状对象密度为3000。终端可以基于参考毛状对象模型生成初始毛状对象模型,例如,对于每个顶点,终端可以将第一基准毛状对象密度和毛状对象密度系数相乘的结果作为该顶点对应的初始毛状对象密度,基于各个顶点的初始毛状对象密度,在参考毛状对象模型的基础上新增毛状对象得到初始毛状对象模型。其中,在生成参考毛状对象模型前,可以设置毛状对象的厚度、毛状对象的分段数量或毛状对象的长度等,如图11所示,将毛状对象的厚度设置为0.002,将第二基准毛状对象密度设置为1000,将毛状对象的分段数量设置为8,将毛状对象的长度设置为0.1,设置的毛状对象长度与毛状对象长度系数相乘的结果为参考毛状对象模型中生成的毛状对象的长度,如图12展示了生成的参考毛状对象模型。在参考毛状对象模型中新增毛状对象的过程中,可以基于参考毛状对象模型中已有的毛状对象生成新的毛状对象,新生成的毛状对象的厚度、分段数量、长度、颜色等属性信息可以是基于已生成的毛状对象确定的。从而参考毛状对象模型中的毛状对象还可以称为引导曲线。在生成长发时可以通过生成引导曲线的方式生成长发,在生成短发
时可以直接生成短发。引导曲线的数量、长短、分段数量,可以影响最终生成毛状对象的数量和长短以及每根毛状对象的分段数量。参考毛状对象模型中的毛状对象的数量是小于初始毛状对象模型中的毛状对象的数量的,从而通过生成并显示参考毛状对象模型,可以以少量的毛状对象在视图里显示,便于快速预览毛状对象的造型和长短。也就是说,可以基于生成的参考毛状对象模型生成初始毛状对象模型,再基于初始毛状对象模型生成目标虚拟对象的三维毛状对象模型,如图13所示,图13的(a)中展示了参考毛状对象模型,图13中的(b)展示了基于(a)中的参考毛状对象模型生成的初始毛状对象模型,可以看出(b)中的初始毛状对象模型的毛状对象比(a)中的参考毛状对象模型的毛状对象多。
38.步骤204,为每个三维毛状对象簇生成毛状对象面片组,基于各个毛状对象面片组生成三维毛状对象面片模型。
39.其中,毛状对象面片组中包括至少一个的毛状对象面片,例如可以包括3个毛状对象面片,毛状对象面片组中的各个毛状对象面片可以是具有交叉关系的。毛状对象面片是由至少一个的基本几何图形构成的面片,基本几何图形由多个顶点组成,故毛状对象面片包括多个顶点。三维毛状对象簇与毛状对象面片组一一对应。
40.具体地,对于每个三维毛状对象簇,终端可以确定每个三维毛状对象簇分别对应的毛状对象簇包围盒,确定单位包围盒与每个三维毛状对象簇分别对应的毛状对象簇包围盒之间的仿射变换关系,对于每个三维毛状对象簇,利用对应的仿射变换关系对单位面片组进行仿射变换,生成三维毛状对象簇对应的毛状对象面片组。其中,单位包围盒与毛状对象簇包围盒之间的仿射变换关系,用于改变单位包围盒的形状或位置,以将单位包围盒变换为毛状对象簇包围盒,单位包围盒中包括多个点,通过仿射变换关系可以改变单位包围盒中的各个点的位置,从而将单位包围盒变换为形状与毛状对象簇包围盒相同且位置与毛状对象簇包围盒相同的立体结构。毛状对象簇包围盒是包围毛状对象簇的几何体,每个毛状对象簇具有毛状对象簇包围盒。毛状对象簇包围盒可以是任意几何形状的,例如可以为长方体。单位包围盒例如可以为长、宽和高均为1的立方体。单位面片组中包括至少一个的面片,单位面片组中的每个面片为正方形,每个面片的长度和宽度均为1。单位包围盒例如可以为长、宽和高均为1的立方体。单位包围盒的几何中心的坐标与单位面片组的几何中心的坐标相同,例如均为三维坐标原点(0,0,0)。
41.在一些实施例中,仿射变换关系可以采用仿射变换矩阵m表示,单位包围盒中的每个顶点与毛状对象簇包围盒中的每个顶点具有一一对应关系,可以利用p1_v= p2_v
×
m计算出m,其中,p1_v为毛状对象簇包围盒中的顶点p1的坐标,顶点p2为单位包围盒中与顶点p1对应的顶点,p2_v为顶点p2的坐标,由于p1_v以及p2_v是已知数据,故可以利用p1_v= p2_v
×
m公式求解出未知的m。得到仿射变换矩阵m后,终端可以利用对应的仿射变换矩阵对单位面片组进行仿射变换,生成三维毛状对象簇对应的毛状对象面片组,例如,可以通过公式p3_v= p4_v
×
m,其中,p4_v为单位面片组中的顶点的坐标(即为已知的数据),故利用p3_v= p4_v
×
m可以计算坐标p3_v,坐标p3_v对应的顶点即为毛状对象面片组中的与顶点p4对应的顶点,从而得到构成毛状对象面片组的各个顶点。
42.在一些实施例中,终端生成每个三维毛状对象簇分别对应的毛状对象面片组后,可以将为毛状对象面片组中的每个毛状对象面片中的每个顶点设置纹理坐标,得到每个顶点的目标纹理坐标,终端可以将设置好纹理坐标后的各个毛状对象面片组成的模型确定为
三维毛状对象面片模型。如图14所示,展示了基于图9中的三维毛状对象簇生成的三维毛状对象面片模型的示意图。
43.步骤206,对于三维毛状对象面片模型中的每个毛状对象面片,基于毛状对象面片的面片纹理坐标将对应的三维毛状对象簇变换成毛状对象面片对应的二维毛状对象簇。
44.其中,三维毛状对象面片模型中包括多个毛状对象面片,毛状对象面片包括多个顶点,毛状对象面片的面片纹理坐标包括毛状对象面片上的每个顶点分别对应的纹理坐标。二维毛状对象簇是指排布在纹理空间中的毛状对象组成的集合。
45.纹理空间指的是二维坐标系中第一象限中的 (0,0)与(1,1)之间的矩形区域。毛状对象面片与二维毛状对象簇一一对应,三维毛状对象簇可以对应有多个二维毛状对象簇,例如,若三维毛状对象簇对应的毛状对象面片组包括3个毛状对象面片,则三维毛状对象簇对应的二维毛状对象簇为这3个毛状对象面片分别对应的二维毛状对象簇。
46.具体地,对于每个三维毛状对象簇,终端可以将三维毛状对象簇投影到对应的每个毛状对象面片上,得到三维毛状对象簇在对应的每个毛状对象面片上的投影点,对于每个毛状对象面片,终端可以基于毛状对象面片的面片纹理坐标,确定毛状对象面片上的各个投影点的纹理坐标,按照投影点的纹理坐标对投影点对应的毛状对象点进行排布,生成毛状对象面片对应的二维毛状对象簇,例如可以将三维毛状对象簇中的与投影点对应的毛状对象点的坐标更新为投影点的纹理坐标,将三维毛状对象簇中的更新坐标后的各个毛状对象点按照更新后的坐标进行排布,得到该毛状对象面片对应的二维毛状对象簇。
47.在一些实施例中,对于每个毛状对象面片,终端可以从该毛状对象面片上,确定该毛状对象面片对应的三维毛状对象簇中的每个毛状对象点的邻近点,毛状对象点的邻近点是指毛状对象面片上与毛状对象点最近的点。终端可以基于毛状对象点的邻近点确定毛状对象点在毛状对象面片上的投影点。例如,终端可以将毛状对象点的邻近点确定为毛状对象点在毛状对象面片上的投影点,或者,对于每个毛状对象点,终端可以确定毛状对象面片在毛状对象点对应的邻近点处的法线的方向,基于法线的方向确定毛状对象点在毛状对象面片上的投影点。具体地,若经过该毛状对象点且方向为该法线的正方向或负方向的射线与毛状对象面片相交,则将毛状对象点的邻近点确定为毛状对象点在毛状对象面片上的投影点。
48.步骤208,对各个二维毛状对象簇进行图像渲染生成目标毛状对象贴图,基于三维毛状对象面片模型以及目标毛状对象贴图,生成具有毛绒效果的目标虚拟对象。
49.其中,目标毛状对象贴图可以为一个或多个,多个是指至少两个。目标毛状对象贴图用于存储毛状对象相关信息。其中,毛状对象相关信息包括毛状对象点到毛状对象面片的距离或毛状对象面片的属性信息等中的至少一个。毛状对象点到毛状对象面片的距离,是指毛状对象点在三维毛状对象簇中的位置与毛状对象点在该毛状对象面片上的投影点的位置之间的距离。毛状对象面片的属性信息包括环境光遮蔽信息(ambient occlusion)。
50.具体地,对于各个二维毛状对象簇中的毛状对象点,终端可以获取每个毛状对象点分别对应的毛状对象相关信息,利用颜色通道存储毛状对象点的毛状对象相关信息,在对各个二维毛状对象簇进行图像渲染时,基于颜色通道存储的毛状对象相关信息确定目标毛状对象贴图中的各个像素点分别对应的颜色值,从而生成目标毛状对象贴图。
51.在一些实施例中,终端可以基于三维毛状对象面片模型以及目标毛状对象贴图,
生成具有毛绒效果的目标虚拟对象。具体地,对于三维毛状对象面片模型上的每个顶点,终端可以基于该顶点的目标纹理坐标,从目标毛状对象贴图中确定与该顶点对应的像素点,基于确定出的像素点存储的毛状对象相关信息确定该顶点对应的毛状对象相关信息,基于各个顶点分别对应的毛状对象相关信息在三维毛状对象面片模型上生成毛状对象,将生成毛状对象后的三维毛状对象面片模型与目标虚拟对象的三维网格结构进行组合,生成具有毛绒效果的目标虚拟对象。
52.上述对象生成方法中,对三维毛状对象模型中的毛状对象进行划分,得到多个三维毛状对象簇,为每个三维毛状对象簇生成毛状对象面片组,基于各个毛状对象面片组生成三维毛状对象面片模型,对于三维毛状对象面片模型中的每个毛状对象面片,基于毛状对象面片的面片纹理坐标将对应的三维毛状对象簇变换成毛状对象面片对应的二维毛状对象簇,对各个二维毛状对象簇进行图像渲染生成目标毛状对象贴图,基于三维毛状对象面片模型以及目标毛状对象贴图,生成具有毛绒效果的目标虚拟对象。从而可以基于三维毛状对象面片模型以及目标毛状对象贴图,自动生成具有毛绒效果的目标虚拟对象,提高了生成虚拟对象的效率。
53.在一些实施例中,对三维毛状对象模型中的毛状对象进行划分,得到多个三维毛状对象簇包括:确定待生成的目标虚拟对象的三维毛状对象模型中的各个毛状对象的根部点;对各个根部点进行聚类分析,得到多个目标聚类中心点;对于三维毛状对象模型中的每个毛状对象,从多个目标聚类中心点中确定毛状对象对应的邻近中心点;将邻近中心点相同的各个毛状对象组成三维毛状对象簇,得到多个三维毛状对象簇。
54.其中,每根毛状对象包括多个点,毛状对象上的点可以称为毛状对象点。毛状对象的根部点是指位于毛状对象的根部位置处的毛状对象点。每根毛状对象对应有根部点。目标聚类中心点是通过对三维毛状对象模型中的各个毛状对象的根部点进行聚类分析所得到的类簇的聚类中心点。簇代表一个集合,类簇代表一类集合。类簇的聚类中心点用于确定属于该类簇的毛状对象,例如,对于每个毛状对象,将与该毛状对象最近的目标聚类中心点所代表的类簇确定为该毛状对象所属的类簇,从而得到各个类簇分别包括的毛状对象,由于类簇中的元素为三维立体空间中的毛状对象,故可以将类簇称为三维毛状对象簇。毛状对象对应的邻近点是指各个目标聚类中心点中与该毛状对象最近的目标聚类中心点。
55.具体地,对于三维毛状对象模型中的各个毛状对象,终端可以获取每个毛状对象的根部点,组成根部点集合,对根部点集合中的各个根部点进行聚类分析,得到多个类簇的中心点,将每个类簇的中心点确定为目标聚类中心点。
56.在一些实施例中,对于三维毛状对象模型中的每根毛状对象,终端可以计算该毛状对象分别与每个目标聚类中心点之间的距离,将与该毛状对象距离最近的目标聚类中心点确定为该毛状对象的邻近中心点,将该毛状对象的邻近中心点所代表的类型确定为该毛状对象所属的类簇,从而得到分别以每个目标聚类中心点为邻近中心点的毛状对象,得到每个目标聚类中心点代表的类簇所包括的毛状对象,同一类簇中包括的各个毛状对象组成一个三维毛状对象簇。
57.在一些实施例中,终端可以将邻近中心点相同的各根毛状对象组成的集合确定为三维毛状对象簇,得到多个三维毛状对象簇。目标聚类中心点与三维毛状对象簇一一对应,故三维毛状对象簇的数量与目标聚类中心点的数量相同。如图15所示,图15的(a)中展示了
各个目标聚类中心点,图15的(a)中每个空心圆点代表一个目标聚类中心点,图15的(b)中展示了各个目标聚类中心点分别对应的三维毛状对象簇,例如,目标聚类中心点a对应的三维毛状对象簇为s。
58.本实施例中,确定待生成的目标虚拟对象的三维毛状对象模型中的各个毛状对象的根部点,对各个根部点进行聚类分析,得到多个目标聚类中心点,对于三维毛状对象模型中的每个毛状对象,从多个目标聚类中心点中确定毛状对象对应的邻近中心点,将邻近中心点相同的各个毛状对象组成三维毛状对象簇,得到多个三维毛状对象簇,从而通过聚类的方式将距离较近的毛状对象组成三维毛状对象簇,提高了生成三维毛状对象簇的准确度和效率。
59.在一些实施例中,对各个根部点进行聚类分析,得到多个目标聚类中心点包括:在预设毛状对象面片组数量的基础上增大预设倍数,得到第一聚类类别数量;对各个根部点进行第一聚类分析,得到第一聚类类别数量的第一聚类中心点;对第一聚类类别数量的第一聚类中心点进行第二聚类分析,得到多个目标聚类中心点。
60.其中,预设毛状对象面片组数量是预设的毛状对象面片组的数量。预设毛状对象面片组数量可以根据需要预先设置,例如为100。毛状对象面片组中包括至少一个毛状对象面片。每个毛状对象面片是由基本几何图形组成的面片,毛状对象面片包括多个顶点。毛状对象面片中的顶点与三维毛状对象模型中的顶点代表不同的顶点。
61.第一聚类类别数量是指为第一聚类分析设置的分类类别的数量,一种分类类别代表一种类簇,即通过第一聚类分析可以确定出第一聚类类别数量的类簇。第一聚类类别数量小于三维毛状对象模型的毛状对象总数量,毛状对象总数量是指三维毛状对象模型中包括的毛状对象的数量。第一聚类中心点为通过第一聚类分析所确定出的聚类中心点,每个第一聚类中心点代表一个类簇。第一聚类中心点也可以称为代理点。第二聚类分析的分类类别的数量为预设毛状对象面片组数量,即通过第二聚类分析可以确定出预设毛状对象面片组数量的类簇,即确定出预设毛状对象面片组数量的目标聚类中心点。预设倍数可以根据需要设置,例如为5。
62.具体地,终端可以在预设毛状对象面片组数量的基础上增大预设倍数得到第一聚类类别数量。例如,终端可以将预设毛状对象面片组数量与预设倍数相乘,将相乘所得到的结果确定为第一聚类类别数量。
63.在一些实施例中,终端可以将预设毛状对象面片组数量与预设倍数相乘,将相乘所得到的结果与毛状对象总数量进行对比,在相乘所得到的结果小于毛状对象总数量的情况下,将相乘所得到的结果确定为第一聚类类别数量。例如,终端可以利用公式min(预设倍数 * 预设毛状对象面片组数量 / 毛状对象总数量,1) * 毛状对象总数量= 第一聚类类别数量,其中,min(a,b)函数用于从a和b中选取较小的一个。例如,若预设倍数为5,预设毛状对象面片组数量为100,毛状对象总数量为10000,则第一聚类类别数量=min(5 * 100 / 10000,1) * 10000=500。
64.在一些实施例中,得到各个第一聚类中心点后,终端可以基于预设毛状对象面片组数量确定第二聚类类别数量,第二聚类类别数量是指为第二聚类分析设置的分类类别的数量。例如,终端可以将预设毛状对象面片组数量确定为第二聚类类别数量,或者,将预设毛状对象面片组数量与预设系数的乘积作为第二聚类类别数量,其中,预设系数可以根据
需要设置,例如为1.2或0.9等。终端可以对第一聚类类别数量的第一聚类中心点进行第二聚类分析,得到第二聚类类别数量的目标聚类中心点。如图16所示,图16的(a)中展示了三维毛状对象模型中的各个毛状对象,并且用实心圆点突出表示了毛状对象的根部点。图16的(b)中展示了各个第一聚类中心点,图16的(b)中的每个实心圆点代表一个第一聚类中心点,图16的(c)中展示了各个目标聚类中心点,图16的(c)中的每个空心圆点代表一个目标聚类中心点,可以看出图16的(c)中的点明显少于图16的(b)中的点。
65.本实施例中,在预设毛状对象面片组数量的基础上增大预设倍数,得到第一聚类类别数量,对各个根部点进行第一聚类分析,得到第一聚类类别数量的第一聚类中心点,对第一聚类类别数量的第一聚类中心点进行第二聚类分析,得到多个目标聚类中心点,通过两次聚类得到多个目标聚类中心点,加快了聚类速度,提高了得到目标聚类中心点的效率。
66.在一些实施例中,从多个目标聚类中心点中确定毛状对象对应的邻近中心点包括:确定毛状对象的毛状对象包围盒;获取毛状对象的毛状对象包围盒的中心位置,将各个目标聚类中心点中与中心位置最近的目标聚类中心点,确定为毛状对象对应的邻近中心点。
67.其中,毛状对象的毛状对象包围盒是包围毛状对象的几何体,毛状对象包围盒可以是任意形状的,包括但不限于是立方体、长方体或球体等中的任意一种。毛状对象包围盒的中心位置是指毛状对象包围盒的几何中心点,例如若毛状对象包围盒为长方体,则毛状对象包围盒的中心位置为长方体的中心位置。
68.具体地,对于每根毛状对象,终端可以计算每个目标聚类中心点的位置与该毛状对象的毛状对象包围盒的中心位置之间的距离,将距离最小的目标聚类中心点确定为该毛状对象对应的邻近中心点。
69.本实施例中,确定毛状对象的毛状对象包围盒,获取毛状对象的毛状对象包围盒的中心位置,将各个目标聚类中心点中与中心位置最近的目标聚类中心点,确定为毛状对象对应的邻近中心点,从而基于毛状对象包围盒的中心位置确定毛状对象对应的邻近中心点,提高了确定出的邻近中心点的精准度。
70.在一些实施例中,为每个三维毛状对象簇生成毛状对象面片组包括:确定每个三维毛状对象簇分别对应的毛状对象簇包围盒;确定单位包围盒与每个三维毛状对象簇分别对应的毛状对象簇包围盒之间的仿射变换关系;对于每个三维毛状对象簇,利用对应的仿射变换关系对单位面片组进行仿射变换,生成三维毛状对象簇对应的毛状对象面片组。
71.其中,毛状对象簇包围盒是包围毛状对象簇的几何体,每个毛状对象簇具有毛状对象簇包围盒。毛状对象簇包围盒可以是任意几何形状的,例如可以为长方体。如图17所示,图17的(a)中展示了毛状对象簇以及毛状对象簇的长方体的毛状对象簇包围盒。单位包围盒例如可以为长、宽和高均为1的立方体。单位面片组中包括至少一个的面片,单位面片组中的每个面片为正方形,每个面片的长度和宽度均为1。当单位面片组中包括一个以上的面片时,单位面片组中的各个面片呈十字交叉结构,例如,单位面片组中包括3个面片,这3个面片呈十字交叉结构,单位面片组如图17中的(b)所示。单位包围盒的几何中心的坐标与单位面片组的几何中心的坐标相同,例如均为三维坐标原点(0,0,0)。
72.单位包围盒与毛状对象簇包围盒之间的仿射变换关系,用于改变单位包围盒的形状或位置,以将单位包围盒变换为毛状对象簇包围盒,单位包围盒中包括多个点,通过仿射
变换关系可以改变单位包围盒中的各个点的位置,从而将单位包围盒变换为形状与毛状对象簇包围盒相同且位置与毛状对象簇包围盒相同的立体结构。
73.具体地,对于每个三维毛状对象簇,终端可以获取单位包围盒与该三维毛状对象簇对应的毛状对象簇包围盒之间的仿射变换关系,利用获取的仿射变换关系对单位面片组的位置或形状进行变换,将变换后所得到的几何结果确定为该三维毛状对象簇对应的毛状对象面片组。
74.在一些实施例中,单位面片组中包括3个面片,终端可以利用仿射变换关系分别对单位面片组中的每个面片的位置或形状进行变换,将变换后的3个面片组成三维毛状对象簇对应的毛状对象面片组。如图17所示,将图17的(b)中的单位面片组进行变换,得到图17的(c)中的与三维毛状对象簇相交且位于三维毛状对象簇的毛状对象簇包围盒中的毛状对象面片组。
75.在一些实施例中,在三维毛状对象簇的毛状对象长度相对于整体毛状对象的长度较长的情况下,可以对三维毛状对象簇的毛状对象面片组中的毛状对象面片进行细分。整体毛状对象的长度可以是三维毛状对象模型中最长的毛状对象的长度或毛状对象的平均长度中的任意一种。细分是指在毛状对象面片中插入新的顶点,从而增加毛状对象面片中包括的顶点的数量。三维毛状对象簇的毛状对象长度相对于整体毛状对象的长度越长,则细分的技术越高,即增加的顶点的数量越多,反之,细分较少或者不增加细分,即增加较少的顶点或不增加顶点。每个毛状对象面片可以是一个平面,故可以对毛状对象编码添加噪波,以打破横平竖直的结构,即将毛状对象面片从平面调整为曲面,从而可以减少生成的毛状对象效果呈现直线状的伪影。如图18所示,图18中的(b)是对18中的(a)中的毛状对象面片进行细分后的结果,以面片1为例,图18的(b)中面片1中的方格的数量增加了,表明面片1中顶点的数量增加了,即增加了细分,图18的(c)是对图18的(b)中的毛状对象面片添加噪波后的结果,可以看出毛状对象面片从平面变成了曲线,以面片1为例,图18的(b)中面片1为平面,图18的(c)中面片1为曲面。
76.本实施例中,确定每个三维毛状对象簇分别对应的毛状对象簇包围盒,确定单位包围盒与每个三维毛状对象簇分别对应的毛状对象簇包围盒之间的仿射变换关系,对于每个三维毛状对象簇,利用对应的仿射变换关系对单位面片组进行仿射变换,生成三维毛状对象簇对应的毛状对象面片组,从而准确且快速的生成了毛状对象面片组。
77.在一些实施例中,基于毛状对象面片的面片纹理坐标将对应的三维毛状对象簇变换成毛状对象面片对应的二维毛状对象簇包括:确定毛状对象面片对应的三维毛状对象簇在毛状对象面片上的各个投影点;每个投影点对应三维毛状对象簇中的一个毛状对象点;基于毛状对象面片的面片纹理坐标,确定毛状对象面片上的各个投影点的纹理坐标; 按照投影点的纹理坐标对投影点对应的毛状对象点进行排布,生成毛状对象面片对应的二维毛状对象簇。
78.其中,毛状对象面片对应的三维毛状对象簇,是指毛状对象面片所属的毛状对象面片组对应的三维毛状对象簇。三维毛状对象簇在毛状对象面片上的投影点可以为至少一个。毛状对象面片上的投影点对应三维毛状对象簇中的一个毛状对象点。三维毛状对象簇中的各个毛状对象点不一定均存在投影点,即有的毛状对象点存在投影点有的毛状对象点不存在投影点。当然,三维毛状对象簇中的各个毛状对象点也可能均存在投影点。二维毛状
对象簇中仅包括三维毛状对象簇中具有投影点的毛状对象点。毛状对象面片的面片纹理坐标,包括毛状对象面片中每个顶点分别对应的纹理坐标。
79.具体地,针对毛状对象面片对应的三维毛状对象簇,终端可以从该毛状对象面片中确定该三维毛状对象簇中的每个毛状对象点分别对应的邻近点,毛状对象点对应的邻近点是指该毛状对象面片上与该毛状对象点最近的点,邻近点可能为毛状对象面片上的顶点,也可能不是毛状对象面片的顶点。终端可以基于毛状对象点对应的邻近点,确定毛状对象点对应的投影点,从而得到毛状对象面片对应的三维毛状对象簇在该毛状对象面片上的各个投影点。
80.在一些实施例中,对于毛状对象面片上的每个投影点,终端可以确定该投影点所属的基本几何图形,基于投影点所属的基本几何图形的顶点的纹理坐标,插值得到该投影点的纹理坐标。
81.在一些实施例中,对于每个毛状对象面片,将对应的三维毛状对象簇中的在该毛状对象面片上具有投影点的各个毛状对象点,按照投影点的纹理坐标进行排布,生成该毛状对象面片对应的二维毛状对象簇。例如,可以将具有投影点的毛状对象点的位置坐标更新为投影点的纹理坐标,按照更新后的位置坐标排布毛状对象点,生成毛状对象面片对应的二维毛状对象簇。如图19所示,图19的(a)中展示了三维毛状对象簇以及三维毛状对象簇对应的3个毛状对象面片,图19的(b)中展示了三维毛状对象簇在其中一个毛状对象面片所对应的二维毛状对象簇,19的(b)中的网格代表毛状对象面片,网格上的各个曲线代表二维毛状对象簇。如图20所示,图20的(a)、图20的(b)和图20的(c)中展示了三维毛状对象簇在3个毛状对象面片中的每个毛状对象面片所对应的二维毛状对象簇,图20的(a)、图20的(b)和图20的(c)中,方格组成的面片代表毛状对象面片,曲线部分指的是二维毛状对象簇。
82.本实施例中,确定毛状对象面片对应的三维毛状对象簇在毛状对象面片上的各个投影点,每个投影点对应三维毛状对象簇中的一个毛状对象点,基于毛状对象面片的面片纹理坐标,确定毛状对象面片上的各个投影点的纹理坐标,按照投影点的纹理坐标对投影点对应的毛状对象点进行排布,生成毛状对象面片对应的二维毛状对象簇,从而基于三维毛状对象簇在毛状对象面片上的各个投影点快速且准确的生成了二维毛状对象簇。
83.在一些实施例中,确定毛状对象面片对应的三维毛状对象簇在毛状对象面片上的各个投影点包括:从毛状对象面片上确定对应的三维毛状对象簇中的各个毛状对象点分别对应的邻近点;从毛状对象面片上确定每个邻近点分别所属的基本几何图形;对于每个毛状对象点,基于对应的邻近点所属的基本几何图形在邻近点处的法线,确定毛状对象点的投影方向;在毛状对象点的投影方向上的射线与毛状对象面片相交的情况下,将毛状对象点对应的邻近点确定为毛状对象点在毛状对象面片上的投影点。
84.其中,毛状对象面片上的毛状对象点对应的邻近点是指毛状对象面片上与毛状对象点最近的点。基本几何图形为构成毛状对象面片的最小的图形,例如可以为三角形或四边形等。
85.基本几何图形在邻近点处的法线方向,是指在邻近点处垂直于基本几何图形所构成的面的方向。毛状对象点的投影方向可以包括法线的正方向或法线的负方向中的至少一个。
86.具体地,终端可以基于邻近点在毛状对象面片上的位置,确定邻近点所属的基本
几何图形,终端可以将包括邻近点在毛状对象面片上的位置的基本几何图形,确定为邻近点所属的基本几何图形。
87.在一些实施例中,对于每个毛状对象点,若方向为该毛状对象点的投影方向且经过该毛状对象点的射线与毛状对象面片相交,则确定交点为该毛状对象点对应的邻近点,确定毛状对象点存在投影点,并将毛状对象点对应的邻近点确定为毛状对象点在毛状对象面片上的投影点。其中,毛状对象点的投影方向可以包括毛状对象点对应的邻近点所属的基本几何图形在邻近点处的法线的正方向以及负方向。
88.在一些实施例中,对于每个毛状对象点,若方向为该毛状对象点的投影方向且经过该毛状对象点的射线与毛状对象面片不相交,则确定毛状对象点在该毛状对象面片上不存在投影点。其中,毛状对象点的投影方向可以包括毛状对象点对应的邻近点所属的基本几何图形在邻近点处的法线的正方向以及负方向。
89.本实施例中,从毛状对象面片上确定对应的三维毛状对象簇中的各个毛状对象点分别对应的邻近点,从毛状对象面片上确定每个邻近点分别所属的基本几何图形,对于每个毛状对象点,基于对应的邻近点所属的基本几何图形在邻近点处的法线,确定毛状对象点的投影方向,在毛状对象点的投影方向上的射线与毛状对象面片相交的情况下,将毛状对象点对应的邻近点确定为毛状对象点在毛状对象面片上的投影点,也就是说,对于每个毛状对象面片,在毛状对象点的投影方向上的射线与该毛状对象面片不相交的情况下,则确定该毛状对象点在该毛状对象面片上不存在投影点(例如该毛状对象点与该毛状对象面片的距离较远从而导致在该毛状对象面片上不存在投影点),从而可以将不存在投影点的毛状对象点剔除(即二维毛状对象簇中不包括不存在投影点的毛状对象点),从而避免发生由于将不存在投影点的毛状对象点存储到二维毛状对象簇中而导致极限拉伸的情况,提升了生成的二维毛状对象簇的真实性。
90.在一些实施例中,基于毛状对象面片的面片纹理坐标,确定毛状对象面片上的各个投影点的纹理坐标包括:从毛状对象面片上确定每个投影点相对于所属的基本几何图形的相对纹理坐标;对于每个投影点,基于所属的基本几何图形的纹理坐标以及对应的相对纹理坐标,确定投影点的纹理坐标。
91.其中,基本几何图形的纹理坐标包括基本几何图形中的各个顶点分别对应的纹理坐标。投影点相对于所属的基本几何图形的相对纹理坐标,用于反映投影点在所属的基本几何图形中的位置。
92.具体地,对于毛状对象面片上的投影点,终端可以计算投影点所属的基本几何图形在x坐标轴上的最大值与最小值之间的差值,得到第一差值,计算投影点所属的基本几何图形在y坐标轴上的最大值与最小值之间的差值,得到第二差值,计算投影点所属的基本几何图形在z坐标轴上的最大值与最小值之间的差值,得到第三差值。终端可以获取投影点在三维立体空间中的坐标,将投影点在x坐标轴上的坐标值与第一差值进行比值计算,得到第一相对值,将投影点在y坐标轴上的坐标值与第二差值进行比值计算,得到第二相对值,将投影点在z坐标轴上的坐标值与第三差值进行比值计算,得到第三相对值,以纹理坐标为xy坐标为例,则可以将坐标(第一相对值,第二相对值)确定为相对投影点相对于所属的基本几何图形的相对纹理坐标,(第一相对值,第二相对值)中,第一相对值为x轴上的坐标值,第二相对值为y轴上的坐标值。
93.在一些实施例中,对于每个投影点,终端可以获取投影点所属的基本几何图形的纹理坐标以及该投影点对应的相对纹理坐标,确定该投影点的纹理坐标,具体地,以纹理坐标为xy坐标为例,终端可以获取投影点所属的基本几何图形对应纹理坐标在x坐标轴上的最大值以及最小值,计算该最大值与最小值之间的差值,得到第一坐标差值,同样的,终端可以获取投影点所属的基本几何图形对应的纹理坐标在y坐标轴上的最大值以及最小值,计算该最大值与最小值之间的差值,得到第二坐标差值,将第一相对值与第一坐标差值相乘,并将相乘的结果与基本几何图形对应纹理坐标在x坐标轴上的最小值进行求和计算,将求和计算的结果确定为该投影点的纹理坐标中的x轴的坐标值,同样的,将第二相对值与第二坐标差值相乘,并将相乘的结果与基本几何图形对应纹理坐标在y坐标轴上的最小值进行求和计算,将求和计算的结果确定为该投影点的纹理坐标中的y轴的坐标值,从而得到投影点的纹理坐标。
94.本实施例中,从毛状对象面片上确定每个投影点相对于所属的基本几何图形的相对纹理坐标,对于每个投影点,基于所属的基本几何图形的纹理坐标以及对应的相对纹理坐标,确定投影点的纹理坐标。从而基于相对纹理坐标准确且快速的确定出了投影点的纹理坐标。
95.在一些实施例中,对各个二维毛状对象簇进行图像渲染生成目标毛状对象贴图包括:对于三维毛状对象面片模型中的每个毛状对象面片,基于毛状对象面片上的投影点确定投影点对应的毛状对象点的相对位置信息;获取对应的二维毛状对象簇中的毛状对象点的相对位置信息;毛状对象点的相对位置信息,用于表征毛状对象点与毛状对象面片之间的相对关系;基于各个二维毛状对象簇中的毛状对象点的相对位置信息,对各个二维毛状对象簇进行图像渲染,生成三维毛状对象面片模型对应的目标毛状对象贴图。
96.其中,毛状对象点的相对位置信息,用于表征毛状对象点与该毛状对象点的投影点所属的毛状对象面片之间的相对关系。相对位置信息包括但不限于是毛状对象点与毛状对象面片之间的相对位置关系、毛状对象点与毛状对象面片之间的距离等中的至少一个。毛状对象点与毛状对象面片之间的相对位置关系包括毛状对象点位于毛状对象面片的正面、毛状对象点位于毛状对象面片的反面。毛状对象点与毛状对象面片之间的距离,为毛状对象点与毛状对象点在毛状对象面片上的投影点之间的距离。
97.具体地,对于二维毛状对象簇中的各个毛状对象点,终端可以基于各个毛状对象点对应的相对位置信息,对各个二维毛状对象簇进行图像渲染,生成目标毛状对象贴图。目标毛状对象贴图可以为至少一个,例如可以分别为距离贴图和方向贴图。距离贴图中用于存储毛状对象点到毛状对象面片的距离,方向贴图用于存储毛状对象点与毛状对象面片的相对位置关系。毛状对象面片的属性信息包括毛状对象面片的环境光遮蔽信息(ambient occlusion,occ)。
98.在一些实施例中,对于各个二维毛状对象簇中的毛状对象点,终端可以获取每个毛状对象点与毛状对象面片之间的相对位置关系,对于每个毛状对象点,利用颜色通道存储毛状对象点与毛状对象面片之间的相对位置关系,在对各个二维毛状对象簇进行图像渲染时,按照颜色通道存储的毛状对象点与毛状对象面片之间的相对位置关系进行渲染,得到方向贴图。同样的,对于各个二维毛状对象簇中的毛状对象点,终端可以获取每个毛状对象点与毛状对象面片之间的距离,对于每个毛状对象点,利用颜色通道存储毛状对象点与
毛状对象面片之间的距离,在对各个二维毛状对象簇进行图像渲染时,按照颜色通道存储的毛状对象点与毛状对象面片之间的距离进行渲染,得到距离贴图。
99.在一些实施例中,目标毛状对象贴图还可以为面片属性贴图。面片属性贴图用于存储毛状对象面片的属性信息。对于各个二维毛状对象簇中的毛状对象点,终端可以获取每个毛状对象面片的属性信息,对于每个毛状对象点,利用颜色通道存储毛状对象点投影到的毛状对象面片的属性信息,在对各个二维毛状对象簇进行图像渲染时,按照颜色通道存储的毛状对象面片的属性信息进行渲染,得到面片属性贴图。其中,终端可以在正交相机视角下使用渲染器渲染输出各个贴图。其中,正交相机视角下,无论物体距离相机远或者近,在渲染出的图片中物体的大小保持不变。如图21所示,展示了距离贴图,展示了对虚线框中的区域进行放大后的图,如图22所示,展示了面片属性贴图,如图23所示,展示了方向贴图。
100.在一些实施例中,终端可以提供用于设置贴图的分辨率、名称、存储路径等的页面,如图24所示的页面中,将贴图的分辨率设置为8192
×
8192,名称设置为“$os”,存储路径设置为$temp/

chs(

asset_name’)。
101.在一些实施例中,终端可以根据毛状对象点对应的投影点的位置以及毛状对象面片在投影点处的法线,确定毛状对象点位于毛状对象面片的正面,还是位于毛状对象面片的反面。毛状对象面片在投影点出的法线,是指毛状对象面片中包括该投影点的基本几何图形在该投影点处的法线。例如,对于每个毛状对象点,终端可以确定以该毛状对象点的位置为终点位置、以该毛状对象点对应的投影点的位置为起点位置的第一向量,计算第一向量与毛状对象面片在该毛状对象点对应的投影点处的法线的正方向之间的夹角的余弦值,若夹角的余弦值大于0,则确定毛状对象点位于毛状对象面片的正面,若夹角的余弦值小于0,则确定毛状对象点位于毛状对象面片的反面。其中,毛状对象点的位置是指在三维立体空间中的位置,即三维毛状对象簇中该毛状对象点的位置,并不是指按照投影点排布后的毛状对象点的位置。
102.本实施例中,对于三维毛状对象面片模型中的每个毛状对象面片,基于毛状对象面片上的投影点确定投影点对应的毛状对象点的相对位置信息,基于各个二维毛状对象簇中的毛状对象点的相对位置信息,对各个二维毛状对象簇进行图像渲染,生成三维毛状对象面片模型对应的相对位置贴图。从而在生成具有毛绒效果的目标虚拟对象时,可以基于目标毛状对象贴图确定毛状对象点与毛状对象面片之间的相对关系,从而准确的确定毛状对象点的空间位置,提高生成的毛状对象的真实度。
103.在一些实施例中,基于各个毛状对象面片组生成三维毛状对象面片模型包括:统计各个毛状对象面片组包括的毛状对象面片的数量,得到总面片数量;基于总面片数量以及每个毛状对象面片的面片序号,确定每个毛状对象面片分别对应的纹理坐标变换系数;利用毛状对象面片对应的纹理坐标变换系数,对毛状对象面片中的每个顶点的初始纹理坐标进行缩小平移处理,得到毛状对象面片中每个顶点的目标纹理坐标;利用每个顶点的目标纹理坐标替换对应的初始纹理坐标,将替换纹理坐标后的各个毛状对象面片组成的模型确定为三维毛状对象面片模型。
104.其中,总面片数量是指各个毛状对象面片组包括的毛状对象面片的数量。每个毛状对象面片具有面片序号,毛状对象面片与面片序号一一对应,面片序号为连续的序号,例
如,总面片数量为100,则这100个毛状对象面片的面片序号为0-99。毛状对象面片中的每个顶点可以具有初始纹理坐标,对于每个毛状对象面片,毛状对象面片中的各个顶点的初始纹理坐标可以是分布在整个二维坐标系的第一象限内的,故各个毛状对象面片所占用的纹理空间的区域是重叠的。为了让不同的毛状对象面片在纹理空间中占用的区域各不相同,可以对各个毛状对象面片的顶点的初始纹理坐标进行变换,从而使得不同的毛状对象面片在纹理空间中占用不同的区域,从而将各个毛状对象面片的纹理坐标排布到二维坐标系的第一象限内。
105.纹理坐标变换系数用于对毛状对象面片的顶点的初始纹理坐标进行变换,得到顶点的目标纹理坐标。每个毛状对象面片具有纹理坐标变换系数,纹理坐标变换系数可以包括缩小系数以及平移系数,若纹理坐标为xy坐标,则平移系数包括水平方向(x坐标轴)的平移系数以及竖直方向(y坐标轴)的平移系数。
106.具体地,终端可以基于总面片数量从纹理空间中划分出多个纹理区域,基于毛状对象面片的面片序号,从各个纹理区域中确定与每个毛状对象面片分别对应的纹理区域,基于毛状对象面片对应的纹理区域在纹理空间中的位置以及纹理区域的尺寸,确定毛状对象面片对应的纹理坐标变换系数,利用毛状对象面片对应的纹理坐标变换系数,对毛状对象面片中的每个顶点的初始纹理坐标进行缩小平移处理,得到毛状对象面片中每个顶点的目标纹理坐标,利用每个顶点的目标纹理坐标替换对应的初始纹理坐标,将替换纹理坐标后的各个毛状对象面片组成的模型确定为三维毛状对象面片模型。其中,纹理区域为纹理空间中的一块区域。各个纹理区域之间不存在重叠,纹理区域之间可以存在间隔也可以不存在间隔。纹理区域的数量大于或等于总面片数量。
107.如图25所示,展示了为图14中的三维毛状对象面片模型中的各个毛状对象面片生成的纹理坐标在第一象限(即纹理空间)中的位置,图25中,每个小方格代表一个毛状对象面片的纹理坐标在第一象限中所占的区域,即每个小方格代表一个纹理区域,例如图25中的小方格d代表一个毛状对象面片的纹理坐标在第一象限中所占的区域。图25中的(0,0)、(0,1)、(1,0)以及(1,1)代表第一象限中的坐标,可以看出,纹理坐标是在(0,0)与(1,1)之间的。
108.在一些实施例中,终端可以计算总面片数量的平方根,获取大于该平方根的最小的整数,将大于该平方根的最小的整数确定为目标数量,按照目标数量对纹理空间进行划分,得到多个纹理区域,其中,纹理区域按照矩阵的形式排列,目标数量的纹理区域排列为一行,目标数量的纹理区域排列为一列,排列成行数为目标数量且列数为目标数量的矩阵形式。从而划分出的纹理区域的数量等于目标数量的平方。纹理区域为正方形的区域,即纹理区域的长度和宽度是相同的。
109.在一些实施例中,每个纹理区域之间具有间隔,以纹理坐标为xy坐标为例,纹理区域在x坐标轴方向上或y坐标轴方向上可以是具有间隔的。该间隔可以称为区域间隔,区域间隔可以根据需要设置,例如可以为0.002。x坐标轴方向上的区域间隔与y坐标轴方向上的区域间隔可以相同也可以不同。
110.在一些实施例中,x坐标轴方向上的区域间隔与y坐标轴方向上的区域间隔相同。终端可以基于区域间隔以及目标数量确定每个纹理区域的尺寸,例如,纹理区域的长度或宽度=(1-区域间隔*目标数量)/目标数量。
111.在一些实施例中,纹理坐标为xy坐标,纹理坐标变换系数包括缩小系数以及平移系数,则平移系数包括水平平移系数以及竖直平移系数。水平平移系数用于对水平方向(x坐标轴)的坐标值进行平移,竖直平移系数用于对竖直方向(y坐标轴)的坐标值进行平移。对于毛状对象面片中的每个顶点,终端可以利用该毛状对象面片对应的缩小系数,对顶点的初始纹理坐标中的每个坐标值进行缩小处理,缩小处理例如可以是将初始纹理坐标中的每个坐标值分别与缩小系数进行相乘,得到顶点对应的缩小后的纹理坐标,利用水平平移系数,对缩小后的纹理坐标中的水平方向的坐标值进行平移处理,平移处理例如可以是在缩小后的纹理坐标中的水平方向的坐标值的基础上增加水平平移系数,并利用竖直平移系数,对缩小后的纹理坐标中的竖直方向的坐标值进行平移处理,平移处理例如可以是在缩小后的纹理坐标中的竖直方向的坐标值的基础上增加竖直平移系数,将平移处理后所得到的纹理坐标,确定为顶点的目标纹理坐标。或者,利用水平平移系数以及竖直平移系数平移后,终端还可以利用指定平移系数对平移处理后所得到的纹理坐标中的各个坐标值进行平移,得到顶点的目标纹理坐标。其中,指定平移系数可以根据区域间隔确定,例如,指定平移系数为区域间隔的二分之一。
112.本实施例中,统计各个毛状对象面片组包括的毛状对象面片的数量,得到总面片数量,基于总面片数量以及每个毛状对象面片的面片序号,确定每个毛状对象面片分别对应的纹理坐标变换系数,利用毛状对象面片对应的纹理坐标变换系数,对毛状对象面片中的每个顶点的初始纹理坐标进行缩小平移处理,得到毛状对象面片中每个顶点的目标纹理坐标,利用每个顶点的目标纹理坐标替换对应的初始纹理坐标,将替换纹理坐标后的各个毛状对象面片组成的模型确定为三维毛状对象面片模型,从而使得生成的三维毛状对象面片模型中的各个顶点的纹理坐标均不同即不重叠,以便于基于三维毛状对象面片模型中的顶点的纹理坐标将三维毛状对象簇变换成毛状对象面片对应的二维毛状对象簇,并对各个二维毛状对象簇进行图像渲染生成目标毛状对象贴图。
113.在一些实施例中,基于总面片数量以及每个毛状对象面片的面片序号,确定每个毛状对象面片分别对应的纹理坐标变换系数包括:基于总面片数量从纹理空间中划分出多个纹理区域;基于毛状对象面片的面片序号,从各个纹理区域中确定与每个毛状对象面片分别对应的纹理区域;基于毛状对象面片对应的纹理区域在纹理空间中的位置以及纹理区域的尺寸,确定毛状对象面片对应的纹理坐标变换系数。
114.其中,纹理区域在纹理空间中的位置可以通过纹理区域的行号和列号进行标识。纹理区域的行号是指纹理区域在各个纹理区域排列成的矩阵中的行号,纹理区域的列号是指纹理区域在各个纹理区域排列成的矩阵中的列号。
115.具体地,对于每个毛状对象面片,终端可以计算毛状对象面片的面片序号与目标数量的比值,若比值为正数,将该比值确定为目标列号,若比值为非正数,则将比值的整数部分的数值确定为目标列号。终端可以计算毛状对象面片的面片序号被目标数量除所得到的余数,将该余数确定为目标行号,将各个纹理区域排布成的矩阵中确定行号为目标行号、列号为目标列号的纹理区域,确定为毛状对象面片对应的纹理区域。
116.在一些实施例中,纹理坐标为xy坐标,纹理坐标变换系数可以包括缩小系数以及平移系数,则平移系数包括水平平移系数以及竖直平移系数。对于每个毛状对象面片,终端可以基于区域间隔、纹理区域的长度以及该毛状对象面片对应的纹理区域的行号,确定水
asset,houdini数字资产)导入其他软件中使用,hda可以将houdini节点网络打包成可重复使用的数字资产。数字资产可以理解为利用图形软件生成的图形结构,例如本技术中生成的目标毛状对象贴图。本技术中的毛状对象贴图生成工具可以运行于unreal引擎即虚幻引擎,unreal引擎是一款游戏引擎。本技术中的毛状对象贴图生成工具还可以运行于unity 3d等dcc(digital content creation,数字内容创作)制作软件中。本发明提供了一种便于艺术化修改和自动化生成的方案(pcg技术方案),并参照真实毛状对象和羽毛的结构和造型,经过pcg工具的运算,快速生成真实毛状对象的效果并提供相对应的资产在引擎中还原效果,相比于传统手动的方式,本方案提高了毛状对象资产的制作效率和美术效果,可制作不同类型的类毛状对象效果,例如织物的绒毛以及草地等效果。
122.本实施例中,获取目标虚拟对象的三维网格模型以及预设毛状对象属性贴图,基于三维网格模型以及预设毛状对象属性贴图,生成目标虚拟对象的三维毛状对象模型,从而自动生成了三维毛状对象模型,提高了生成三维毛状对象模型的效率。
123.本技术还提供一种图像渲染方法,该方法可以由终端或服务器执行,还可以由终端和服务器共同执行,以该方法应用于终端为例进行说明,具体地,如图26所示,该对象生成方法包括:步骤2602,将待生成的目标虚拟对象的三维网格模型、预设毛状对象属性贴图以及预设颜色贴图输入到毛状对象生成器中,生成初始毛状对象模型,对初始毛状对象模型进行修改生成三维毛状对象模型。
124.其中,毛状对象生成器用于生成初始毛状对象模型如图27所示,将皮肤表面(即三维网格模型)、预设毛状对象属性贴图以及预设颜色贴图输入到毛状对象生成器中,通过参数设置对毛状对象生成器输出的初始毛状对象进行修改生成三维毛状对象模型。
125.步骤2604,对三维毛状对象模型中的各个毛状对象的根部点进行聚类分析,得到多个目标聚类中心点。
126.步骤2606,对于三维毛状对象模型中的每个毛状对象,从多个目标聚类中心点中确定毛状对象对应的邻近中心点,将邻近中心点相同的各个毛状对象组成三维毛状对象簇,得到多个三维毛状对象簇。
127.步骤2608,确定每个三维毛状对象簇分别对应的毛状对象簇包围盒,确定单位包围盒与每个三维毛状对象簇分别对应的毛状对象簇包围盒之间的仿射变换关系,对于每个三维毛状对象簇,利用对应的仿射变换关系对单位面片组进行仿射变换,生成三维毛状对象簇对应的毛状对象面片组。
128.步骤2610,基于各个毛状对象面片组生成三维毛状对象面片模型。
129.步骤2612,对于三维毛状对象面片模型中的每个毛状对象面片,确定毛状对象面片对应的三维毛状对象簇在毛状对象面片上的各个投影点。
130.步骤2614,基于毛状对象面片的面片纹理坐标,确定毛状对象面片上的各个投影点的纹理坐标。
131.步骤2616,按照投影点的纹理坐标对投影点对应的毛状对象点进行排布,生成毛状对象面片对应的二维毛状对象簇。
132.步骤2618,对各个二维毛状对象簇进行图像渲染生成目标毛状对象贴图。
133.如图27所示,终端可以烘焙出目标毛状对象贴图。
134.步骤2620,基于三维毛状对象面片模型以及目标毛状对象贴图,生成具有毛绒效果的目标虚拟对象,或者基于三维毛状对象模型生成具有毛绒效果的目标虚拟对象。
135.如图27所示,终端输出了三维毛状对象面片模型、目标毛状对象贴图以及三维毛状对象模型,从而提供了利用三维毛状对象面片模型以及目标毛状对象贴图生成毛状对象的方案、以及基于三维毛状对象模型生成毛状对象的方案。
136.本实施例中,提供了一种自动生成三维毛状对象面片模型以及目标毛状对象贴图的方案,基于三维毛状对象面片模型以及目标毛状对象贴图,生成具有毛绒效果的目标虚拟对象,提高了生成毛绒效果的虚拟对象的效率以及灵活度。本技术提供的对象生成方法,实现了一种基于真实毛状对象效果的贴片生成方案,可以定制化的制作毛状对象和绒毛效果。即可以输出目标毛状对象贴图,又可以输出三维毛状对象模型,从而可以基于目标毛状对象贴图生成毛状对象或者基于三维毛状对象模型生成毛状对象,从而提供了不同文件类型的选择,提高了制作生产效率,可应对不同复杂程度的毛状对象效果的需求,降低了毛状对象制作的门槛,易于美术师实现自己的想法,不再局限于功能和工具。
137.本技术提供的对象生成方法可以应用于任何的需要生成具有毛绒效果的虚拟对象的场景中,包括但不限于是游戏场景、动漫场景或虚拟现实(virtual reality,vr)场景等场景中的至少一种。本技术提供的对象生成方法,可以生成游戏、动漫或虚拟现实场景中的具有毛状对象的虚拟对象,可以提高生成虚拟对象的效率。
138.本技术还提供一种应用场景,可以用于生成虚拟草地,具体地,对待生成的虚拟草地的三维草毛模型中的草毛进行划分,得到多个三维草毛簇,为每个三维草毛簇生成草毛面片组,基于各个草毛面片组生成三维草毛面片模型,对于三维草毛面片模型中的每个草毛面片,基于草毛面片的面片纹理坐标将对应的三维草毛簇变换成草毛面片对应的二维草毛簇,对各个二维草毛簇进行图像渲染生成目标草毛贴图,三维草毛面片模型以及目标草毛贴图,用于生成具有毛绒效果的虚拟草地。其中,草毛为一种丝状结构,草地上包括多个草毛,多个草毛构成草地上的草。
139.本技术还提供一种应用场景,可以用于生成虚拟地毯,具体地,对待生成的虚拟地毯的三维地毯毛模型中的地毯毛进行划分,得到多个三维地毯毛簇,为每个三维地毯毛簇生成地毯毛面片组,基于各个地毯毛面片组生成三维地毯毛面片模型,对于三维地毯毛面片模型中的每个地毯毛面片,基于地毯毛面片的面片纹理坐标将对应的三维地毯毛簇变换成地毯毛面片对应的二维地毯毛簇,对各个二维地毯毛簇进行图像渲染生成目标地毯毛贴图,三维地毯毛面片模型以及目标地毯毛贴图,用于生成具有毛绒效果的虚拟地毯。其中,地毯毛指的是地毯上的毛,为一种丝状结构。
140.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
141.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的对象生
成方法的对象生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个对象生成装置实施例中的具体限定可以参见上文中对于对象生成方法的限定,在此不再赘述。
142.在一些实施例中,如图28所示,提供了一种对象生成装置,包括:三维毛状对象簇得到模块2802、面片模型生成模块2804、二维毛状对象簇得到模块2806和对象生成模块2808,其中:三维毛状对象簇得到模块2802,用于对三维毛状对象模型中的毛状对象进行划分,得到多个三维毛状对象簇。
143.面片模型生成模块2804,用于为每个三维毛状对象簇生成毛状对象面片组,基于各个毛状对象面片组生成三维毛状对象面片模型。
144.二维毛状对象簇得到模块2806,用于对于三维毛状对象面片模型中的每个毛状对象面片,基于毛状对象面片的面片纹理坐标将对应的三维毛状对象簇变换成毛状对象面片对应的二维毛状对象簇。
145.对象生成模块2808,用于对各个二维毛状对象簇进行图像渲染生成目标毛状对象贴图,基于三维毛状对象面片模型以及目标毛状对象贴图,生成具有毛绒效果的目标虚拟对象。
146.在一些实施例中,三维毛状对象簇得到模块,还用于确定待生成的目标虚拟对象的三维毛状对象模型中的各个毛状对象的根部点;对各个根部点进行聚类分析,得到多个目标聚类中心点;对于三维毛状对象模型中的每个毛状对象,从多个目标聚类中心点中确定毛状对象对应的邻近中心点;将邻近中心点相同的各个毛状对象组成三维毛状对象簇,得到多个三维毛状对象簇。
147.在一些实施例中,预设数量为预设毛状对象面片组数量,聚类中心点为第二聚类中心点;三维毛状对象簇得到模块,还用于在预设毛状对象面片组数量的基础上增大预设倍数,得到第一聚类类别数量;对各个根部点进行第一聚类分析,得到第一聚类类别数量的第一聚类中心点;对第一聚类类别数量的第一聚类中心点进行第二聚类分析,得到多个目标聚类中心点。
148.在一些实施例中,三维毛状对象簇得到模块,还用于确定毛状对象的毛状对象包围盒;获取毛状对象的毛状对象包围盒的中心位置,将各个目标聚类中心点中与中心位置最近的目标聚类中心点,确定为毛状对象对应的邻近中心点。
149.在一些实施例中,面片模型生成模块,还用于确定每个三维毛状对象簇分别对应的毛状对象簇包围盒;确定单位包围盒与每个三维毛状对象簇分别对应的毛状对象簇包围盒之间的仿射变换关系;对于每个三维毛状对象簇,利用对应的仿射变换关系对单位面片组进行仿射变换,生成三维毛状对象簇对应的毛状对象面片组。
150.在一些实施例中,二维毛状对象簇得到模块,还用于确定毛状对象面片对应的三维毛状对象簇在毛状对象面片上的各个投影点;每个投影点对应三维毛状对象簇中的一个毛状对象点;基于毛状对象面片的面片纹理坐标,确定毛状对象面片上的各个投影点的纹理坐标;按照投影点的纹理坐标对投影点对应的毛状对象点进行排布,生成毛状对象面片对应的二维毛状对象簇。
151.在一些实施例中,二维毛状对象簇得到模块,还用于从毛状对象面片上确定对应
的三维毛状对象簇中的各个毛状对象点分别对应的邻近点;从毛状对象面片上确定每个邻近点分别所属的基本几何图形;对于每个毛状对象点,基于对应的邻近点所属的基本几何图形在邻近点处的法线,确定毛状对象点的投影方向;在毛状对象点的投影方向上的射线与毛状对象面片相交的情况下,将毛状对象点对应的邻近点确定为毛状对象点在毛状对象面片上的投影点。
152.在一些实施例中,二维毛状对象簇得到模块,还用于从毛状对象面片上确定每个投影点相对于所属的基本几何图形的相对纹理坐标;对于每个投影点,基于所属的基本几何图形的纹理坐标以及对应的相对纹理坐标,确定投影点的纹理坐标。
153.在一些实施例中,对象生成模块,还用于对于三维毛状对象面片模型中的每个毛状对象面片,基于毛状对象面片上的投影点确定投影点对应的毛状对象点的相对位置信息;毛状对象点的相对位置信息,用于表征毛状对象点与毛状对象面片之间的相对关系;基于各个二维毛状对象簇中的毛状对象点的相对位置信息,对各个二维毛状对象簇进行图像渲染,生成三维毛状对象面片模型对应的目标毛状对象贴图。
154.在一些实施例中,面片模型生成模块,还用于统计各个毛状对象面片组包括的毛状对象面片的数量,得到总面片数量;基于总面片数量以及每个毛状对象面片的面片序号,确定每个毛状对象面片分别对应的纹理坐标变换系数;利用毛状对象面片对应的纹理坐标变换系数,对毛状对象面片中的每个顶点的初始纹理坐标进行缩小平移处理,得到毛状对象面片中每个顶点的目标纹理坐标;利用每个顶点的目标纹理坐标替换对应的初始纹理坐标,将替换纹理坐标后的各个毛状对象面片组成的模型确定为三维毛状对象面片模型。
155.在一些实施例中,面片模型生成模块,还用于基于总面片数量从纹理空间中划分出多个纹理区域;基于毛状对象面片的面片序号,从各个纹理区域中确定与每个毛状对象面片分别对应的纹理区域;基于毛状对象面片对应的纹理区域在纹理空间中的位置以及纹理区域的尺寸,确定毛状对象面片对应的纹理坐标变换系数。
156.在一些实施例中,装置还用于获取目标虚拟对象的三维网格模型以及预设毛状对象属性贴图;基于三维网格模型以及预设毛状对象属性贴图,生成目标虚拟对象的三维毛状对象模型。
157.上述对象生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
158.在一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图29所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储对象生成方法中涉及到的数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种对象生成方法。
159.在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图30所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种对象生成方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
160.本领域技术人员可以理解,图29和图30中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
161.在一些实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述对象生成方法中的步骤。
162.在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述对象生成方法中的步骤。
163.在一些实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述对象生成方法中的步骤。
164.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
165.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据
库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
166.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
167.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1