羽毛贴图及羽毛效果模型的生成方法、装置及电子设备与流程

文档序号:30421965发布日期:2022-06-15 13:33阅读:333来源:国知局
羽毛贴图及羽毛效果模型的生成方法、装置及电子设备与流程

1.本发明涉及模型渲染技术领域,具体而言,涉及一种羽毛贴图及羽毛效果模型的生成方法、装置及电子设备。


背景技术:

2.在游戏生产中,为了得到较好的写实效果,需要生成各种形态的具有写实类羽毛效果的模型。相关技术中,首先需要在z brush等模型编辑软件中进行多种形态的羽毛素材的雕刻制作,生成羽毛模型,然后烘焙得到法线贴图,制作颜色贴图,并将低面数的面片手动摆放至目标模型的表面,进一步通过法线贴图和颜色贴图对目标模型的面片处理,最后得到具有写实效果的表面布有羽毛的目标模型。该过程需要通过雕刻多种形态的单个羽毛模型的方式得到实现羽毛写实效果的法线贴图和颜色贴图,过程较为繁琐,效率较低。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种羽毛贴图及羽毛效果模型的生成方法、装置及电子设备,以高效便捷地生成多种羽毛贴图,提高在目标模型生成羽毛效果的效率。
4.第一方面,本发明实施例提供了一种羽毛贴图的生成方法,该方法包括:获取初始的羽毛形态模型;羽毛形态模型包括中心线元素和绒毛元素,中心线元素和绒毛元素均设置有可调参数;基于目标羽毛形态阈值及可调参数,更新羽毛形态模型;将更新后的羽毛形态模型烘焙至临时羽毛模型面片,以得到羽毛贴图。
5.上述可调参数包括中心线元素的位置参数、多个绒毛元素的根部位置参数及形态参数;目标羽毛形态阈值包括绒毛分布参数,以及形态参数范围;基于目标羽毛形态阈值及可调参数,更新羽毛形态模型的步骤,包括:基于绒毛分布参数及中心线元素的位置参数,更新多个绒毛元素的根部位置参数;针对每个绒毛元素,基于根部位置参数及形态参数阈值,更新绒毛元素的形态参数;基于更新后的绒毛元素的形态参数及中心线元素,更新羽毛形态模型。
6.上述绒毛分布参数包括多个按照目标顺序排列的间隔参数;中心线元素的位置参数包括中心线元素的位置曲线;基于绒毛分布参数及中心线元素的位置参数,生成多个绒毛元素的根部位置参数的步骤,包括:将第一个间隔参数确定为当前间隔,将中心线元素的位置曲线的初始位置确定为当前位置;基于当前间隔以及当前位置,确定中心线元素的位置曲线中的当前生长曲线段;将间隔参数及当前生长曲线段输入至目标随机算法,生成位于当前生长曲线段的绒毛元素的根部位置参数;按照间隔参数的目标顺序,将当前间隔的下一个间隔参数确定为当前间隔,将当前生长曲线段中除当前位置的另一个端点确定为当前位置,继续执行基于当前间隔以及当前位置,确定中心线元素的位置曲线中的当前生长曲线段的步骤,直至当前间隔为最后一个间隔参数。
7.上述形态参数包括绒毛元素的长度参数、方向参数以及扭曲度参数;形态参数范围包括与中心线元素的位置参数对应的长度范围,以及目标方向范围和目标扭曲度范围;
根部位置参数指示绒毛元素的根部在中心线元素的位置;基于根部位置参数及形态参数阈值,生成绒毛元素的形态参数的步骤,包括:基于根部位置参数对应的中心线元素的位置参数,确定绒毛元素的长度范围;将根部位置参数及长度范围输入至目标随机算法,生成绒毛元素的长度参数;长度参数与长度范围相匹配;将根部位置参数及目标方向范围输入至目标随机算法,生成绒毛元素的方向参数;方向参数与目标方向范围相匹配;将根部位置参数及目标方向范围输入至目标随机算法,生成绒毛元素的扭曲度参数;扭曲度参数与目标扭曲度范围相匹配。
8.第二方面,本发明实施例提供了一种羽毛效果模型的生成方法,该方法包括:在目标模型的表面生成多个引导线;引导线用于指示羽毛模型的生长方向;沿着引导线生成羽毛模型的羽毛模型面片;将预设的羽毛贴图渲染至羽毛模型面片,得到目标模型对应的羽毛效果;其中,羽毛贴图由如上述羽毛贴图的生成方法生成。
9.上述目标模型的表面由多个多边形构成;多边形具有多个顶点;在目标模型的表面生成多个引导线的步骤,包括:从目标模型的顶点中选取多个目标顶点;针对每个目标顶点,以目标顶点作为毛发引导线的生长端,生成毛发引导线。
10.上述羽毛模型面片包括多个带有弯曲弧度的矩形;沿着引导线生成羽毛模型的羽毛模型面片的步骤,包括:将羽毛模型面片对应于的羽毛根部的一端设置于目标模型的表面上毛发引导线对应的目标顶点;将羽毛模型面片的各个矩形的弯曲弧度调整至与毛发引导线的弯曲弧度相匹配。
11.第三方面,本发明实施例提供了一种羽毛贴图的生成装置,该装置包括:初始模型获取模块,用于获取初始的羽毛形态模型;羽毛形态模型包括中心线元素和绒毛元素,中心线元素和绒毛元素均设置有可调参数;模型更新模块,用于基于目标羽毛形态阈值及可调参数,更新羽毛形态模型;烘焙模块,用于将更新后的羽毛形态模型烘焙至临时羽毛模型面片,以得到羽毛贴图。
12.第四方面,本发明实施例提供了羽毛效果模型的生成装置,该装置包括:引导线设置模块,用于在目标模型的表面生成多个引导线;引导线用于指示羽毛模型的生长方向;模型面片生成模块,用于沿着引导线生成羽毛模型的羽毛模型面片;模型面片具有指定的弯曲弧度;渲染模块,用于将预设的羽毛贴图渲染至羽毛模型面片,得到目标模型对应的羽毛效果;其中,羽毛贴图由上述羽毛贴图的生成方法生成。
13.第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述羽毛贴图的生成方法或羽毛效果模型的生成方法。
14.第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述羽毛贴图的生成方法或羽毛效果模型的生成方法。
15.本发明实施例带来了以下有益效果:
16.上述一种羽毛贴图及羽毛效果模型的生成方法、装置及电子设备,首先获取初始的羽毛形态模型;羽毛形态模型包括中心线元素和绒毛元素,中心线元素和绒毛元素均设置有可调参数;然后基于目标羽毛形态阈值及可调参数,更新羽毛形态模型;最后将更新后的羽毛形态模型烘焙至临时羽毛模型面片,以得到羽毛贴图。该方式可以快速生成羽毛贴
图,无需手动绘制大量不同形态的羽毛,操作便捷且效率较高。
17.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
18.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
19.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例提供的多种形态的羽毛模型的效果图;
21.图2为本发明实施例提供的一种羽毛贴图的生成方法的流程图;
22.图3为本发明实施例提供的一种羽毛效果模型的生成方法的流程图;
23.图4为本发明实施例提供的一种长度范围限制的示意图;
24.图5为本发明实施例提供的一种方向范围限制的示意图;
25.图6为本发明实施例提供的多种形态的羽毛形态模型的效果图;
26.图7为本发明实施例提供的一种表面设置有引导线的目标模型的效果图;
27.图8为本发明实施例提供的一种表面排列有模型面片的目标模型的效果图;
28.图9为本发明实施例提供的一种生成表面排列有模型面片的目标模型的程序框图;
29.图10为本发明实施例提供的另一种羽毛效果模型的效果图;
30.图11为本发明实施例提供的一种羽毛贴图的生成装置的结构示意图;
31.图12为本发明实施例提供的一种羽毛效果模型的生成装置的结构示意图;
32.图13为本发明实施例提供的一种电子设备的结构示意图;。
具体实施方式
33.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
34.在游戏生产中,为了得到较好的写实效果,需要生成各种形态的具有写实类羽毛效果的模型,然而该过程通常较为复杂繁琐。相关技术中,一般是在z brush等模型编辑软件中进行多种形态的羽毛素材的雕刻制作,生成多个不同形态的三维羽毛模型,多种形态的羽毛模型如图1所示,然后对各个三维羽毛模型进行烘焙得到可以表现不同形态的羽毛的法线贴图,并制作羽毛的颜色贴图,最后将低面数的面片手动摆放至目标模型的表面,进一步通过法线贴图和颜色贴图对目标模型的面片处理,最后得到具有写实效果的表面布有羽毛的目标模型。该过程需要需要花费大量的时间精力处理羽毛素材和手动摆放位置从而
达到好的效果,过程较为繁琐,效率较低。
35.为便于对本实施例进行理解,首先对本发明实施例所公开的一种羽毛贴图的生成方法进行详细介绍,如图2所示,该方法包括如下步骤:
36.步骤202,获取初始的羽毛形态模型;羽毛形态模型包括中心线元素和绒毛元素,中心线元素和绒毛元素均设置有可调参数。
37.上述初始的羽毛形态模型可以为用户通过程序化的毛发、羽毛等软件工具(如yeti工具)根据需求生成的具有可调参数的可以表现羽毛形态的模型。由于羽毛形态通常可以由羽毛中心线(羽杆)的弯曲程度,以及羽杆上绒毛的分布密度(分布位置),生长方向、紊乱度等参数表征,针对这些参数均需要设置可调参数。在具体实现时,用户可以参照影视化的羽毛资料,如羽毛图片,设置中心线元素的位置、弯曲度等参数,以及绒毛元素的长度、紊乱度等参数,生成初始的羽毛形态模型。
38.步骤204,基于目标羽毛形态阈值及可调参数,更新羽毛形态模型。
39.由于羽毛具有一定的形态特征,通常需要根据羽毛的形态特征限定可调参数的调节范围,这些可调参数的调节范围构成了目标羽毛形态阈值。例如,从羽杆的根部到顶端,绒毛的长度通常成先变长后变短的趋势,因此可以根据需求设置目标羽毛形态阈值作为可调参数的调节范围,以在一定程度上保证生成的羽毛形态模型具有较为写实的羽毛形态。
40.在对可调参数进行更新的过程中,首先需要根据中心线元素的位置以及绒毛的分布密度,得到各个绒毛元素在中心线元素上的分布位置,然后在基于绒毛元素的分布位置以及目标羽毛形态阈值,如绒毛长度范围、绒毛扭曲度范围等,确定表征绒毛元素的形态特征的可调参数的参数值,该过程中可以使用随机算法,并采用目标羽毛形态阈值作为随机算法中的范围限制参数,从而快速生成大量形态各异的羽毛形态模型。
41.具体而言,上述可调参数通常可以包括中心线元素的位置参数、多个绒毛元素的根部位置参数及形态参数;目标羽毛形态阈值包括绒毛分布参数,以及形态参数范围。在更新每个羽毛形态模型的过程中,需要基于绒毛分布参数及中心线元素的位置参数,更新多个绒毛元素的根部位置参数;再针对每个绒毛元素,基于根部位置参数及形态参数阈值,更新绒毛元素的形态参数;最后基于更新后的绒毛元素的形态参数及中心线元素,更新羽毛形态模型。
42.在具体实现过程中,可以根据需求设置需要得到的羽毛形态模型的目标个数,该目标个数与更新的目标次数相匹配。在每次更细羽毛形态模型后,将更新次数加一,并判断羽毛形态模型的更新次数是否等于目标次数。如果羽毛形态模型的更新次数小于目标次数,则继续执行基于绒毛分布参数及中心线元素的位置参数,更新多个绒毛元素的根部位置参数的步骤,直至羽毛形态模型的更新次数等于目标次数。
43.由于羽毛形态,由羽毛上的每一根毛组成,每一根毛的根部都生成在羽毛中心线上不同的位置(设置对应的参数为each_feather_position),该位置可以随机生成,且可以通过随机函数(random_distribute)中的绒毛分布参数控制整体分布的紊乱度。该绒毛分布参数可以由多个按照目标顺序排列的间隔参数(也称为间距,设置参数名称为gap)组成,不同的间隔参数取值可以使得生成的绒毛密度不同,如在需要绒毛密度较高的中心线位置范围,可以将间隔参数取值较小;相反地,在需要绒毛密度较低的中心线位置范围,可以将间隔参数取值较大。在生成多个绒毛元素的根部位置参数可以采用如下函数:
44.each_feather_position=random_distribute(0,1,gap)
45.上式中,0和1代表羽毛中心线的首端和尾端,gap代表间距,random_distribute这个函数的含义是在羽毛中心线首端和尾端中间,每隔gap距离,生成一个位置点,并且位置点在该gap距离中随机生成。gap距离由用户定义。
46.具体而言,中心线元素的位置参数可以由中心线元素的位置曲线表示。上述公式的实现过程可以表述为:将第一个间隔参数确定为当前间隔,将中心线元素的位置曲线的初始位置确定为当前位置;基于当前间隔以及当前位置,确定中心线元素的位置曲线中的当前生长曲线段;将间隔参数及当前生长曲线段输入至目标随机算法,生成位于当前生长曲线段的绒毛元素的根部位置参数;按照间隔参数的目标顺序,将当前间隔的下一个间隔参数确定为当前间隔,将当前生长曲线段中除当前位置的另一个端点确定为当前位置,并且在判断当前间隔参数不是最后一个间隔参数时,继续执行基于当前间隔以及当前位置,确定中心线元素的位置曲线中的当前生长曲线段的步骤,直至当前间隔为最后一个间隔参数。
47.在具体实现过程中,绒毛元素的形态参数可以包括长度参数、方向参数以及扭曲度参数;对应地,形态参数范围包括与中心线元素的位置参数对应的长度范围,以及目标方向范围和目标扭曲度范围。其中,该长度范围通常为从羽毛的中心线元素的首端到尾端绒毛元素的长度限制参数(设置参数名称为limit_length),它会限制羽毛整体的形态走向,如图4所示,其中x轴中的0表示中心线对应于羽毛根部的一端,1表示中心线对应于羽毛的另一端。该参数可以由用户定义,由用户控制该参数值的曲线,代表着从羽毛首端到尾端,每一根绒毛极限长度的范围。限制方向参数的取值范围的目标方向范围和限制扭曲度参数的取值参数的目标扭曲度范围设置也采用了类似的逻辑。例如,假设三维空间的坐标轴分别为为xyz,羽毛大体生成在yz平面,则会由用户定义一个x轴的角度angle,最终绒毛的方向范围不会超出这个角度,对方向进行限制的函数名叫limit_angle,其示意图如图5所示。
48.具体而言,在生成绒毛元素的形态参数时,可以基于根部位置参数对应的中心线元素的位置参数,确定绒毛元素的长度范围;然后将根部位置参数及长度范围输入至目标随机算法,生成绒毛元素的长度参数,得到长度参数与长度范围相匹配;将根部位置参数及目标方向范围输入至目标随机算法,生成绒毛元素的方向参数,得到的方向参数与目标方向范围相匹配;将根部位置参数及目标方向范围输入至目标随机算法,生成绒毛元素的扭曲度参数,得到扭曲度参数与目标扭曲度范围相匹配。
49.上述目标随机算法均可以使用random算法,基于每一根毛的位置数值(each_feather_position)再进行一个随机数生成,并用生成的随机数来表示每一根毛的长度(feather_hair_length),方向(feather_hair_noise),扭曲值(feather_hair_direction),从而形成最终的羽毛形态。生成羽毛形态参数的伪代码如下:
50.[0051][0052]
其中,min_length、max_length、limit_length为长度范围,length_noise_1,length_noise_2为目标方向范围,limit_angle(dir_1,dir_2,angle,x)为目标扭曲度范围。
[0053]
步骤206,将更新后的羽毛形态模型烘焙至临时羽毛模型面片,以得到羽毛贴图。
[0054]
上述临时羽毛模型面片通常由设定数量的图元依次连接组成,最终形成长条状的面片,用以模拟羽毛的形态。上述图元可以为矩形图元,也可以为四边形图元等其他多边形图元。该模型面片通常与后续生成羽毛效果时在目标模型的表面沿着毛发引导线生成的羽毛模型面片一致,采用了数量相同,且均为矩形的图元组成模型面片,在烘焙过程中可以采用arnold渲染功能进行处理,还可以采用其他软件的烘焙及渲染功能进行处理。上述羽毛贴图可以包括法线贴图、颜色贴图以及用于指示透明度的alpha通道等。进一步可以采用烘焙得到的羽毛贴图对模型面片进行渲染处理,从而在目标模型可以生成写实较好的羽毛效果。
[0055]
上述一种羽毛贴图的生成方法,首先获取初始的羽毛形态模型;羽毛形态模型包括中心线元素和绒毛元素,中心线元素和绒毛元素均设置有可调参数;然后基于目标羽毛形态阈值及可调参数,更新羽毛形态模型;最后将更新后的羽毛形态模型烘焙至临时羽毛模型面片,以得到羽毛贴图。该方式可以快速生成羽毛贴图,无需手动绘制大量不同形态的羽毛,操作便捷且效率较高。
[0056]
基于上述方法实施例,本发明实施例还提供了一种羽毛效果模型的生成方法,该方法中采用上述方法生成的羽毛贴图对目标模型进行处理,实现了羽毛效果。如图3所示,该方法包括:
[0057]
步骤302,在目标模型的表面生成多个引导线;引导线用于指示羽毛模型的生长方向。
[0058]
上述目标模型指三维游戏场景中的三维模型。目标模型的表面通常由图元组成。图元可以采用简单多边形的形式,例如三角形、四边形等。图元通常具有多个顶点,相邻的图元通常具有共用的顶点。上述目标模型可以为表面生长羽毛的鸟类生物的三维模型,或者基于游戏设定,为鸟人、或表面具有羽毛的标本等物体的三维模型。
[0059]
上述羽毛模型指位于目标模型表面展示羽毛效果的模型,羽毛模型也可以和目标模型形成一个整体模型。上述引导线通常为一条具有设定长度的曲线,其长度及曲率均可以按照需要进行调整。每条引导线的长度限定了羽毛模型中其对应的的羽毛的长度,引导
线的曲率指示了基于该引导线生成的羽毛的羽杆的曲率。引导线的一端设置于目标模型的表面,用于模拟羽毛的生长位置,通常可以将引导线的一端设置于图元的顶点上。具体而言,可以基于羽毛在目标模型对应的物体上的生长密度,选取目标模型上图元的多个顶点,这些顶点在目标模型表面的分布可以模拟羽毛在目标模型的生长密度,在这些顶点上可以根据需求设置设定长度及设定曲率的曲线作为引导线,用以指示羽毛的生长方向。
[0060]
步骤304,沿着引导线生成羽毛模型的羽毛模型面片。
[0061]
上述羽毛模型面片也可以称为低面数的面片。该模型面片通常与上述临时羽毛模型面片的图元数量及连接方式一致。上述指定的弯曲弧度由各个图元的弯曲弧度构成,羽毛模型面片的整体弯曲弧度与引导线的弯曲弧度(相当于曲率)一致。在沿着引导线生成羽毛模型面片的过程中,可以将长条状的模型面片对应于羽毛的根部的一端设置于引导线在目标模型的表面的位置(通常为图元的顶点)上,并将模型面片的长度调整为与引导线一致,可以按照调整比例依次对各个图元进行缩放;然后调整各个矩形图元的弯曲弧度与该矩形图元对应于引导线的线段的弯曲弧度一致,使整个模型面片与引导线相贴合,用于模拟羽毛的生长方向。
[0062]
步骤306,将预设的羽毛贴图渲染至羽毛模型面片,得到目标模型对应的羽毛效果;其中,羽毛贴图由如上述羽毛贴图的生成方法生成。
[0063]
上述羽毛贴图通过将羽毛形态模型烘焙在模型面片上得到。将羽毛贴图贴图至目标模型上沿着引导线生成的模型面片后,即可以在目标模型表面得到羽毛形态模型表现的羽毛效果,将目标模型与模型面片设置为一个整体,即可以得到目标模型对应的羽毛效果模型。
[0064]
上述羽毛效果模型的生成方法,在目标模型的表面生成多个引导线;引导线用于指示羽毛模型的生长方向;沿着引导线生成羽毛模型的羽毛模型面片;将预设的羽毛贴图渲染至羽毛模型面片,得到目标模型对应的羽毛效果。该方法采用了基于羽毛形态模型快速生成的羽毛贴图,通过设置引导线和模型面片使目标模型快速生成羽毛效果,操作简单,且羽毛效果的生成效率较高。
[0065]
在另一个实施例中提供了羽毛贴图的生成过程参与羽毛效果模型生成过程的具体实现方式。该方式包括下述步骤:
[0066]
步骤一,通过程序化生成的方式定义出羽毛,首先定义出“羽毛的中心线”(相当于上述“中心线元素”),之后用细线代表羽毛的绒毛,将细线实例化拷贝到“羽毛中心线”的顶点上,并定义出随机控制的参数(相当于上述“可调参数”),以此方式来定义出羽毛的模型形态(相当于上述“羽毛形态模型”),如图6所示。
[0067]
上述实例化拷贝过程可以视为根据需求将已经调节好细线形态的羽毛效果(即可调参数已经设置好的绒毛)复制到羽毛的中心线上。上述随机控制的参数主要指绒毛的随机方向,密度,在不同部位的根数。
[0068]
步骤二,将羽毛的模型形态通过渲染的方式,烘焙到一张低面数的面片(相当于上述“目标模型面片”)上,得出低面数的,可用于游戏的羽毛资产(相当于上述“羽毛贴图”)。
[0069]
步骤三,通过yeti软件工具的groom引导线功能将毛发引导线(相当于上述“引导线”)添加到目标模型上,创建出毛发的引导线。如图7所示,目标模型以一个球状模型表示,可以理解为它是鸟类身体的一部分,其表面由多个多边形构成,多边形具有多个顶点。在添
加引导线的过程中,可以根据多边形的网格点(相当于上述“顶点”)来确定羽毛的生长密度,从而添加引导线。具体而言,可以从目标模型的顶点中选取多个目标顶点;针对每个目标顶点,以目标顶点作为毛发引导线的生长端,生成毛发引导线。
[0070]
步骤四,将羽毛模型面片(也称为“低模”,或简称为“模型面片)通过节点连接转换为实例模型,得到表面排列有按照引导线生成的多个模型面片的目标模型,具体如图8所示。上述模型面片包括多个带有弯曲弧度的矩形;在目标模型表面生成模型面片的过程中,将模型面片对应于的羽毛根部的一端设置于目标模型的表面上毛发引导线对应的目标顶点,并将模型面片的各个矩形的弯曲弧度调整至与毛发引导线的弯曲弧度相匹配。由于在一些软件中,已经预先设置好了程序,将模型面片及设置了引导线的目标模型作为输入即可得到表面排列有模型面片的目标模型。如图9所示,import1和import2为模型面片,模型面片通过节点转换,再与import0(鸟类身体模型)连接即可生成instance0,即表面排列有模型面片的目标模型。
[0071]
步骤五,将实例模型转换为mesh(网格)模型,就可得到排列好的低模,再将已经得到的羽毛贴图,如法线贴图、颜色贴图、alpha通道等贴至mesh模型得到羽毛最终效果。效果图如图10所示。
[0072]
上述方法借鉴影视流程的思路,根据原画设定需求通过yeti的feather灵活调节出羽毛形态素材,由于游戏引擎内是不支持yeti的显示效果的,需要通过渲染将羽毛素材制作成后续的素材,具体可以通过对羽毛形态素材进行烘焙的过程快速得到法线贴图、颜色贴图和alpha通道。在对目标模型生成羽毛效果的过程中,可以基于一些软件的引导线功能快速刷出羽毛的大概趋势和生长方向,将引导线调节至合适后,生成沿着引导线生成模型面片(也称为“多边形”),从而制作低模素材,然后将渲染处理后的素材贴到生成的模型面片上,从而得到快速得到初始排列的羽毛素材。该方式中羽毛的的形态、朝向等关键参数高度可调,通过设置引导线可以快速实现羽毛的“覆盖状”效果,进而实现游戏内写实类的羽毛效果。
[0073]
对应于上述方法实施例,参见图11所示的一种羽毛贴图的生成装置,该装置包括:
[0074]
初始模型获取模块1102,用于获取初始的羽毛形态模型;羽毛形态模型包括中心线元素和绒毛元素,中心线元素和绒毛元素均设置有可调参数;
[0075]
模型更新模块1104,用于基于目标羽毛形态阈值及可调参数,更新羽毛形态模型;
[0076]
烘焙模块1106,用于将更新后的羽毛形态模型烘焙至临时羽毛模型面片,以得到羽毛贴图。
[0077]
上述一种羽毛贴图的生成装置中,首先获取初始的羽毛形态模型;羽毛形态模型包括中心线元素和绒毛元素,中心线元素和绒毛元素均设置有可调参数;然后基于目标羽毛形态阈值及可调参数,更新羽毛形态模型;最后将更新后的羽毛形态模型烘焙至临时羽毛模型面片,以得到羽毛贴图。该方式可以快速生成羽毛贴图,无需手动绘制大量不同形态的羽毛,操作便捷且效率较高。
[0078]
上述可调参数包括中心线元素的位置参数、多个绒毛元素的根部位置参数及形态参数;目标羽毛形态阈值包括绒毛分布参数,以及形态参数范围;上述模型更新模块还用于:基于绒毛分布参数及中心线元素的位置参数,更新多个绒毛元素的根部位置参数;针对每个绒毛元素,基于根部位置参数及形态参数阈值,更新绒毛元素的形态参数;基于更新后
的绒毛元素的形态参数及中心线元素,更新羽毛形态模型。
[0079]
上述绒毛分布参数包括多个按照目标顺序排列的间隔参数;中心线元素的位置参数包括中心线元素的位置曲线;上述模型更新模块还用于:将第一个间隔参数确定为当前间隔,将中心线元素的位置曲线的初始位置确定为当前位置;基于当前间隔以及当前位置,确定中心线元素的位置曲线中的当前生长曲线段;将间隔参数及当前生长曲线段输入至目标随机算法,生成位于当前生长曲线段的绒毛元素的根部位置参数;按照间隔参数的目标顺序,将当前间隔的下一个间隔参数确定为当前间隔,将当前生长曲线段中除当前位置的另一个端点确定为当前位置,继续执行基于当前间隔以及当前位置,确定中心线元素的位置曲线中的当前生长曲线段的步骤,直至当前间隔为最后一个间隔参数。
[0080]
上述形态参数包括绒毛元素的长度参数、方向参数以及扭曲度参数;形态参数范围包括与中心线元素的位置参数对应的长度范围,以及目标方向范围和目标扭曲度范围;根部位置参数指示绒毛元素的根部在中心线元素的位置;上述模型更新模块还用于:基于根部位置参数对应的中心线元素的位置参数,确定绒毛元素的长度范围;将根部位置参数及长度范围输入至目标随机算法,生成绒毛元素的长度参数;长度参数与长度范围相匹配;将根部位置参数及目标方向范围输入至目标随机算法,生成绒毛元素的方向参数;方向参数与目标方向范围相匹配;将根部位置参数及目标方向范围输入至目标随机算法,生成绒毛元素的扭曲度参数;扭曲度参数与目标扭曲度范围相匹配。
[0081]
对应于上述方法实施例,参见图12所示的一种羽毛效果模型的生成装置的示意图,该装置包括如下步骤:
[0082]
引导线设置模块1202,用于在目标模型的表面生成多个引导线;引导线用于指示羽毛模型的生长方向;
[0083]
模型面片生成模块1204,用于沿着引导线生成羽毛模型的羽毛模型面片;
[0084]
渲染模块1206,用于将预设的羽毛贴图渲染至羽毛模型面片,得到目标模型对应的羽毛效果;其中,羽毛贴图由上述羽毛贴图的生成方法生成。
[0085]
上述羽毛效果模型的生成装置中,在目标模型的表面生成多个引导线;引导线用于指示羽毛模型的生长方向;沿着引导线生成羽毛模型的羽毛模型面片;将预设的羽毛贴图渲染至羽毛模型面片,得到目标模型对应的羽毛效果。该方法采用了基于羽毛形态模型快速生成的羽毛贴图,通过设置引导线和模型面片使目标模型快速生成羽毛效果,操作简单,且羽毛效果的生成效率较高。。
[0086]
上述目标模型的表面由多个多边形构成;多边形具有多个顶点;上述引导线设置模块还用于:从目标模型的顶点中选取多个目标顶点;针对每个目标顶点,以目标顶点作为毛发引导线的生长端,生成毛发引导线。
[0087]
上述模型面片包括多个带有弯曲弧度的矩形;上述模型面片生成模块还用于:将羽毛模型面片对应于的羽毛根部的一端设置于目标模型的表面上毛发引导线对应的目标顶点;将羽毛模型面片的各个矩形的弯曲弧度调整至与毛发引导线的弯曲弧度相匹配。
[0088]
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述羽毛贴图的生成方法或羽毛效果模型的生成方法。
[0089]
参见图13所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够
被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述羽毛贴图的生成方法或羽毛效果模型的生成方法。
[0090]
进一步地,图13所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
[0091]
其中,存储器101可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0092]
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
[0093]
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述羽毛贴图的生成方法或羽毛效果模型的生成方法。
[0094]
本发明实施例所提供的一种羽毛贴图及羽毛效果模型的生成方法、装置以及电子设备,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0095]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0096]
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0097]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所
述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0098]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0099]
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1