本技术涉及计算机,特别涉及一种体积云的绘制方法、装置、电子设备及程序产品。
背景技术:
1、随着游戏行业的发展,体积云的应用日益广泛。体积云相当于为体积云贴图增加了体积,从而模拟真实世界中云雾的半透明和无规则的表现效果,使得游戏场景中的天空和云层在视觉效果上更加自然逼真并具有空间感。体积云不仅提升了游戏场景的整体视觉质量,也增加了玩家的沉浸感。通常情况下会构建不同形态的体积云来适配不同的游戏场景。因此,如何构建体积云,是一项需要解决的问题。
2、目前,通常在虚拟游戏引擎外的应用程序中构建体积云贴图,然后将体积云贴图导入到虚拟游戏引擎中,并通过噪波侵蚀实现后续对体积云的渲染过程,最终获得适配游戏场景的体积云。
3、但是,体积云贴图只有在导入虚拟游戏引擎中后才能查看到显示效果。当需要反复多次调整体积云时,可能需要多次在虚拟游戏引擎外的应用程序中修改体积云贴图,再将体积云贴图导入虚拟游戏引擎以查看显示效果,并进行体积云渲染。上述方式不仅步骤繁多,操作繁琐,还会导致整体构建体积云的效率低下。
技术实现思路
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、本技术提供了一种体积云的绘制方法,在虚拟游戏引擎的三维虚拟场景中显示光标,用户可以通过移动光标使终端显示目标绘制对象,并通过控制目标绘制对象来进行绘制操作。终端根据用户的绘制操作显示出用户所绘制的体积云的形状,并根据用户设置的目标绘制对象关联的绘制参数来渲染体积云。相较于传统方式中,在虚拟游戏引擎外的应用程序中绘制出体积云贴图,再将体积云贴图导入游戏引擎中并进行体积云渲染。在本方式中,终端能够直接在虚拟游戏引擎的三维虚拟场景中根据绘制操作显示体积云的形状并进行体积云渲染,更加方便快捷,人机交互效率更高。同时,当需要反复调整体积云时,可以直接在虚拟游戏引擎中进行多次修改,无需多次导入或者导出体积云贴图,步骤较少,操作简单,大大提高了工作效率。
1.一种体积云的绘制方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述响应于对所述光标的移动操作,在检测射线与所述虚拟天空球相交的情况下,显示目标绘制对象,包括:
3.根据权利要求2所述的方法,其特征在于,所述响应于对所述光标的移动操作,在所述三维虚拟场景中确定第一位置和第二位置,包括:
4.根据权利要求2所述的方法,其特征在于,所述在所述三维虚拟场景中,以所述第二位置为起点发射经过所述第一位置的检测射线,包括:
5.根据权利要求1所述的方法,其特征在于,所述在所述三维虚拟场景中,显示根据所述目标绘制对象的绘制参数和所述第一形状渲染得到的第一体积云,包括:
6.根据权利要求5所述的方法,其特征在于,所述目标绘制对象的绘制参数包括通道参数、类型参数以及强度参数,所述强度参数用于指示对像素点的像素值的改变程度;
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种体积云的绘制装置,其特征在于,所述装置包括:
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器用于存储至少一段计算机程序,所述至少一段计算机程序由所述处理器加载并执行权利要求1至7任一项权利要求所述的体积云的绘制方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项权利要求所述的体积云的绘制方法。