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

一种粒子渲染方法及装置与流程

2022-12-02 18:54:22 来源:中国专利 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.获取第十三计算值,所述第十三计算值包括第十一常数、所述第一伪随机数以及所述目标运动时长的积;
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.图1为本公开实施例提供的粒子渲染方法的步骤流程图;
66.图2为本公开实施例提供的粒子渲染装置的示意图之一;
67.图3为本公开实施例提供的粒子渲染装置的示意图之二;
68.图4为本公开实施例提供的电子设备的硬件结构示意图。
具体实施方式
69.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
70.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
71.在本公开实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本公开实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本公开实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
72.基于上述内容,本公开实施例提供了一种粒子渲染方法,参照图1所示,该粒子渲染方法包括如下步骤:
73.s101、获取粒子的初始位置的第一坐标值和第二坐标值。
74.其中,所述第一坐标值为所述粒子在第一坐标轴上的坐标值,第二坐标值为所述粒子在第二坐标轴上的坐标值,所述第一坐标轴和所述第二坐标轴为局部坐标系的水平面内相互垂直的两个坐标轴。
75.具体的,本公开实施例中的局部坐标系(local coordinate)是指以渲染场景的中心点为坐标原点的坐标系。其中,第一坐标轴可以包括局部坐标系中的x轴,第二坐标轴可以包括局部坐标系中的z轴。
76.s102、基于预设伪随机算法获取所述第一坐标值对应的第一伪随机数和所述第二坐标值对应的第二伪随机数。
77.本公开实施例中的第一伪随机数是指使用预设伪随机算法对第一坐标值进行计算获取的值,第二伪随机数是指使用预设伪随机算法对第二坐标值进行计算获取的值。由于相同的第一坐标值和第二坐标值可以得到确定的第一伪随机数和第二伪随机数,因此获取的第一伪随机数和第二伪随机数过程并不是真的随机数,但第一伪随机数和第二伪随机数具有类似于随机数的统计特征。
78.作为本公开实施例一种可选的实施方式,上述步骤s102(所述基于预设伪随机算法获取所述第一坐标值对应的第一伪随机数和所述第二坐标值对应的第二伪随机数)的实现方式可以包括如下步骤a至步骤d:
79.步骤a、获取第一计算值和第二计算值。
80.其中,所述第一计算值包括第一函数以所述第一坐标值与第一常数的积为自变量时所述第一函数的值,所述第二计算值包括第一函数以所述第二坐标值与所述第一常数的积为自变量时所述第一函数的值。
81.设:第一函数为f1()、第一坐标值为x
p
、第二坐标值为z
p
、第一常数为c1、第一计算值为a1、第二计算值为b1,则有:
82.第一计算值a1=f1(x
p
*c1);
83.第二计算值b1=f1(z
p
*c1)。
84.可选的,所述第一函数为包括正弦函数。
85.即,第一计算值a1=sin(x
p
*c1);
86.第二计算值b1=sin(z
p
*c1)。
87.可选的,在上述实施例的基础上本公开实施例中的第一函数还可以其它三角函数,例如:余弦函数、正切函数等,本公开包括但不限定于将正弦函数作为所述第一函数。
88.步骤b、获取第三计算值以及第四计算值。
89.其中,所述第三计算值为所述第一计算值与第二常数的积,所述第四计算值为所述第二计算值与所述第二常数的积。
90.设:第二常数为c2、第三计算值为a2、第四计算值为b2,则有:
91.第三计算值a2=a1*c2=f1(x
p
*c1)*c2;
92.第四计算值b2=b1*c2=f1(z
p
*c1)*c2。
93.需要说明的是,第二常数的位数可以决定第一伪随机数和第二伪随机数的统计特征。为了使第一伪随机数和第二伪随机数具有类似于真随机数的统计特征,可以将第二常数的位数设置的较大。示例性的,第二常数的整数部分的位数可以大于5,小数部分的位数可以大于8。
94.步骤c、获取所述第三计算值的小数部分作为所述第一伪随机数。
95.设:第一伪随机数为xr,则有:
96.第一伪随机数xr=fract(a2)=farct[f1(x
p
*c1)*c2]。
[0097]
其中,fract()为取值小数部分的函数。
[0098]
示例性的,fract(45815.551276)=0.551276。
[0099]
步骤d、获取所述第四计算值的小数部分作为所述第二伪随机数。
[0100]
设:第二伪随机数为zr,则有:
[0101]
第二伪随机数zr=fract(b2)=farct[f1(z
p
*c1)*c2]。
[0102]
其中,fract()为取值小数部分的函数。
[0103]
当第一函数包括正弦函数时,第一伪随机数和第二伪随机数的计算公式如下:
[0104]
xr=fract[sin(x
p
*c1)*c2];
[0105]
zr=fract[sin(z
p
*c1)*c2]。
[0106]
s103、根据所述第一伪随机数、所述第二伪随机数以及第一拟合算法,获取目标运动时长时所述粒子在所述第一坐标轴上的坐标值。
[0107]
作为本公开实施例一种可选的实施方式,上述步骤s103(根据所述第一伪随机数、所述第二伪随机数以及第一拟合算法,获取目标运动时长时所述粒子在所述第一坐标轴上的坐标值)的实现方式可以包括如下步骤a1至步骤a7:
[0108]
步骤a1、获取第五计算值。
[0109]
其中,所述第五计算值第二函数以第三常数、所述第一伪随机数以及所述目标运动时长的积为自变量时所述第二函数的值。
[0110]
设:第二函数为f2()、第一伪随机数为xr、目标运动时长为t、第三常数为c3、第五计算值包括a3,则有:
[0111]
第五计算值a3=f2(c3*t*xr)。
[0112]
可选的,所述第二函数包括正弦函数。
[0113]
即,第五计算值a3=sin(c3*t*xr)。
[0114]
可选的,在上述实施例的基础上本公开实施例中的第二函数还可以包括其它三角函数,例如:余弦函数、正切函数等,本公开包括但不限定于将正弦函数作为第二函数。
[0115]
步骤a2、获取第六计算值。
[0116]
其中,所述第六计算值包括所述第五计算值与第四常数的积。
[0117]
设:第六计算值包括a4、第四常数为c4,则有:
[0118]
第六计算值a4=a3*c4=[f2(c3*t*xr)]*c4[0119]
步骤a3、获取第七计算值。
[0120]
其中,所述第七计算值包括第五常数、所述第二伪随机数以及所述目标运动时长的积。
[0121]
设:第七计算值包括a5、第五常数为c5、第二伪随机数为zr、目标运动时长为t,则有:
[0122]
第七计算值a5=c5*t*zr。
[0123]
步骤a4、获取第八计算值。
[0124]
其中,所述第八计算值包括所述第七计算值与第六常数的和。
[0125]
设:第八计算值为a6、七计算值为a5、第六常数为c6,则有:
[0126]
第八计算值a6=a5 c6=c5*t*zr c6。
[0127]
步骤a5、获取第九计算值。
[0128]
其中,所述第九计算值包括所述第二函数以所述第八计算值为自变量时所述第二函数的值与第七常数的积。
[0129]
设:第九计算值为a7、第七常数为c7、第二函数为f2(),则有:
[0130]
第九计算值a7=f2(a6)*c7=[f2(c5*t*zr c6)]*c7[0131]
进一步的,若第二函数包括正弦函数,则有:
[0132]
第九计算值a7=sin(c5*t*zr c6)*c7。
[0133]
步骤a6、获取第十计算值。
[0134]
其中,所述第十计算值包括所述第六计算值与所述第九计算值的和。
[0135]
设:第十计算值为a8,则有:
[0136]
第十计算值a8=a4 a7=[f2(c3*t*xr)]*c4 [f2(c5*t*zr c6)]*c7。
[0137]
步骤a7、获取所述第十计算值与第八常数的积,作为所述目标运动时长时所述粒子在所述第一坐标轴上的坐标值。
[0138]
设:第八常数为c8,目标运动时长时粒子在所述第一坐标轴上的坐标值包为x

,则有:
[0139]
x

=a8*c8={[f2(c3*t*xr)]*c4 [f2(c5*t*zr c6)]}*c8。
[0140]
进一步的,当第二函数包括正弦函数时,目标运动时长t时,粒子在所述第一坐标轴上的坐标值为:
[0141]
x

={[sin(c3*t*xr)]*c4 [sin(c5*t*zr c6)]}*c8[0142]
s104、根据所述第一伪随机数、所述第二伪随机数以及第二拟合算法,获取所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值。
[0143]
作为本公开实施例一种可选的实施方式,上述步骤s104(根据所述第一伪随机数、所述第二伪随机数以及第二拟合算法,获取所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值)的实现方式可以包括如下步骤b1至步骤b6:
[0144]
步骤b1、获取第十一计算值。
[0145]
其中,所述第十一计算值包括第二函数以第九常数、所述第二伪随机数以及所述目标运动时长的积为自变量时,所述第二函数的值。
[0146]
设:第二函数为f2()、第二伪随机数为zr、目标运动时长为t、第九常数为c9、第十一计算值为b3,则有:
[0147]
第十一计算值b3=f2(c9*t*zr)。
[0148]
可选的,所述第二函数为正弦函数。
[0149]
即,第十一计算值b3=sin(c9*t*zr)。
[0150]
步骤b2、获取十二计算值。
[0151]
其中,所述第十二计算值包括所述第十一计算值与第十常数的积。
[0152]
设:第十二计算值为b4、第十常数为c
10
,则有:
[0153]
第二计算值b4=b3*c
10
=f2(c9*t*zr)*c
10

[0154]
步骤b3、获取第十三计算值。
[0155]
其中,所述第十三计算值包括第十一常数、所述第一伪随机数以及所述目标运动时长的积。
[0156]
设:第十三计算值为b5、第十一常数为c
11
、第一伪随机数为xr、目标运动时长为t,则有:
[0157]
第十三计算值b5=c
11
*t*xr。
[0158]
步骤b4、获取第十四计算值。
[0159]
其中,所述第十四计算值包括所述第十三计算值与第十二常数的和。
[0160]
设:第十四计算值为b6、第十三计算值为b5、第十二常数为c
12
,则有:
[0161]
第八计算值b6=b5 c
12
=c
11
*t*xr c
12

[0162]
步骤b5、获取第十五计算值。
[0163]
其中,所述第十五计算值包括所述第二函数以所述第十四计算值为自变量时,所述第二函数的值。
[0164]
设:第十五计算值为b7、第二函数为f2(),则有:
[0165]
第十五计算值b7=f2(b6)=f2(c
11
*t*xr c
12
)
[0166]
进一步的,若第二函数包括正弦函数,则有:
[0167]
第十五计算值b7=sin(c
11
*t*xr c
12
)。
[0168]
步骤b6、获取第十六计算值。
[0169]
其中,所述第十六计算值包括所述第十二计算值与所述第十五计算值的和。
[0170]
设:第十六计算值为b8,则有:
[0171]
第十六计算值b8=b4 b7=[f2(c9*t*zr)]*c
10
f2(c
11
*t*xr c
12
)。
[0172]
步骤b7、获取所述第十六计算值与第十三常数的积,作为所述目标运动时长对应的所述粒子在所述第二坐标轴上的坐标值。
[0173]
设:第十三常数为c
13
,目标运动时长t时粒子在所述第二坐标轴上的坐标值为z

,则有:
[0174]z
=b8*c
13
={[f2(c9*t*zr)]*c
10
f2(c
11
*t*xr c
12
)}*c
13

[0175]
进一步的,当第二函数包括正弦函数、目标运动时长t时,粒子在所述第二坐标轴上的坐标值包括:
[0176]z
={[sin(c9*t*zr)]*c
10
sin(c
11
*t*xr c
12
)}*c
13
[0177]
s105、根据所述目标运动时长时所述粒子在所述第一坐标轴上的坐标值和所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值,对所述目标运动时的所述粒子进行渲染。
[0178]
具体的,可以根据待渲染图像帧的输出时刻确定目标运动时长,然后根据目标运动时长确定所述目标运动时长时所述粒子在所述第一坐标轴上的坐标值和所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值,然后根据所述目标运动时长时所述粒子在所述第一坐标轴上的坐标值和所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值确定粒子在图像帧中的位置。
[0179]
需要说明的是,确定粒子在图像帧中的位置时,除了需要获取粒子在所述第一坐标轴上的坐标值和粒子在所述第二坐标轴上的坐标值之外,还需要确定粒子在局域坐标系的竖直方向上的坐标值(例如,在第一坐标轴包括局部坐标系中的x轴、第二坐标轴包括局部坐标系中的z轴的情况下,竖直方向上的坐标值包括局部坐标系中的y轴上的坐标值),本公开实施例中不限定获取粒子在局域坐标系的竖直方向上的坐标值的实现方式,以能够获取粒子在局域坐标系的竖直方向上的坐标值为准。
[0180]
本公开实施例提供的粒子渲染方法先获取粒子的初始位置在局部坐标系的水平面内相互垂直的两个坐标轴上的第一坐标值和第二坐标值,然后基于预设伪随机算法获取所述第一坐标值对应的第一伪随机数和所述第二坐标值对应的第二伪随机数,再根据所述
第一伪随机数、所述第二伪随机数以及第一拟合算法,获取目标运动时长时所述粒子在所述第一坐标轴上的坐标值,以及根据所述第一伪随机数、所述第二伪随机数以及第二拟合算法,获取所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值,然后根据所述目标运动时长时所述粒子在所述第一坐标轴上的坐标值和所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值,对所述目标运动时的所述粒子进行渲染。由于本公开实施例在获取粒子的初始位置的第一坐标值和第二坐标值后,会基于预设伪随机算法获取所述第一坐标值对应的第一伪随机数和所述第二坐标值对应的第二伪随机数,然后再根据所述第一伪随机数、所述第二伪随机数获取各个运动时长时粒子的位置,因此上述实施例可以避免相邻粒子的运动轨迹过于相似,进而准确模拟粒子的运动轨迹,获取较为真实的粒子渲染效果。
[0181]
需要说明的是,本公开实施例中的常数(第一常数至第十三常数)均可以根据粒子的类型进行设定。粒子类型具体可以包括但不限于:雪花、雨滴、烟雾、柳絮、沙尘、火焰等。
[0182]
作为本公开实施例一种可选的实施方式,在上述实施例提供的粒子渲染方法的基础上,本公开实施例提供的粒子渲染方法还包括:
[0183]
当所述粒子的运动时长达到阈值时长时,控制所述粒子返回初始位置,并将所述粒子的运动时长清零。
[0184]
即,粒子以一定时长为周期,周期性的在渲染场景中运动。
[0185]
示例性的,阈值时长可以为1分钟;每间间隔一分钟,控制所述粒子返回初始位置,并将所述粒子的运动时长清零。
[0186]
作为本公开实施例一种可选的实施方式,在上述实施例提供的粒子渲染方法的基础上,本公开实施例提供的粒子渲染方法还包括如下步骤ⅰ至步骤ⅲ:
[0187]
步骤ⅰ、根据所述目标运动时长时所述粒子在所述第一坐标轴上的坐标值和所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值,获取所述目标运动时长时所述粒子在相机坐标系中的坐标值。
[0188]
具体的,可以根据局部坐标系与相机坐标系的转换关系,将粒子在局部坐标系中的位置坐标转换为相机坐标系中的位置坐标,从而获取目标运动时长时所述粒子在相机坐标系中的坐标值。
[0189]
步骤ⅱ、根据所述粒子在相机坐标系中的坐标值获取目标距离值,所述目标距离值包括所述粒子到所述相机坐标系的原点的距离值。
[0190]
需要说明的是,相机坐标系的原点仅为相机所在位置,因此粒子到所述相机坐标系的原点的距离值可以理解为粒子到相机坐标系对应的相机的距离。
[0191]
步骤ⅲ、根据所述目标距离值确定所述粒子的尺寸。
[0192]
其中,所述粒子的尺寸与所述目标距离值负相关。
[0193]
即,粒子到所述相机坐标系的原点的距离值越小,则粒子的尺寸越大,反之粒子到所述相机坐标系的原点的距离值越大,则粒子的尺寸越小。
[0194]
可选的,所述根据所述目标距离值确定所述粒子的尺寸,包括:
[0195]
根据缩放系数与所述目标距离值的比值,确定所述粒子的尺寸。
[0196]
设:粒子的尺寸为s
p
、缩放系数为c、目标距离值为d
cp
,则有:
[0197]
粒子的尺寸s
p
=c/d
cp

[0198]
上述实施例获取粒子在相机坐标系中的坐标值,根据所述粒子在相机坐标系中的坐标值获取粒子到所述相机坐标系的原点的距离值,然后根据所述目标距离值确定所述粒子的尺寸。由于粒子的尺寸与所述目标距离值负相关,因此上述实施例可以在粒子距离相机较近时,使粒子的尺寸较大,在粒子距离相机较远时,使粒子的尺寸较小,实现粒子远大近小的效果,从而使粒子渲染效果更加逼真。
[0199]
基于同一发明构思,作为对上述方法的实现,本公开实施例还提供了一种粒子渲染装置,该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的粒子渲染装置能够对应实现前述方法实施例中的全部内容。
[0200]
本公开实施例提供了一种粒子渲染装置。图2为该粒子渲染装置的结构示意图,如图2所示,该粒子渲染装置200包括:
[0201]
初始坐标获取单元21,用于获取粒子的初始位置的第一坐标值和第二坐标值;所述第一坐标值包括所述粒子在第一坐标轴上的坐标值,第二坐标值包括所述粒子在第二坐标轴上的坐标值,所述第一坐标轴和所述第二坐标轴为局部坐标系的水平面内相互垂直的两个坐标轴;
[0202]
伪随机数计算单元22,用于基于预设伪随机算法获取所述第一坐标值对应的第一伪随机数和所述第二坐标值对应的第二伪随机数;
[0203]
第一坐标获取单元23,用于根据所述第一伪随机数、所述第二伪随机数以及第一拟合算法,获取目标运动时长时所述粒子在所述第一坐标轴上的坐标值;
[0204]
第二坐标获取单元24,用于根据所述第一伪随机数、所述第二伪随机数以及第二拟合算法,获取所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值;
[0205]
渲染单元25,用于根据所述目标运动时长时所述粒子在所述第一坐标轴上的坐标值和所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值,对所述目标运动时的所述粒子进行渲染。
[0206]
作为本公开实施例一种可选的实施方式,所述伪随机数计算单元22,具体用于获取第一计算值和第二计算值;所述第一计算值包括第一函数以所述第一坐标值与第一常数的积为自变量时所述第一函数的值,所述第二计算值包括所述第一函数以所述第二坐标值与所述第一常数的积为自变量时,所述第一函数的值;获取第三计算值以及第四计算值,所述第三计算值包括所述第一计算值与第二常数的积,所述第四计算值包括所述第二计算值与所述第二常数的积;获取所述第三计算值的小数部分作为所述第一伪随机数;获取所述第四计算值的小数部分作为所述第二伪随机数。
[0207]
作为本公开实施例一种可选的实施方式,所述第一函数为正弦函数。
[0208]
作为本公开实施例一种可选的实施方式,所述第一坐标获取单元23,具体用于获取第五计算值,所述第五计算值包括第二函数以第三常数、所述第一伪随机数以及所述目标运动时长的积为自变量时所述第二函数的值;获取第六计算值,所述第六计算值包括所述第五计算值与第四常数的积;获取第七计算值,所述第七计算值包括第五常数、所述第二伪随机数以及所述目标运动时长的积;获取第八计算值,所述第八计算值包括所述第七计算值与第六常数的和;获取第九计算值,所述第九计算值包括所述第二函数以所述第八计算值为自变量时所述第二函数的值与第七常数的积;获取第十计算值,所述第十计算值包
括所述第六计算值与所述第九计算值的和;获取所述第十计算值与第八常数的积,作为所述目标运动时长时所述粒子在所述第一坐标轴上的坐标值。
[0209]
作为本公开实施例一种可选的实施方式,所述第二坐标获取单元24,具体用于获取第十一计算值,所述第十一计算值包括第二函数以第九常数、所述第二伪随机数以及所述目标运动时长的积为自变量时所述第二函数的值;获取第十二计算值,所述第十二计算值包括所述第十一计算值与第十常数的积;获取第十三计算值,所述第十三计算值包括第十一常数、所述第一伪随机数以及所述目标运动时长的积;获取第十四计算值,所述第十四计算值包括所述第十三计算值与第十二常数的和;获取第十五计算值,所述第十五计算值包括所述第二函数以所述第十四计算值为自变量时所述第二函数的值;获取第十六计算值,所述第十六计算值包括所述第十二计算值与所述第十五计算值的和;获取所述第十六计算值与第十三常数的积,作为所述目标运动时长对应的所述粒子在所述第二坐标轴上的坐标值。
[0210]
作为本公开实施例一种可选的实施方式,所述第二函数为正弦函数。
[0211]
作为本公开实施例一种可选的实施方式,参照图3所示,所述粒子渲染装置200还包括:
[0212]
初始化单元26,用于当所述粒子的运动时长达到阈值时长时,控制所述粒子返回初始位置,并将所述粒子的运动时长清零。
[0213]
作为本公开实施例一种可选的实施方式,所述渲染单元25,还用于根据所述目标运动时长时所述粒子在所述第一坐标轴上的坐标值和所述目标运动时长时所述粒子在所述第二坐标轴上的坐标值,获取所述目标运动时长时所述粒子在相机坐标系中的坐标值;根据所述粒子在相机坐标系中的坐标值获取目标距离值,所述目标距离值包括所述粒子到所述相机坐标系的原点的距离值;根据所述目标距离值确定所述粒子的尺寸;
[0214]
其中,所述粒子的尺寸与所述目标距离值负相关。
[0215]
作为本公开实施例一种可选的实施方式,所述渲染单元25,具体用于根据缩放系数与所述目标距离值的比值,确定所述粒子的尺寸。
[0216]
本实施例提供的粒子渲染装置可以执行上述方法实施例提供的粒子渲染方法,其实现原理与技术效果类似,此处不再赘述。
[0217]
基于同一发明构思,本公开实施例还提供了一种电子设备。图4为本公开实施例提供的电子设备的结构示意图,如图4所示,本实施例提供的电子设备包括:存储器41和处理器42,所述存储器41用于存储计算机程序;所述处理器42用于在执行计算机程序时,使得所述电子设备实现上述实施例提供的粒子渲染方法。
[0218]
本公开实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述实施例提供的粒子渲染方法。
[0219]
本公开实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述实施例提供的粒子渲染方法。
[0220]
本领域技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可
用存储介质上实施的计算机程序产品的形式。
[0221]
处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0222]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
[0223]
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0224]
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献