一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模型渲染方法和装置与流程

2022-02-20 16:25:19 来源:中国专利 TAG:


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.图1是根据本发明实施例的一种模型渲染方法的流程图;
30.图2是根据本发明实施例的一种可选的地表类型的三维虚拟模型的季节更替变化效果的示意图;
31.图3a是根据本发明实施例的一种可选的树木类型的三维虚拟模型的原始材质贴
图的示意图;
32.图3b是根据本发明实施例的一种可选的树木类型的三维虚拟模型的alpha贴图的示意图;
33.图4a是根据本发明实施例的一种可选的草丛类型的三维虚拟模型的原始材质贴图的示意图;
34.图4b是根据本发明实施例的一种可选的草丛类型的三维虚拟模型的alpha贴图的示意图;
35.图4c是根据本发明实施例的一种可选的草丛类型的三维虚拟模型的mask贴图的示意图;
36.图5是根据本发明实施例的一种可选的岩石类型的三维虚拟模型的季节更替变化效果的示意图;
37.图6a是根据本发明实施例的一种可选的路面类型的三维虚拟模型的原始材质贴图的示意图;
38.图6b是根据本发明实施例的一种可选的草丛类型的三维虚拟模型的遮罩贴图的示意图;
39.图7是根据本发明实施例的一种模型渲染装置的示意图。
具体实施方式
40.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
41.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
42.根据本发明实施例,提供了一种模型渲染方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
43.图1是根据本发明实施例的一种模型渲染方法的流程图,如图1所示,该方法包括如下步骤:
44.步骤s102,获取三维虚拟模型的第一贴图,其中,第一贴图用于表征三维虚拟模型在游戏场景中的第一季节所使用的材质。
45.上述的三维虚拟模型可以是需要增加季节更替表现的模型,该模型可以显示在图形用户界面上供用户查看,例如,仍以图形用户界面为游戏界面为例,三维虚拟模型可以是
地表、路面、建筑物、树木、草丛等模型。相同的三维虚拟模型在不同季节的表现效果不同,且不同的三维虚拟模型在相同季节的表现也不同,例如,以三维虚拟模型包括:树木、草丛为例,树木的树叶在春天的颜色是绿色,树木的树叶在秋天会落叶,而草丛在春天会开花。
46.上述步骤中的第一贴图可以是三维虚拟模型的原始材质贴图。在不考虑季节更替的情况下,可以直接利用原始材质贴图对三维虚拟模型进行渲染,在添加季节更替的情况下,可以采用材质贴图混合的方式,在原始材质贴图的基础上进行季节更替的表现。在本发明实施例中,可以由美术人员预先制作不同季节的材质贴图,从而基于不同季节的材质贴图可以实现季节更替。
47.上述步骤中的第一季节可以是游戏场景中的当前季节,作为季节更替的开始季节,该季节与现实环境中的季节无关。
48.步骤s104,获取三维虚拟模型的过渡贴图,其中,过渡贴图用于表征从第一季节过渡至第二季节的过程中,三维虚拟模型所使用的材质变化状态。
49.上述步骤中的第二季节可以是游戏场景中的其他季节,作为季节更替的结束季节,例如,可以是第一季节的相邻季节,也可以是其他季节。在本发明实施例中,为了提高季节更替表现的质量,第二季节可以是第一季节的下一个季节。
50.在一种可选的实施例中,可以通过调整三维虚拟模型在第二季节所使用的材质贴图中,不同区域的透明度的方式,生成过渡贴图。可以基于三维虚拟模型在第一季节所使用的材质贴图,确定第二季节所使用的材质贴图中,需要调整透明度的区域,例如,对于树木,夏天过渡至秋天,树木的树叶会发生变化;秋天过渡至冬天,树木的树叶和树干会发生变化。进一步地,结合季节更替的不同时间,确定上述区域的透明度,其中,季节更替的时间越长,透明度越低。
51.例如,以从秋天更替为冬天为例进行说明,在更替刚开始时,三维虚拟模型在第一季节所使用的材质贴图不发生变化,此时生成的过渡贴图完全透明,用户无法看到第二季节所使用的材质贴图;在更替结束时,三维虚拟模型在第一季节所使用的材质贴图变化为第二季节所使用的材质贴图,此时生成的过渡贴图完全不透明,用户可以看到第二季节所使用的材质贴图;在更替过程中,三维虚拟模型在第一季节所使用的材质贴图逐渐变化,此时生成的过渡贴图的透明度逐渐降低,用户看到的第二季节所使用的材质贴图越来越清晰。
52.步骤s106,将第一贴图和过渡贴图进行混合,生成目标贴图。
53.在一种可选的实施例中,可以利用lerp函数将第一贴图和过渡贴图进行混合,也即,可以将过渡贴图叠加在第一贴图之上,得到目标贴图,对于用户来说,随着季节更替的时间越长,第二季节所使用的材质贴图的透明度越来越低,用户可以看到的第二季节所使用的材质贴图越来越清晰,而第一季节所使用的材质贴图越来越模糊。
54.例如,仍以从秋天更替为冬天为例进行说明,在更替刚开始时,三维虚拟模型在第一季节所使用的材质贴图不发生变化,此时生成的过渡贴图完全透明,用户仅能看到第一季节所使用的材质贴图;在更替结束时,三维虚拟模型在第一季节所使用的材质贴图变化为第二季节所使用的材质贴图,此时生成的过渡贴图完全不透明,用户仅能看到第二季节所使用的材质贴图;在更替过程中,三维虚拟模型在第一季节所使用的材质贴图逐渐变化,此时生成的过渡贴图的透明度逐渐降低,用户看到的第一季节所使用的材质贴图越来越模
糊,而第二季节所使用的材质贴图越来越清晰。
55.步骤s108,基于目标贴图对三维虚拟模型进行渲染。
56.在一种可选的实施例中,可以利用着色器对三维虚拟模型进行渲染,具体渲染过程在此不做赘述。
57.采用本发明上述实施例提供的方案,通过材质贴图混合的方式,获取三维虚拟模型的第一贴图,并且获取三维虚拟模型的过渡贴图,然后将第一贴图和过渡贴图进行混合,生成目标贴图,最后基于目标贴图对三维虚拟模型进行渲染,实现在三维虚拟模型上添加季节更替变现的目的。容易注意到的是,通过生成过渡贴图并与第一贴图进行叠加,可以在材质上面进行季节更替的表现,无需美术人员制作相应的美术资源,达到了提高开发流程的速度和效率,降低开发流程的成本,从而降低包体量,增强玩家的沉浸体验,增加游戏场景的真实感的技术效果,进而解决了相关技术中通过人工制作不同季节的美术资源,导致制作时间较长、制作成本较高,且包体较大的技术问题。
58.可选地,获取三维虚拟模型的过渡贴图包括:基于三维虚拟模型的类型,确定第二贴图,其中,第二贴图用于表征三维虚拟模型在第二季节所使用的材质;生成第一贴图对应的遮罩贴图,其中,遮罩贴图用于表征从第一季节过渡至第二季节的预设时刻,第一贴图中出现变化的部分;在第二贴图的预设通道中添加遮罩贴图,得到过渡贴图。
59.上述步骤中的预设时刻可以是游戏场景中季节更替的任意一个时刻,与现实世界中的时间无关。
60.上述步骤中的预设通道可以是第二贴图的alpha通道,其中,alpha通道是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,其中白表示不透明,黑表示透明,灰表示半透明。
61.在一种可选的实施例中,对于不同类型的三维虚拟模型,三维虚拟模型中发生变化的部分不同,因此,可以基于三维虚拟模型的类型,确定第二季节所使用的材质贴贴图,并且,可以结合季节更替的不同时间,确定第一季节所使用的材质贴图的变化区域和变化程度,进而生成相应的遮罩贴图,其中,季节更替的时间越长,确定第一季节所使用的材质贴图的变化程度越大,遮罩贴图中的值域越多。最终将遮罩贴图添加至第二季节所使用的材质贴图的alpha通道,得到过渡贴图,其中,遮罩贴图的值域越多,第二季节所使用的材质贴图的透明度越低。
62.可选地,基于三维虚拟模型的类型,确定第二贴图包括:根据三维虚拟模型的类型,确定第二贴图为三维虚拟模型的部分或全部在第二季节所使用的材质贴图。
63.在一种可选的实施例中,对于不同类型的三维虚拟模型,在不同季节过渡的过程中,材质变化的部位往往不同,例如,对于类型为树木的三维虚拟模型,在从夏季过渡至秋季的过程中,树木的树叶颜色会发生变化,因此,第二贴图可以是树木的树叶而在春季过渡至夏季的过程中,树木本身不发生变化。因此,可以根据三维虚拟模型的类型,确定季节过渡的过程中,材质发生变化的具体部分。
64.可选地,根据三维虚拟模型的类型,确定第二贴图为三维虚拟模型的部分或全部在第二季节所使用的材质贴图包括:在三维虚拟模型的类型为第一预设类型的情况下,确定第二贴图为三维虚拟模型在第二季节所使用的材质贴图,或三维虚拟模型上覆盖的覆盖物在第二季节所使用的材质贴图,其中,第一预设类型用于表征三维虚拟模型的材质贴图
在季节发生变化的情况下会发生变化;在三维虚拟模型的类型为第二预设类型的情况下,确定第二贴图为三维虚拟模型上覆盖的覆盖物在第二季节所使用的材质贴图,其中,第二预设类型用于表征三维虚拟模型的材质贴图在季节发生变化的情况下保持不变。
65.在一种可选的实施例中,对于不同类型的三维虚拟模型,在不同季节过渡的过程中,材质变化的部位,例如,对于类型为树木的三维虚拟模型,在从夏季过渡至秋季的过程中,树木的树叶会发生变化,而在春季过渡至夏季的过程中,树木本身不发生变化。因此,可以根据三维虚拟模型的类型,确定季节过渡的过程中,材质发生变化的具体部分。
66.可选地,基于三维虚拟模型的类型,确定第二贴图包括:在三维虚拟模型的类型为地表的情况下,确定第二贴图为三维虚拟模型在第二季节所使用的材质贴图;在三维虚拟模型的类型为树木的情况下,确定第二贴图为三维虚拟模型中第一部分模型在第二季节所使用的材质贴图;在三维虚拟模型的类型为草丛的情况下,确定第二贴图为三维虚拟模型中第二部分模型在第二季节所使用的材质贴图;在三维虚拟模型的类型为预设物品的情况下,确定第二贴图为三维虚拟模型上覆盖的第一覆盖物在第二季节所使用的材质贴图,其中,预设物品的材质贴图在季节变化的情况下保持不变;在三维虚拟模型的类型为建筑物或路面的情况下,确定第二贴图为三维虚拟模型上覆盖的第二覆盖物在第二季节所使用的材质贴图。
67.在一种可选的实施例中,对于地表类型的三维虚拟模型,季节更替表现为落叶、盖雪等,因此,第二贴图可以是地表上覆盖落叶或雪花后的材质贴图。
68.对于树木类型的三维虚拟模型,季节更替表现为树叶变色、落叶、枯萎、盖雪等,因此,第一部分模型可以是树叶,第二贴图可以是树叶变色后的材质贴图;第一部分模型也可以是树干,第二贴图可以是落叶后的材质贴图;第一部分模型还可以是树木上覆盖雪的部分,第二贴图可以是树干盖雪后的材质贴图。
69.对于草丛类型的三维虚拟模型,季节更替表现为开花等,因此,第二部分模型可以是草丛上花的部分,第二贴图可以是草丛开花后的材质贴图。
70.对于预设物品(如岩石、道具等)类型的三维虚拟模型,季节更替表现为落叶、盖雪等,因此,第一覆盖物可以是落叶、雪花等,第二贴图可以是预设物品上覆盖落叶或雪花后的材质贴图。
71.对于建筑物或路面类型的三维虚拟模型,季节更替表现为落叶、盖雪等,因此,第二覆盖物也可以是落叶、雪花等,第二贴图可以是建筑物或路面上覆盖落叶或雪花后的材质贴图。
72.可选地,在三维虚拟模型的类型为地表的情况下,生成第一贴图对应的遮罩贴图包括:基于第一贴图,生成遮罩贴图;基于预设时刻,确定遮罩贴图的值域。
73.在一种可选的实施例中,对于地表类型的三维虚拟模型,可以采样两张相邻季节所需要替换的地表贴图,生成mask贴图,并基于当前季节更替的时间,确定mask贴图中的值域,其中,季节更替的时间越长,mask贴图中的值域越多,最后将所需在该阶段变换的放置在最后替换的贴图的alpha通道中。例如,如图2所示,从秋天更替成冬天,那过渡效果的mask图放在冬天贴图的alpha通道中。
74.在本发明实施例中,可以通过程序给的u_season_factors接口和tex_mask算法得到遮罩,其中,u_season_factors接口的定义如下:u_season_factors.x表示从冬季变为春
季,u_season_factors.y表示从春季变为夏季,u_season_factors.z表示从夏季变为秋季和u_season_factors.w表示从秋季变为冬季。
75.上述方法可以通过如下公式实现:
76.tex_mask_autum=saturate(pow(max(autumn_blend_tex.a ((u_season_factors.z u_season_factors.w)*2.0-1.0),0.0),3.0));//计算秋季变化的遮罩
77.tex_mask_snow=saturate(smoothstep(0.4,1.0,pow(max(snow_blend_tex.a (u_season_factors.w*2.0-1.0),0.0),3.0)));//计算冬季变化的遮罩
78.season_color=lerp(half4(diffuse_color.xyz,1.0),spring_blend_tex,u_season_factors.x);//过渡春季的贴图
79.season_color=lerp(season_color,autumn_blend_tex,tex_mask_autum);//过渡秋季的贴图
80.season_color=lerp(season_color,snow_blend_tex,tex_mask_snow);//过渡冬季的贴图
81.其中,autumn_blend_tex表示地表的秋季的贴图,autumn_blend_tex.a表示地表的秋季的贴图的alpha通道,snow_blend_tex表示地表在冬季的贴图,snow_blend_tex.a表示地表在冬季的贴图的alpha通道,diffuse_color.xyz表示地表的原始贴图,也即过渡夏季的贴图;spring_blend_tex表示地表在春季的贴图。
82.可选地,在三维虚拟模型的类型为树木的情况下,生成第一贴图对应的遮罩贴图包括:确定预设时刻对应的灰度值,其中,灰度值用于表征第一贴图的预设通道的灰度值,不同灰度值对应三维虚拟模型的不同部分;基于灰度值生成遮罩贴图。
83.在一种可选的实施例中,对于树木类型的三维虚拟模型,树木分为阔叶树及针叶树,春夏秋通过对树叶的染色来实现变化效果,阔叶树在冬天是会落叶枯萎的,因此,将阔叶树的树叶贴图的alpha通道多用处理,多用处理主要指的是将alpha值0-255值域分为三部分,灰度0-64作为树叶部分,映射到[0-1]就是0.25左右的值,将alpha的值减掉0.3在乘上个5以上的值在做截断,则得到剔除叶子后的遮罩,这样就可以做秋天到冬天落叶的变化了,75-128则是树干的部分,这部分是一直存在并且显示的,128-255则是雪的部分,可以将alpha的值减去0.5在乘上2并截断则得到雪的遮罩,可以用这个范围去采用雪的贴图或者颜色。针叶树则不用做枯萎部分,所以该雪的范围是灰度值128-255,树叶的灰度部分为75-128。
[0084]
在本发明实施例中,上述方法可以通过如下公式实现:
[0085]
snowdirty=saturate(saturate(diffuse_color.w-0.5)*2.0);//雪的遮罩
[0086]
leafalpha=saturate((diffuse_color.w-0.3)*5.0);//树叶的遮罩
[0087]
diffuse_color.a*=4.0;
[0088]
其中,diffuse_color.w表示树叶贴图的alpha通道。
[0089]
例如,对于如图3a所示的第一贴图和图3b所示的alpha贴图,灰度值128-255为盖雪得范围(可以用干介质笔刷刷一些),图中最白得部分;灰度值75-128为alpha通道(树干部分);灰度值64为树叶部分(用于做落叶变化,值最好控制就是64)。
[0090]
可选地,在三维虚拟模型的类型为草丛的情况下,生成第一贴图对应的遮罩贴图包括:获取草丛对应的第一通道贴图和第二通道贴图,其中,第一通道贴图用于表征三维虚
拟模型,第二通道贴图用于表征三维虚拟模型中除第二部分模型之外的其他部分模型;获取第一通道贴图和第二通道贴图的差值,得到遮罩贴图。
[0091]
在一种可选的实施例中,对于草丛类型的三维虚拟模型,给草丛加上了春夏季节开花的效果,如图4a所示,首先第一贴图中需要有花,如图4b所示,alpha贴图(即上述的第二通道贴图)要去掉花对应的部分,这样默认状态下花是不显示的,然后如图4c所示,需要一张额外的alpha贴图(即上述的第一通道贴图)记作mask,mask贴图中含有完整的花草范围。用mask贴图减去alpha贴图则是花的部分,记作flower_mask(即上述的遮罩贴图)。接着按照美术设计,春季的花是各种颜色,到夏天变成白色,春夏季节期间使用mask来减去alpha,则得到花的范围,并且在春季为花的部分染色。
[0092]
在本发明实施例中,上述方法可以通过如下公式实现:
[0093]
half4 alpha_tex=t_alpha_tex.sample(s_alpha_tex,uv0);//alpha贴图
[0094]
mask=saturate((alpha_tex.r-0.5)*2.0);//高光部分遮罩
[0095]
flower_alpha=alpha_tex.r*4.0;//包含花的遮罩
[0096]
flower_mask=saturate(step(0.0,flower_alpha)-step(0.2,p.diffuse_color.w));
[0097]
p.diffuse_color.w=lerp(p.diffuse_color.w,flower_alpha,smoothstep(0.4,1.0,u_season_factors.x u_season_factors.y));//开花效果的遮罩
[0098]
其中,sample()为现有的采样公式,用于采样得到贴图。
[0099]
可选地,在三维虚拟模型的类型为预设物品的情况下,生成第一贴图对应的遮罩贴图包括:确定第一覆盖物在模型上的覆盖范围;基于覆盖范围和第一贴图,生成遮罩贴图。
[0100]
在一种可选的实施例中,对于预设物品类型的三维虚拟模型,如图5所示,首先处理盖落叶的部分,落叶只出现在石头等上面有草或者青苔的模型,所以这里加了宏,需要美术手动开关,筛选需要加的模型,得到遮罩贴图。然后处理盖盖雪的部分,盖雪是几乎所有预设物品都会有,算法上剔除了侧面和底部的覆盖,但侧面留了个可调节的范围值,作为可以添加四季贴图的遮罩贴图。
[0101]
在本发明实施例中,落叶部分可以通过如下公式实现:
[0102]
half tex_mask=saturate(autumn_blend_tex.a u_season_factors.z*2.0-1.0);
[0103]
tex_mask=tex_mask*tex_mask*tex_mask;
[0104]
season_mask=p.world_normal.y*0.5 0.5;
[0105]
season_mask=season_mask-0.206;
[0106]
season_mask=saturate(2.0*season_mask*season_mask*season_mask);
[0107]
half shadow_mask=saturate(p.world_normal.y);
[0108]
season_mask*=tex_mask*shadow_mask;
[0109]
其中,p.world_normal.y表示世界空间中y轴向上的范围。
[0110]
在本发明实施例中,盖雪部分可以通过如下公式实现:
[0111]
half tex_mask=snow_blend_tex.a u_season_factors.w*2.0-1.0;
[0112]
tex_mask=tex_mask*tex_mask*tex_mask;
[0113]
tex_mask=smoothstep(0.4,1.0,tex_mask);//切换季节的遮罩
[0114]
season_mask=pow(p.world_normal.y*0.5 0.5,u_seasontex_range);
[0115]
half shadow_mask=saturate(p.world_normal.y);//剔除背面-y方向
[0116]
season_mask*=tex_mask*shadow_mask;
[0117]
其中,u_seasontex_range表示可调节的范围值。
[0118]
可选地,在三维虚拟模型的类型为建筑物或路面的情况下,生成第一贴图对应的遮罩贴图包括:基于第一贴图的预设通道的值,生成遮罩贴图。
[0119]
在一种可选的实施例中,对于建筑物或路面类型的三维虚拟模型,在第一贴图的alpha通道作为落叶和落雪贴图的遮罩,得到遮罩贴图,其中,春夏季节用的是原始贴图。例如,如图6a所示的路面的原始材质贴图,可以得到如图6b所示的遮罩贴图。
[0120]
在本发明实施例中,上述方法可以通过如下公式实现:
[0121]
half dirtymask=1.0-dirty_tex;
[0122]
dirtymask=pow(dirtymask,u_seasontex_range);
[0123]
season_mask=saturate(dirtymask*u_season_factors.z);
[0124]
其中,dirtymask表示落叶和落雪贴图的遮罩,dirty_tex表示原始材质贴图,u_seasontex_range表示可调节的范围值,其中,该值越大则季节变化效果越小。
[0125]
通过上述步骤,本发明提供了一种四季系统,可以在游戏中各类型模型用到的原有材质基础上加入四季更替表现,运用shader算法代替传统制作方法,以更加快速高效、低成本的开发流程,以及在手机平台能接受的性能开销,得到高质量的四季更替表现;四季系统的添加可以更好的增强玩家的沉浸体验,增加环境的真实感。
[0126]
根据本发明实施例,还提供了一种模型渲染装置,该装置可以执行上述实施例中的模型渲染方法,具体实现方案和应用场景与上述实施例相同,在此不做赘述。
[0127]
可选地,通过电子装置提供一图形用户界面,图形用户界面所显示的内容至少部分地包含一三维虚拟模型。
[0128]
图7是根据本发明实施例的一种模型渲染装置的示意图,如图7所示,该装置包括:
[0129]
第一获取模块72,用于获取三维虚拟模型的第一贴图,其中,第一贴图用于表征三维虚拟模型在游戏场景中的第一季节所使用的材质。
[0130]
第二获取模块74,用于获取三维虚拟模型的过渡贴图,其中,过渡贴图用于表征从第一季节过渡至第二季节的过程中,三维虚拟模型所使用的材质变化状态。
[0131]
混合模块76,用于将第一贴图和过渡贴图进行混合,生成目标贴图。
[0132]
渲染模块78,用于基于目标贴图对三维虚拟模型进行渲染。
[0133]
可选地,第二获取模块包括:确定单元,用于基于三维虚拟模型的类型,确定第二贴图,其中,第二贴图用于表征三维虚拟模型在第二季节所使用的材质;生成单元,用于生成第一贴图对应的遮罩贴图,其中,遮罩贴图用于表征从第一季节过渡至第二季节的预设时刻,第一贴图中出现变化的部分;添加单元,用于在第二贴图的预设通道中添加遮罩贴图,得到过渡贴图。
[0134]
可选地,确定单元还用于根据三维虚拟模型的类型,确定第二贴图为三维虚拟模型的部分或全部在第二季节所使用的材质贴图。
[0135]
可选地,确定单元还用于在三维虚拟模型的类型为第一预设类型的情况下,确定
第二贴图为三维虚拟模型在第二季节所使用的材质贴图,或三维虚拟模型上覆盖的覆盖物在第二季节所使用的材质贴图,其中,第一预设类型用于表征三维虚拟模型的材质贴图在季节发生变化的情况下会发生变化;在三维虚拟模型的类型为第二预设类型的情况下,确定第二贴图为三维虚拟模型上覆盖的覆盖物在第二季节所使用的材质贴图,其中,第二预设类型用于表征三维虚拟模型的材质贴图在季节发生变化的情况下保持不变。
[0136]
可选地,确定单元还用于在三维虚拟模型的类型为地表的情况下,确定第二贴图为三维虚拟模型在第二季节所使用的材质贴图;在三维虚拟模型的类型为树木的情况下,确定第二贴图为三维虚拟模型中第一部分模型在第二季节所使用的材质贴图;在三维虚拟模型的类型为草丛的情况下,确定第二贴图为三维虚拟模型中第二部分模型在第二季节所使用的材质贴图;在三维虚拟模型的类型为预设物品的情况下,确定第二贴图为三维虚拟模型上覆盖的第一覆盖物在第二季节所使用的材质贴图,其中,预设物品的材质贴图在季节变化的情况下保持不变;在三维虚拟模型的类型为建筑物或路面的情况下,确定第二贴图为三维虚拟模型上覆盖的第二覆盖物在第二季节所使用的材质贴图。
[0137]
可选地,生成单元还用于在三维虚拟模型的类型为地表的情况下,基于第一贴图,生成遮罩贴图,并基于预设时刻,确定遮罩贴图的值域。
[0138]
可选地,生成单元还用于在三维虚拟模型的类型为树木的情况下,确定预设时刻对应的灰度值,并基于灰度值生成遮罩贴图,其中,灰度值用于表征第一贴图的预设通道的灰度值,不同灰度值对应三维虚拟模型的不同部分。
[0139]
可选地,生成单元还用于在三维虚拟模型的类型为草丛的情况下,获取草丛对应的第一通道贴图和第二通道贴图,并获取第一通道贴图和第二通道贴图的差值,得到遮罩贴图,其中,第一通道贴图用于表征三维虚拟模型,第二通道贴图用于表征三维虚拟模型中除第二部分模型之外的其他部分模型。
[0140]
可选地,生成单元还用于在三维虚拟模型的类型为预设物品的情况下,确定第一覆盖物在模型上的覆盖范围,并基于覆盖范围和第一贴图,生成遮罩贴图。
[0141]
可选地,生成单元还用于在三维虚拟模型的类型为建筑物或路面的情况下,基于第一贴图的预设通道的值,生成遮罩贴图。
[0142]
根据本发明实施例,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述实施例中的模型渲染方法。
[0143]
根据本发明实施例,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器运行的程序,程序被至少一个处理器运行时执行上述实施例中的模型渲染方法。
[0144]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0145]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连
接,可以是电性或其它的形式。
[0146]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0147]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0148]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0149]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献