虚拟水面波纹生成方法、装置、存储介质与电子设备与流程

未命名 09-22 阅读:64 评论:0


1.本公开涉及计算机技术领域,尤其涉及一种虚拟水面波纹生成方法、虚拟水面波纹生成装置、计算机可读存储介质与电子设备。


背景技术:

2.在虚拟场景中,通常需要为虚拟水面中的漂浮物或露出水面的虚拟物体制作水面波纹效果,以使虚拟场景更具生动性。
3.相关技术中,通常将四边形网格弯曲成平整的圆形,再利用波纹贴图对该网格进行渲染以生成的虚拟水面的波纹效果,显然,该方法生成的虚拟水面的波纹真实度较低,美观性不强,使得用户体验较差。


技术实现要素:

4.本公开提供了一种虚拟水面波纹生成方法、虚拟水面波纹生成装置、计算机可读存储介质与电子设备,进而至少在一定程度上改善虚拟水面波纹真实度低的问题。
5.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
6.根据本公开的第一方面,提供一种虚拟水面波纹生成方法,包括:获取虚拟场景中的第一场景信息,并基于所述第一场景信息获取目标波纹贴图,其中,所述虚拟场景包括虚拟水面,所述第一场景信息是基于所述虚拟场景获取的;基于所述目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据所述目标波纹贴图得到的第二场景信息,获取所述目标波纹粒子的初始运动方向与所述目标波纹粒子的尺寸,以对所述目标波纹粒子进行初始化;根据预设风向参数、所述目标波纹粒子的初始运动方向与初始运动速度获取所述目标波纹粒子的实际运动方向和实际运动速度,并基于所述实际运动方向和实际运动速度设置所述目标波纹粒子的运动方向和运动速度,以在虚拟水面上生成波纹效果。
7.根据本公开的第二方面,提供一种虚拟水面波纹生成装置,包括:目标波纹贴图获取模块,被配置为获取虚拟场景中的第一场景信息,并基于所述场景信息获取目标波纹贴图,其中,所述虚拟场景包括虚拟水面,所述第一场景信息是基于所述虚拟场景获取的;目标波纹粒子初始化模块,被配置为基于所述目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据所述目标波纹贴图得到的第二场景信息,获取所述目标波纹粒子的初始运动方向与所述目标波纹粒子的尺寸,以对所述目标波纹粒子进行初始化;运动方向与运动速度设置模块,被配置为根据预设风向参数、所述目标波纹粒子的初始运动方向与初始运动速度获取所述目标波纹粒子的实际运动方向和实际运动速度,并基于所述实际运动方向和实际运动速度设置所述目标波纹粒子的运动方向和运动速度,以在虚拟水面上生成波纹效果。
8.根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的虚拟水面波纹生成方法及其可能的
实现方式。
9.根据本公开的第四方面,提供一种电子设备,包括:处理器;存储器,用于存储所述处理器的可执行指令。其中,所述处理器配置为经由执行所述可执行指令,来执行上述第一方面的虚拟水面波纹生成方法及其可能的实现方式。
10.本公开的技术方案具有以下有益效果:
11.一方面,基于虚拟场景中的场景信息获取目标波纹贴图,并依据目标波纹贴图生成目标波纹粒子,再根据预设风向参数设置目标波纹粒子的实际运动方向和实际运动速度,使得本方案能够呈现出水面波纹的细节信息,提升水面波纹效果的真实度和美观度,进一步增强了用户的沉浸感;另一方面,基于预设风向参数和目标波纹粒子的初始运动方向和初始运动速度设置目标波纹粒子的实际运动方向和实际运动速度,可以通过修改预设风向参数实现波动程度不同的水面波纹效果,增强了水面波纹效果的多样性与灵活性;再一方面,实现了自动化生成虚拟水面波纹的方法,大大提高了虚拟水面波纹效果的生成效率。
12.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
13.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1a示出一种圆形网格的示意图;
15.图1b示出一种渲染后的圆形网格的示意图;
16.图1c示出一种虚拟水面波纹的示意图;
17.图2示出本示例性实施方式的系统运行架构;
18.图3示出本示例性实施方式中一种虚拟水面波纹生成方法的流程图;
19.图4a示出本示例性实施方式中一种第一场景信息包括场景深度信息时的灰度遮罩贴图;
20.图4b示出本示例性实施方式中一种第一场景信息包括场景深度信息时的虚拟水面波纹示意图;
21.图5a示出本示例性实施方式中一种第一场景信息包括sdf信息时的灰度遮罩贴图;
22.图5b示出本示例性实施方式中一种第一场景信息包括sdf信息时的虚拟水面波纹示意图;
23.图6示出本示例性实施方式中一种获取目标波纹贴图的流程图;
24.图7示出本示例性实施方式中一种获取交点信息、尺寸信息以及法线信息的流程图;
25.图8示出本示例性实施方式中一种获取目标波纹粒子的流程图;
26.图9a示出虚拟水面中的球形虚拟障碍物的示意图;
27.图9b示出本示例性实施方式中一种目标波纹粒子所在区域的示意图;
28.图10示出本示例性实施方式中一种虚拟水面波纹的示意图;
29.图11示出本示例性实施方式中另一种虚拟水面波纹生成方法的流程图;
30.图12示出本示例性实施方式中一种虚拟水面波纹生成装置的结构示意图;
31.图13示出本示例性实施方式中一种电子设备的结构示意图。
具体实施方式
32.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
33.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
34.在非真实渲染(non-photorealistic rendering,npr)中,工作人员通常是利用四边形网格弯曲成图1a所示的圆形网格,再利用波浪贴图对图1a的圆形网格进行渲染,得到图1b所示的水面波纹,并将图1b所示的水面波纹应用于虚拟场景中得到图1c所示的虚拟水面波纹效果;然而,该方法生成的虚拟水面波纹真实度低,且美观性较弱,降低了用户体验。
35.鉴于上述一个或多个问题,本公开示例性实施方式首先提供一种虚拟水面波纹生成方法。下面结合图2对本示例性实施方式运行环境的系统架构进行说明。
36.参考图2所示,系统架构200可以包括终端设备210。终端设备210可以是笔记本电脑、台式电脑、平板电脑等电子设备,终端设备210可以用于获取虚拟场景中的第一场景信息。
37.可以由终端设备210执行本示例性实施方式中的虚拟水面波纹生成方法。例如,在游戏场景中,终端设备210可以是工作人员进行游戏制作的计算机,虚拟场景可以是需要生成虚拟水面波纹的游戏场景,终端设备210可以通过执行虚拟水面波纹生成方法,在虚拟场景中获取第一场景信息,并基于第一场景信息获取目标波纹贴图,从而根据目标波纹贴图获取目标波纹粒子,再通过设置目标波纹粒子的实际运动速度和实际运动方向,以在虚拟场景中向玩家呈现真实度高的虚拟水面波纹效果,进一步提升玩家的沉浸感。
38.由上可知,本示例性实施方式中的虚拟水面波纹生成方法可以由上述终端设备210执行。
39.下面结合图3对虚拟水面波纹生成方法进行说明。图3示出了虚拟水面波纹生成方法的示例性流程,包括以下步骤s310至s330:
40.步骤s310,获取虚拟场景中的第一场景信息,并基于第一场景信息获取目标波纹
贴图,其中,虚拟场景包括虚拟水面,第一场景信息是基于虚拟场景获取的;
41.步骤s320,基于目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据目标波纹贴图得到的第二场景信息,获取目标波纹粒子的初始运动方向与目标波纹粒子的尺寸,以对目标波纹粒子进行初始化;
42.步骤s330,根据预设风向参数、目标波纹粒子的初始运动方向与初始运动速度获取目标波纹粒子的实际运动方向和实际运动速度,并基于实际运动方向和实际运动速度设置目标波纹粒子的运动方向和运动速度,以在虚拟水面上生成波纹效果。
43.基于上述方法,一方面,基于虚拟场景中的场景信息获取目标波纹贴图,并依据目标波纹贴图生成目标波纹粒子,再根据预设风向参数设置目标波纹粒子的实际运动方向和实际运动速度,使得本方案能够呈现出水面波纹的细节信息,提升水面波纹效果的真实度和美观度,进一步增强了用户的沉浸感;另一方面,基于预设风向参数和目标波纹粒子的初始运动方向和初始运动速度设置目标波纹粒子的实际运动方向和实际运动速度,可以通过修改预设风向参数实现波动程度不同的水面波纹效果,增强了水面波纹效果的多样性与灵活性;再一方面,实现了自动化生成虚拟水面波纹的方法,大大提高了虚拟水面波纹效果的生成效率。
44.下面对图3中的每个步骤进行具体说明。
45.参考图3,在步骤s310中,获取虚拟场景中的第一场景信息,并基于第一场景信息获取目标波纹贴图,其中,虚拟场景包括虚拟水面,第一场景信息是基于虚拟场景获取的。
46.上述第一场景信息是基于虚拟场景获取的用于生成虚拟水面波纹的信息,例如,第一场景信息可以包括虚拟水面中的虚拟障碍物的尺寸信息,法线信息等;目标波纹贴图是用于生成波纹粒子的贴图,示例性的,目标波纹贴图可以是多个渲染目标(render target,rt)叠加得到的。
47.下面对通过第一场景信息生成虚拟水面波纹的几种方式进行说明。
48.在一种实施方式中,第一场景信息可以包括虚拟场景的场景深度信息,上述方法还可以包括:根据场景深度信息获取虚拟障碍物与虚拟水面的交点信息,并基于该交点信息生成灰度遮罩贴图,根据该灰度遮罩贴图生成虚拟水面的波纹效果。
49.其中,虚拟障碍物包括存在与虚拟水面中的虚拟漂浮物,或其他影响虚拟水面流动的虚拟模型,本公开对虚拟障碍物的具体类型不作特殊限定,例如,虚拟障碍物可以是虚拟水面中的虚拟石块、虚拟水草等;灰度遮罩贴图可以用于反映虚拟场景中的模型的距离信息。
50.举例而言,可以首先基于虚拟场景中的场景深度信息获取露出水面的虚拟障碍物与虚拟水面的交叉点的信息,在获取交叉点的信息后,可以进一步得到如图4a所示的场景灰度遮罩贴图,再将该灰度遮罩贴图(grayscale mask)与预设波纹形态贴图进行混合,以得到如图4b所示的水面波纹效果。
51.通过场景深度获取虚拟水面波纹效果的方式能够通过在虚拟水面添加波纹运算的方式生成虚拟波纹效果,计算方式较为简单,计算复杂度较低。
52.由于场景深度反映的是虚拟场景中的虚拟模型与虚拟摄像机之间的距离信息,因此,还可以通过反映虚拟模型之间距离的有符号距离场(signed distance field,sdf)信息生成虚拟水面的波纹效果:在一种实施方式中,可以获取虚拟场景中的sdf信息,并基于
sdf信息获取虚拟场景的灰度遮罩贴图,根据该灰度遮罩贴图生成虚拟水面的波纹效果。
53.其中,sdf信息储存了场景内模型的空间距离信息。sdf信息与场景深度信息的区别在于,场景深度信息是储存基于已经渲染的摄像机视角平面所看到的虚拟模型的深度信息;而sdf则与虚拟摄像机无关,它储存的是场景中虚拟模型与周围各个虚拟模型之间的距离信息。
54.举例而言,可以通过获取虚拟场景的sdf信息生成如图5a所示的灰度遮罩贴图,并基于灰度遮罩贴图生成如图5b所示的虚拟水面的波纹效果。
55.由于sdf信息是基于三维空间生成的,因此基于sdf信息生成的虚拟水面波纹效果立体感更强。
56.此外,由于获取虚拟场景的sdf信息需要耗费较高的运算量,因此,基于场景深度信息生成虚拟水面波纹的方法可以应用于移动端的虚拟水面波纹效果渲染,而基于sdf信息生成虚拟水面波纹的方法,可以应用于配置较高的终端的虚拟水面波纹效果渲染。
57.通过图4b和图5b可以看出,上述两种虚拟水面波纹生成方法在面对不同尺寸的虚拟障碍物时,所生成的波纹效果厚度相同,而实际情况中,不同尺寸的障碍物对水流的阻力不同,不同的障碍物所产生的波纹效果厚度应当是不同的,因此,在一种实施方式中,上述第一场景信息包括虚拟水面与虚拟障碍物的交点信息,缩放后的虚拟障碍物的尺寸信息,以及虚拟障碍物的法线信息,上述获取虚拟场景中的第一场景信息,并基于第一场景信息获取目标波纹贴图,可以包括下述步骤:
58.在虚拟障碍物为静态模型的情况下,根据虚拟摄像机所拍摄到的带有虚拟障碍物的画面获取交点信息、尺寸信息以及法线信息,并将交点信息、尺寸信息以及法线信息添加到目标材质中,以获取交点信息纹理、尺寸信息纹理,以及法线信息纹理,对获取到的交点信息纹理、尺寸信息纹理,以及法线信息纹理进行叠加,以得到目标波纹贴图;在所述虚拟障碍物为动态模型的情况下,通过在虚拟场景中发射虚拟光线,基于虚拟光线与虚拟障碍物的交点获取第一场景信息,并将第一场景信息输出至目标纹理中,以获取目标波纹贴图。
59.其中,交点信息纹理,尺寸信息纹理以及法线信息纹理分别可以是带有交点信息的rt,带有尺寸信息的rt,以及带有法线信息的rt。静态模型可以是在获取第一场景信息时,将顶点和阴影信息同时传输到渲染管线,执行一次绘制调用命令即可进行渲染的模型,本公开对静态模型的具体内容不作特殊限定,例如静态模型可以包括静态网格物体(static mesh)。而动态模型是在获取第一场景信息后,通过在渲染线程中不断更新渲染命令得到的模型,示例性的,动态模型可以包括landscape模型等其他模型。本示例性实施方式的一种示例性流程可以如图6所示:
60.步骤s601,开始获取第一场景信息;
61.步骤s602,在虚拟障碍物为静态模型的情况下,根据虚拟摄像机所拍摄到的带有虚拟障碍物的画面获取交点信息、尺寸信息以及法线信息;
62.步骤s603,将交点信息、尺寸信息以及法线信息添加到目标材质中,以获取交点信息纹理、尺寸信息纹理,以及法线信息纹理;
63.步骤s604,对获取到的交点信息纹理、尺寸信息纹理,以及法线信息纹理进行叠加,以得到目标波纹贴图;
64.步骤s605,在虚拟障碍物为动态模型的情况下,通过在虚拟场景中发射虚拟光线,
基于虚拟光线与虚拟障碍物的交点获取第一场景信息;
65.步骤s606,将第一场景信息输出至目标纹理中,以获取目标波纹贴图。
66.举例而言,为了根据虚拟场景中的虚拟第一场景信息获取目标波纹贴图,对于静态模型,可以基于虚拟摄像机所拍摄到的包含虚拟障碍物与虚拟水面的画面获取交点信息,尺寸信息和法线信息,并将交点信息,尺寸信息和法线信息分别渲染到目标纹理,以得到交点信息纹理、尺寸信息纹理,以及法线信息纹理,再对这三种纹理进行叠加,再进行格式转换,以获取静态纹理格式的目标波纹贴图;对于动态模型,可以通过线性光线追踪(line raytracer)的方式在虚拟场景中不断巡回,并将读取到的虚拟障碍物表面的行信息和列信息进行处理,以得到第一场景信息,再将第一场景信息输出至目标纹理,从而得到目标波纹贴图。
67.基于图6的方法,可以根据虚拟障碍物所属的模型类别采用不同的方式获取第一场景信息,从而提升了第一场景信息的获取效率和第一场景信息的完整度。
68.在一种实施方式中,上述根据虚拟摄像机所拍摄到的带有虚拟障碍物的画面获取交点信息、尺寸信息以及法线信息,如图7所示,可以包括步骤s710~s730:
69.步骤s710,基于虚拟场景的画面中虚拟障碍物与虚拟水面的交点的位置信息确定交点信息;
70.步骤s720,按照预设缩放比例对画面中的虚拟障碍物进行缩放,并根据缩放后的虚拟障碍物的尺寸获取尺寸信息;
71.步骤s730,将画面中的虚拟障碍物表面的法线向量转换成颜色值,基于颜色值获取法线信息。
72.其中,预设缩放比例是将虚拟障碍物的尺寸缩放至目标数据范围的依据,本公开对预设缩放比例的具体数值不作特殊限定。
73.举例而言,可以根据虚拟障碍物与虚拟水面的交点的位置坐标获取交点信息,再根据预设缩放比例将虚拟障碍物的尺寸缩放至0至1之间,并将缩放后的虚拟障碍物的尺寸作为尺寸信息,还可以利用游戏引擎unity中的packnormaltorgb()函数将虚拟障碍物表面的法线向量转换为对应的rgb颜色值,以根据该rgb颜色值获取法线信息。
74.基于图7的方法,分别获取交点信息,尺寸信息以及法线信息,并进一步得到三种纹理信息,从而生成目标波纹贴图,以用于渲染虚拟水面的波纹效果,提高了用于生成虚拟水面波纹的数据丰富度,使得生成的虚拟水面波纹更具生动性和真实性。
75.由于粒子渲染可以用于渲染液体、气体等流体模型,因此在步骤s320中,可以基于目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据目标波纹贴图中存储的第二场景信息获取目标波纹粒子的初始运动方向与目标波纹粒子尺寸,以对目标波纹粒子进行初始化。
76.其中,粒子是一种向量,通常用于生成模拟液体、气体等流体模型的移动效果;候选波纹粒子是根据目标波纹贴图批量生成的波纹粒子;目标波纹粒子可以是用于生成虚拟障碍物所产生的虚拟水面波纹的粒子;目标波纹粒子的初始化可以是为目标波纹粒子的相关指标设置默认值,例如,初始化可以包括对目标波纹粒子的运动方向、尺寸等设置初始值。
77.在一种实施方式中,在基于目标波纹贴图在候选波纹粒子中确定目标波纹粒子,
并根据目标波纹贴图得到的第二场景信息,获取目标波纹粒子的初始运动方向与目标波纹粒子的尺寸,以对目标波纹粒子进行初始化前,上述方法还可以包括:
78.解析目标波纹贴图,以获取目标波纹贴图中存储的第二场景信息,其中,第二场景信息包括虚拟水面与虚拟障碍物的交点信息,虚拟障碍物的尺寸信息,以及虚拟障碍物的法线信息。
79.其中,第二场景信息是用于生成候选波纹粒子的信息,第二场景信息与上述第一场景信息的内容相同,但第二场景信息与第一场景信息的获取方式不同,第一场景信息是在虚拟场景中提取得到的信息,第二场景信息是通过对第一场景信息得到的目标波纹贴图进行解析得到的。
80.举例而言,可以通过游戏引擎unity自带的decodelightmap函数对目标波纹贴图进行解析,再通过应用框架niagara将目标波纹贴图中存储的第一场景信息转换为能够用于生成波浪粒子的第二场景信息。
81.通过对目标波纹贴图进行解析,能够获取用于生成波纹粒子的第二场景信息,有利于提高波纹粒子的生成效率。
82.在一种实施方式中,上述基于目标波纹贴图在候选波纹粒子中确定目标波纹粒子,如图8所示,可以包括步骤s810~s820:
83.步骤s810,基于目标波纹贴图的交点信息获取目标波纹粒子的uv坐标;
84.步骤s820,根据目标波纹粒子的uv坐标在候选波纹粒子中确定目标波纹粒子。
85.举例而言,若需要生成图9a中圆球虚拟障碍物的水面波纹,则首先可以通过立体渲染采样目标波纹贴图的纹理,以在虚拟体积盒(volume box)中的随机位置生成候选波纹粒子,再根据目标波纹贴图中虚拟障碍物与虚拟水面接触的交点信息确定目标波纹粒子的uv坐标,并根据目标波纹粒子的uv坐标在虚拟体积盒的候选波纹粒子中确定目标波纹粒子,如图9b中的阴影区域的粒子即为目标波纹粒子所在区域,在确定目标波纹粒子后,可将虚拟体积盒中其余的候选波纹粒子进行删除,以获取圆球虚拟障碍物的水面波纹。
86.基于图8的方法,在候选波纹粒子中确定目标波纹粒子,能够排除其他候选波纹粒子对生成的虚拟水面波纹的干扰,有利于提高虚拟水面波纹的精确度。
87.在一种实施方式中,上述在基于目标波纹贴图中的交点信息获取目标波纹粒子的uv坐标前,还可以包括下述步骤:
88.基于候选波纹粒子的世界坐标与波纹粒子虚拟发射器的世界坐标的差获取候选波纹粒子的相对位置坐标;
89.将相对位置坐标缩放至预设数值范围,并基于缩放后的相对位置坐标计算候选波纹粒子的uv坐标。
90.其中,预设数值范围可以是缩放后的相对位置坐标的数据范围,示例性的,由于uv坐标范围是0~1,因此,可以将预设数值范围设置为-1~1,以便于计算。
91.举例而言,在获取到候选波纹粒子的相对位置坐标后,可以根据相对位置的坐标与候选波纹粒子的总体积的比值,将相对位置坐标缩放至预设数值范围-1~1内,由于uv坐标的数据范围是0~1,因此,可以将缩放后的相对位置坐标先乘0.5,再加0.5,以将相对位置坐标转换为数据范围在0~1的uv坐标。
92.通过相对位置坐标获取候选波纹粒子的uv坐标,计算逻辑较为简单,有利于降低
计算复杂度,从而提高方法的整体运行效率。
93.在确定目标波纹粒子后,可以对目标波纹粒子进行初始化,在一种实施中,上述根据目标波纹贴图中存储的第二场景信息获取目标波纹粒子的初始运动方向与目标波纹粒子的尺寸,可以包括下述步骤:
94.基于第二场景信息中的法线信息确定目标波纹粒子的初始运动方向,并根据第二场景信息中的尺寸信息计算目标波纹粒子的尺寸。
95.举例而言,可以在应用框架niagara中,根据目标波纹贴图获取交点信息,并基于交点信息获取粒子生成位置,在粒子生成位置处批量生成候选波浪粒子,将候选波浪粒子的世界坐标转换为uv坐标,并利用uv坐标对目标波纹贴图进行采样,以获取目标波纹粒子,再根据目标波纹贴图中的法线信息确定目标波纹粒子的初始运动方向,基于目标波纹贴图中的尺寸信息计算目标波纹粒子的尺寸。
96.由于生成的目标波纹粒子的根据目标波纹贴图中存储的虚拟障碍物的尺寸信息确定的,因此可以呈现不同尺寸的虚拟障碍物能够产生不同大小的虚拟水面的波纹效果,使得生成的虚拟水面的波纹更具真实感,进一步提高用户的沉浸感。
97.为了实现虚拟水面波纹随风波动的效果,继续参考图3,在步骤s330中,根据预设风向参数、目标波纹粒子的初始运动方向与初始运动速度获取目标波纹粒子的实际运动方向和实际运动速度,并基于实际运动方向和实际运动速度设置目标波纹粒子的运动方向和运动速度,以在虚拟水面上生成波纹效果。
98.其中,预设风向参数可以的表征风向和风的强度的向量,目标波纹粒子的实际运动方向和实际运动速度可以是目标波纹粒子受预设风向参数影响后的波动方向和运动速度。
99.在一种实施方式中,上述根据预设风向参数、目标波纹粒子的初始运动方向与初始运动速度获取目标波纹粒子的实际运动方向和实际运动速度,可以包括下述步骤:
100.根据预设风向参数与初始运动方向确定目标波纹粒子的实际运动方向;
101.基于预设风向参数与初始运动速度的和确定目标波纹粒子的实际运动速度。
102.举例而言,预设风向参数可以是一种包括风向和风强度的风向向量,可以通过虚幻引擎(unreal engine,ue)将风向向量传入niagara,以在niagara中根据风向向量与目标波纹粒子的初始运动方向确定目标波纹粒子的实际运动方向,并根据风向向量与初始运动速度的和计算目标波纹粒子的实际运动速度。
103.通过预设风向参数与目标波纹粒子的初始运动方向和初始运动速度,可以得到如图10所示的随风向大小变化而动态变化的波纹效果,使得虚拟水面的波纹效果更具真实感,还可以通过调整预设风向参数获取不同的波纹效果,进一步提高了波纹效果的多样性和灵活性。
104.基于上述方法,不仅提高了虚拟水面波纹效果的真实度,还提升了虚拟水面波纹的多样性和灵活性,改善了用户体验。
105.在一种实施方式中,本公开的一种示例性流程可以如图11所示,可以包括步骤s1101~s1110:
106.步骤s1101,基于水面高度信息获取虚拟障碍物与虚拟水面的交点信息,并将该交点信息转换为rgb颜色值,将该颜色值添加至目标材质中,以得到交点信息纹理;
107.步骤s1102,将虚拟障碍物的尺寸缩放至0~1范围内,并将缩放后的尺寸信息转换为rgb颜色值,将该颜色值添加至目标材质中,以得到尺寸信息纹理;
108.步骤s1103,获取虚拟障碍物表面的法向量,并将该法向量转换为rgb颜色值,将该颜色值添加至目标材质中,以得到法线信息纹理;
109.步骤s1104,将交点信息纹理、尺寸信息纹理以及法线信息纹理进行叠加,并将叠加后的纹理转换为静态纹理,以获取目标波纹贴图;
110.步骤s1105,对目标波纹贴图进行解码,以获取虚拟障碍物与虚拟水面的交点信息,虚拟障碍物的尺寸信息以及虚拟障碍物的法线信息;
111.步骤s1106,将虚拟障碍物与虚拟水面的交点信息,虚拟障碍物的尺寸信息,虚拟障碍物的法线信息以及预设风向参数,波纹粒子的初始运动速度传入niagara应用框架;
112.步骤s1107,基于目标波纹贴图的交点信息获取目标波纹粒子的uv坐标;
113.步骤s1108,根据目标波纹粒子的uv坐标在候选波纹粒子中确定目标波纹粒子;
114.步骤s1109,根据上述尺寸信息确定目标波纹粒子的大小,基于上述法线信息确定目标波纹粒子的初始运动方向;
115.步骤s1110,通过预设风向参数与初始运动方向设置目标波纹粒子的实际运动方向,基于预设风向参数与初始运动速度的和设置目标波纹粒子的实际运动速度。
116.基于图11中的方法,能够获取真实度高的随风变化的虚拟水面波纹的动态效果。
117.为了提升虚拟水面波纹生成方法的便利性,在一种实施方式中,可以将上述图11中的流程集成在虚幻引擎的ui按钮“generate water foam particles”中,以实现一键生成虚拟水面波纹效果,从而大大提升工作效率。
118.本公开的示例性实施方式还提供一种虚拟水面波纹生成装置。如图12所示,该虚拟水面波纹生成装置1200可以包括:
119.目标波纹贴图获取模块1210,被配置为获取虚拟场景中的第一场景信息,并基于第一场景信息获取目标波纹贴图,其中,虚拟场景包括虚拟水面,第一场景信息是基于虚拟场景获取的;
120.目标波纹粒子初始化模块1220,被配置为基于目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据目标波纹贴图得到的第二场景信息,获取目标波纹粒子的初始运动方向与目标波纹粒子的尺寸,以对目标波纹粒子进行初始化;
121.运动方向与运动速度设置模块1230,被配置为根据预设风向参数、目标波纹粒子的初始运动方向与初始运动速度获取目标波纹粒子的实际运动方向和实际运动速度,并基于实际运动方向和实际运动速度设置目标波纹粒子的运动方向和运动速度,以在虚拟水面上生成波纹效果。
122.在一种实施方式中,上述第一场景信息包括虚拟水面与虚拟障碍物的交点信息,缩放后的虚拟障碍物的尺寸信息,以及虚拟障碍物的法线信息,上述获取虚拟场景中的第一场景信息,并基于第一场景信息获取目标波纹贴图,可以包括:
123.在虚拟障碍物为静态模型的情况下,根据虚拟摄像机所拍摄到的带有虚拟障碍物的画面获取交点信息、尺寸信息以及法线信息,并将交点信息、尺寸信息以及法线信息添加到目标材质中,以获取交点信息纹理、尺寸信息纹理,以及法线信息纹理,对获取到的交点信息纹理、尺寸信息纹理,以及法线信息纹理进行叠加,以得到目标波纹贴图;在所述虚拟
障碍物为动态模型的情况下,通过在虚拟场景中发射虚拟光线,基于虚拟光线与虚拟障碍物的交点获取第一场景信息,并将第一场景信息输出至目标纹理中,以获取目标波纹贴图。
124.在一种实施方式中,上述根据虚拟摄像机所拍摄到的带有虚拟障碍物的画面获取交点信息、尺寸信息以及法线信息,可以包括:
125.基于虚拟场景的画面中虚拟障碍物与虚拟水面的交点的位置信息确定交点信息;
126.按照预设缩放比例对画面中的虚拟障碍物进行缩放,并根据缩放后的虚拟障碍物的尺寸获取尺寸信息;
127.将画面中的虚拟障碍物表面的法线向量转换成颜色值,基于颜色值获取法线信息。
128.在一种实施方式中,在基于目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据目标波纹贴图中存储的第二场景信息获取目标波纹粒子的初始运动方向与目标波纹粒子尺寸,以对目标波纹粒子进行初始化前,上述装置还可以包括:
129.解析目标波纹贴图,以获取目标波纹贴图中存储的第二场景信息,其中,第二场景信息包括虚拟水面与虚拟障碍物的交点信息,虚拟障碍物的尺寸信息,以及虚拟障碍物的法线信息。
130.在一种实施方式中,上述基于目标波纹贴图在候选波纹粒子中确定目标波纹粒子,可以包括:
131.基于目标波纹贴图的交点信息获取目标波纹粒子的uv坐标;
132.根据目标波纹粒子的uv坐标在候选波纹粒子中确定目标波纹粒子。
133.在一种实施方式中,上述在基于目标波纹贴图的交点信息获取目标波纹粒子的uv坐标前,还可以包括:
134.基于候选波纹粒子的世界坐标与波纹粒子虚拟发射器的世界坐标的差获取候选波纹粒子的相对位置坐标;
135.将相对位置坐标缩放至预设数值范围,并基于缩放后的相对位置坐标计算候选波纹粒子的uv坐标。
136.在一种实施方式中,上述根据目标波纹贴图中存储的第二场景信息获取目标波纹粒子的初始运动方向与目标波纹粒子的尺寸,可以包括:
137.基于第二场景信息中的法线信息确定目标波纹粒子的初始运动方向,并根据第二场景信息中的尺寸信息计算目标波纹粒子的尺寸。
138.在一种实施方式中,上述根据预设风向参数、目标波纹粒子的初始运动方向与初始运动速度获取目标波纹粒子的实际运动方向和实际运动速度,可以包括:
139.根据预设风向参数与初始运动方向确定目标波纹粒子的实际运动方向;
140.基于预设风向参数与初始运动速度的和确定目标波纹粒子的实际运动速度。
141.上述装置中各部分的具体细节在方法部分实施方式中已经详细说明,因而不再赘述。
142.本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种可选的实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(cd-rom)并包
括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
143.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
144.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
145.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
146.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
147.本公开的示例性实施方式还提供一种电子设备。该电子设备可以包括处理器与存储器。存储器存储有处理器的可执行指令,如可以是程序代码。处理器通过执行该可执行指令来执行本示例性实施方式中的方法。
148.下面参考图13,以通用计算设备的形式对电子设备进行示例性说明。应当理解,图13显示的电子设备1300仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来限制。
149.如图13所示,电子设备1300可以包括:处理器1310、存储器1320、总线1330、i/o(输入/输出)接口1340、网络适配器1350。
150.处理器1310可以包括一个或多个处理单元,例如:处理器1310可以包括中央处理器(central processing unit,cpu)、ap(application processor,应用处理器)、调制解调处理器、显示处理器(display process unit,dpu)、gpu(graphics processing unit,图形处理器)、isp(image signal processor,图像信号处理器)、控制器、编码器、解码器、dsp(digital signal processor,数字信号处理器)、基带处理器、人工智能处理器等。在一种实施方式中,可以由人工智能处理器获取虚拟场景中的第一场景信息,并基于第一场景信息获取目标波纹贴图;再基于目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据
目标波纹贴图得到的第二场景信息,获取目标波纹粒子的初始运动方向与目标波纹粒子的尺寸,以对目标波纹粒子进行初始化;最后根据预设风向参数、目标波纹粒子的初始运动方向与初始运动速度获取目标波纹粒子的实际运动方向和实际运动速度,并基于实际运动方向和实际运动速度设置目标波纹粒子的运动方向和运动速度,以在虚拟水面上生成波纹效果。
151.存储器1320可以包括易失性存储器,例如ram 1321、缓存单元1322,还可以包括非易失性存储器,例如rom 1323。存储器1320还可以包括一个或多个程序模块1324,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。例如,程序模块1324可以包括上述装置1200中的各模块。
152.总线1330用于实现电子设备1300的不同组件之间的连接,可以包括数据总线、地址总线和控制总线。
153.电子设备1300可以通过i/o接口1340与一个或多个外部设备1400(例如键盘、鼠标、外置控制器等)进行通信。
154.电子设备1300可以通过网络适配器1350与一个或者多个网络通信,例如网络适配器1350可以提供如3g/4g/5g等移动通信解决方案,或者提供如无线局域网、蓝牙、近场通信等无线通信解决方案。网络适配器1350可以通过总线1330与电子设备1300的其它模块通信。
155.尽管图13中未示出,还可以在电子设备1300中设置其它硬件和/或软件模块,包括但不限于:显示器、微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
156.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
157.所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
158.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。

技术特征:
1.一种虚拟水面波纹生成方法,其特征在于,包括:获取虚拟场景中的第一场景信息,并基于所述第一场景信息获取目标波纹贴图,其中,所述虚拟场景包括虚拟水面,所述第一场景信息是基于所述虚拟场景获取的;基于所述目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据所述目标波纹贴图得到的第二场景信息,获取所述目标波纹粒子的初始运动方向与所述目标波纹粒子的尺寸,以对所述目标波纹粒子进行初始化;根据预设风向参数、所述目标波纹粒子的初始运动方向与初始运动速度获取所述目标波纹粒子的实际运动方向和实际运动速度,并基于所述实际运动方向和实际运动速度设置所述目标波纹粒子的运动方向和运动速度,以在虚拟水面上生成波纹效果。2.根据权利要求1所述的方法,其特征在于,所述第一场景信息包括虚拟水面与虚拟障碍物的交点信息,缩放后的所述虚拟障碍物的尺寸信息,以及所述虚拟障碍物的法线信息,所述获取虚拟场景中的第一场景信息,并基于所述第一场景信息获取目标波纹贴图,包括:在所述虚拟障碍物为静态模型的情况下,根据虚拟摄像机所拍摄到的带有所述虚拟障碍物的画面获取所述交点信息、尺寸信息以及法线信息,并将所述交点信息、尺寸信息以及法线信息添加到目标材质中,以获取交点信息纹理、尺寸信息纹理,以及法线信息纹理,对获取到的所述交点信息纹理、尺寸信息纹理,以及法线信息纹理进行叠加,以得到目标波纹贴图;在所述虚拟障碍物为动态模型的情况下,通过在虚拟场景中发射虚拟光线,基于所述虚拟光线与所述虚拟障碍物的交点获取所述第一场景信息,并将所述第一场景信息输出至目标纹理中,以获取目标波纹贴图。3.根据权利要求2所述的方法,其特征在于,所述根据虚拟摄像机所拍摄到的带有所述虚拟障碍物的画面获取所述交点信息、尺寸信息以及法线信息,包括:基于所述虚拟场景的画面中虚拟障碍物与虚拟水面的交点的位置信息确定所述交点信息;按照预设缩放比例对所述画面中的虚拟障碍物进行缩放,并根据缩放后的虚拟障碍物的尺寸获取所述尺寸信息;将所述画面中的虚拟障碍物表面的法线向量转换成颜色值,基于所述颜色值获取所述法线信息。4.根据权利要求1所述的方法,其特征在于,在基于所述目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据所述目标波纹贴图得到的第二场景信息,获取所述目标波纹粒子的初始运动方向与所述目标波纹粒子尺寸,以对所述目标波纹粒子进行初始化前,所述方法还包括:解析所述目标波纹贴图,以获取所述目标波纹贴图中存储的第二场景信息,其中,所述第二场景信息包括虚拟水面与虚拟障碍物的交点信息,所述虚拟障碍物的尺寸信息,以及所述虚拟障碍物的法线信息。5.根据权利要求4所述的方法,其特征在于,所述基于所述目标波纹贴图在候选波纹粒子中确定目标波纹粒子,包括:基于所述目标波纹贴图的交点信息获取目标波纹粒子的uv坐标;根据所述目标波纹粒子的uv坐标在所述候选波纹粒子中确定目标波纹粒子。
6.根据权利要求5所述的方法,其特征在于,所述在基于所述目标波纹贴图中的交点信息获取目标波纹粒子的uv坐标前,所述方法还包括:基于所述候选波纹粒子的世界坐标与波纹粒子虚拟发射器的世界坐标的差获取所述候选波纹粒子的相对位置坐标;将所述相对位置坐标缩放至预设数值范围,并基于缩放后的相对位置坐标计算所述候选波纹粒子的uv坐标。7.根据权利要求4所述的方法,其特征在于,所述根据所述目标波纹贴图得到的第二场景信息,获取所述目标波纹粒子的初始运动方向与所述目标波纹粒子的尺寸,包括:基于所述第二场景信息中的法线信息确定所述目标波纹粒子的初始运动方向,并根据所述第二场景信息中的尺寸信息计算所述目标波纹粒子的尺寸。8.根据权利要求1所述的方法,其特征在于,所述根据预设风向参数、所述目标波纹粒子的初始运动方向与初始运动速度获取所述目标波纹粒子的实际运动方向和实际运动速度,包括:根据所述预设风向参数与所述初始运动方向确定所述目标波纹粒子的实际运动方向;基于所述预设风向参数与所述初始运动速度的和确定所述目标波纹粒子的实际运动速度。9.一种虚拟水面波纹生成装置,其特征在于,包括:目标波纹贴图获取模块,被配置为获取虚拟场景中的第一场景信息,并基于所述第一场景信息获取目标波纹贴图,其中,所述虚拟场景包括虚拟水面,所述第一场景信息是基于所述虚拟场景获取的;目标波纹粒子初始化模块,被配置为基于所述目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据所述目标波纹贴图得到的第二场景信息,获取所述目标波纹粒子的初始运动方向与所述目标波纹粒子的尺寸,以对所述目标波纹粒子进行初始化;运动方向与运动速度设置模块,被配置为根据预设风向参数、所述目标波纹粒子的初始运动方向与初始运动速度获取所述目标波纹粒子的实际运动方向和实际运动速度,并基于所述实际运动方向和实际运动速度设置所述目标波纹粒子的运动方向和运动速度,以在虚拟水面上生成波纹效果。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述的方法。11.一种电子设备,其特征在于,包括:处理器;存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至8任一项所述的方法。

技术总结
本公开提供一种虚拟水面波纹生成方法、装置、存储介质与电子设备,涉及计算机技术领域。该虚拟水面波纹生成方法包括:获取虚拟场景中的第一场景信息,并基于第一场景信息获取目标波纹贴图;基于目标波纹贴图在候选波纹粒子中确定目标波纹粒子,并根据目标波纹贴图中存储的第二场景信息获取目标波纹粒子的初始运动方向与目标波纹粒子尺寸,以对目标波纹粒子进行初始化;根据预设风向参数、目标波纹粒子的初始运动方向与初始运动速度获取目标波纹粒子的实际运动方向和实际运动速度,并基于实际运动方向和实际运动速度设置目标波纹粒子的运动方向和运动速度,以在虚拟水面上生成波纹效果。本公开提高了虚拟水面波纹效果的真实度。度。度。


技术研发人员:洪性源
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2023.03.28
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐