本公开涉及计算机,具体涉及一种流体交互效果的生成方法、装置、电子设备及可读存储介质。
背景技术:
1、在游戏中,为了增强游戏的真实感和沉浸感,使玩家能够更好地体验游戏中的环境,通常会模拟和展示流体效果,如通过计算机图形技术模拟和展示水、烟雾、火等和岩浆等流体在三维空间中的动态行为和视觉效果。模拟和展示流体的动态行为和视觉效果时,可以使用一系列平面图形(即“面片”)创建流体,并将创建的流体覆盖在流体效果的场景和地形形状中。为了使一系列平面图形看起来像真实的流体,会应用特殊的材质贴图,这些材质贴图能够模拟出流动的感觉,比如水波纹或是熔岩的缓缓流淌。
2、为了模拟更加细腻和真实的流体效果,通常会涉及到流体与周围环境以及玩家之间的互动。如当流体遇到障碍物(如石头或桥梁支柱)时,如何正确地绕过这些障碍物,而不是简单地穿透障碍物;如果游戏环境中有动态变化的地形(如沙子堆积或侵蚀),流体如何相应地改变流向和形态;以及玩家控制角色模型进入水中会产生涟漪等。目前,在游戏开发中,使用flowmap贴图预先定制流体与周围环境以及玩家之间的交互效果,即,在flowmap贴图中画好流体与周围环境以及玩家之间交互的地方。将flowmap贴图应用在游戏中实现流体与周围环境以及玩家之间的互动。但是,通过flowmap贴图实现流体与周围环境以及玩家之间的互动时,flowmap贴图中的交互是在游戏运行之前就已经确定好的,在游戏进行中,flowmap贴图无法响应玩家的行为或是流体周围的环境变化实现实时交互。若对每一个需要流体效果的区域,单独制作对应的flowmap贴图,则需要花费大量的时间和人力资源,且制作效率较低。
技术实现思路
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、本公开实施例提供的一种流体交互效果的生成方法,响应于针对流体交互效果的渲染指令,根据虚拟对象的尺寸生成流体基元模型;基于流体基元模型拼接得到流体模型;获取虚拟对象与流体模型在虚拟场景中交互的情况下对应的表面距离场数据和深度距离场数据;将预设流体纹理贴图映射至流体模型,并设置预设流体纹理贴图随时间在流体模型表面移动;根据表面距离场数据和深度距离场数据,生成虚拟对象与流体模型在虚拟场景中交互的情况下对应的尾流波形遮罩图和绕流波形遮罩图;根据预设置换贴图、尾流波形遮罩图和绕流波形遮罩图,对流体模型进行置换;对虚拟对象和置换后的流体模型进行渲染显示,得到虚拟对象与流体模型的流体交互效果。该方法中,可以适应虚拟对象和流体模型的交互情况,来实时生成虚拟对象与流体模型之间的动态交互效果,该方法保证实时性,性能消耗低,配置简单,效果表现佳,流体交互效果的制作效率提升。