本公开涉及计算机,尤其涉及一种水体效果的渲染方法、装置、设备及存储介质。
背景技术:
1、在游戏开发中,水面场景的视觉效果通常对玩家的游戏体验有着重要的影响。相关技术中可以通过采集场景内深度图的方式来实现水体效果的显示。然而,采样场景内深度图是一个较为消耗性能的操作,容易导致游戏过程中的卡顿,降低水体效果的渲染效率。
技术实现思路
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、根据所述目标场景的尺寸,创建初始遮罩贴图;所述初始遮罩贴图的所有像素点均为所述第一颜色值;
31、基于所述目标物体在所述目标场景内的坐标,确定所述坐标在所述初始遮罩贴图中对应的像素点;
32、将所述对应的像素点设置为所述第二颜色值,得到所述二值遮罩贴图。
33、在一个可选的实施例中,所述确定所述目标场景内的目标物体,包括:
34、创建检测盒体,所述检测盒体的底部高度为所述水体模型的水面高度;
35、在所述目标场景的区域,基于所述检测盒体进行碰撞检测,确定与所述检测盒体接触的所述目标物体。
36、在一个可选的实施例中,所述方法还包括:
37、将预设漩涡贴图应用于所述水体模型的预设区域;
38、根据所述预设区域的每一顶点到所述预设漩涡贴图中心的距离,确定所述每一顶点的下沉深度;
39、将所述下沉深度应用于所述预设区域中对应的顶点,得到具有漩涡显示效果的水体模型。
40、根据本公开实施例的第二方面,提供一种水体效果的渲染装置,所述装置包括:
41、目标场景获取模块,被配置为获取目标游戏引擎中设置的目标场景,所述目标场景包括水体模型和至少一个物体模型;
42、目标物体确定模块,被配置为确定所述目标场景内的目标物体,所述目标物体为所述至少一个物体模型中高于所述水体模型的水面的物体;
43、二值遮罩贴图生成模块,被配置为基于所述目标物体在所述目标场景中的位置,生成二值遮罩贴图;所述二值遮罩贴图包括第一颜色区域和第二颜色区域,所述第二颜色区域为所述目标物体对应的区域;
44、水体渲染区域确定模块,被配置为基于所述第二颜色区域,在所述第一颜色区域中确定水体渲染区域;
45、预设效果渲染模块,被配置为对所述水体模型中的效果渲染区域进行预设效果渲染,得到带有所述预设效果的水体模型,所述效果渲染区域对应于所述水体渲染区域。
46、在一个可选的实施例中,所述水体渲染区域确定模块包括:
47、目标区域确定单元,被配置为针对所述二值遮罩贴图中的每一像素点,在所述二值遮罩贴图中确定目标区域,所述目标区域为以所述像素点为中心,以预设宽度为边长的正方形区域;
48、最近距离确定单元,被配置为在所述目标区域存在参考像素点的情况下,确定所述像素点到所述参考像素点的最近距离,所述参考像素点为所述第二颜色区域的像素点;
49、最近距离处理单元,被配置为基于所述预设宽度,对所述最近距离进行归一化处理,得到所述像素点对应的灰度值;
50、渲染区域确定单元,被配置为将灰度值满足预设条件的像素点形成的区域,确定为所述水体渲染区域,所述预设条件为灰度值大于所述第一颜色值且小于所述第二颜色值。
51、在一个可选的实施例中,在所述对所述水体模型中的效果渲染区域进行预设效果渲染之前,所述装置还包括:
52、羽化遮罩贴图生成模块,被配置为基于所述二值遮罩贴图中的每一像素点对应的灰度值,生成羽化遮罩贴图;
53、模糊遮罩贴图生成模块,被配置为对所述羽化遮罩贴图进行模糊处理,生成模糊遮罩贴图;
54、模糊遮罩贴图应用模块,被配置为将所述模糊遮罩贴图应用于所述水体模型。
55、在一个可选的实施例中,所述装置还包括:
56、漩涡预制体创建模块,被配置为创建漩涡预制体模型,所述漩涡预制体模型包括漩涡边缘区域和漩涡凹陷区域;
57、漩涡预制体整合模块,被配置为将所述漩涡预制体模型整合至所述水体模型;所述漩涡边缘区域位于所述水体模型的水面,所述漩涡凹陷区域位于所述水体模型的水面下方;
58、预设漩涡效果渲染模块,被配置为在所述漩涡凹陷区域渲染预设漩涡效果。
59、在一个可选的实施例中,所述预设漩涡效果渲染模块包括:
60、透明图形渲染单元,被配置为在所述漩涡边缘区域与所述漩涡凹陷区域的交界线渲染透明圆形,所述透明圆形用于限定所述漩涡凹陷区域的渲染范围;
61、模板值设置单元,被配置为在所述目标游戏引擎的模板缓冲区中,将所述透明圆形区域的模板值设置为预设模板值;所述模板缓冲区用于存储像素的模板值,使渲染过程在与对应的模板值匹配的像素形成的区域进行;
62、预设漩涡效果配置单元,被配置为将所述预设漩涡效果的模板值配置为所述预设模板值;
63、预设漩涡效果渲染单元,被配置为渲染所述预设漩涡效果。
64、在一个可选的实施例中,所述在所述漩涡凹陷区域渲染预设漩涡效果之后,所述装置还包括:
65、水体流向图创建模块,被配置为创建与所述漩涡凹陷区域匹配的水体流向图;所述水体流向图用于记录所述漩涡凹陷区域外围的水流的流动方向和流动速度;
66、水体流向图渲染模块,被配置为基于所述水体流向图对所述水体模型进行渲染,得到具有漩涡显示效果的水体模型。
67、在一个可选的实施例中,所述二值遮罩贴图生成模块包括:
68、初始遮罩贴图创建单元,被配置为根据所述目标场景的尺寸,创建初始遮罩贴图;所述初始遮罩贴图的所有像素点均为所述第一颜色值;
69、像素点确定单元,被配置为基于所述目标物体在所述目标场景内的坐标,确定所述坐标在所述初始遮罩贴图中对应的像素点;
70、二值遮罩贴图生成单元,被配置为将所述对应的像素点设置为所述第二颜色值,得到所述二值遮罩贴图。
71、在一个可选的实施例中,所述目标物体确定模块包括:
72、检测盒体创建单元,被配置为创建检测盒体,所述检测盒体的底部高度为所述水体模型的水面高度;
73、碰撞检测单元,被配置为在所述目标场景的区域,基于所述检测盒体进行碰撞检测,确定与所述检测盒体接触的所述目标物体。
74、在一个可选的实施例中,所述装置还包括:
75、预设漩涡贴图应用模块,被配置为将预设漩涡贴图应用于所述水体模型的预设区域;
76、下沉深度确定模块,被配置为根据所述预设区域的每一顶点到所述预设漩涡贴图中心的距离,确定所述每一顶点的下沉深度;
77、下沉深度应用模块,被配置为将所述下沉深度应用于所述预设区域中对应的顶点,得到具有漩涡显示效果的水体模型。
78、根据本公开实施例的第三方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由处理器加载并执行以实现如上述第一方面中任一项所述的方法。
79、根据本公开实施例的第四方面,提供一种电子设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如上述第一方面中任一项所述的方法。
80、根据本公开实施例的第五方面,提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,计算机设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得所述计算机设备执行如上述第一方面中任一项所述的方法。
81、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
82、实施本公开,具有以下有益效果:
83、通过确定高于水面的目标物体在场景中的位置,生成二值遮罩贴图,基于二值遮罩贴图的第二颜色区域,在第一颜色区域中确定水体渲染区域,避免对场景深度图的依赖,简化了水体效果的实现过程,减少了不必要的计算开销,提高了渲染效率;在水体渲染区域对应的效果渲染区域进行预设效果渲染,视觉效果更加真实,增强用户对场景的沉浸感。
84、根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。