一种粒子系统中粒子顶点数据的更新方法

文档序号:8364014阅读:201来源:国知局
一种粒子系统中粒子顶点数据的更新方法
【技术领域】
[0001] 本发明属于计算机图形技术领域,具体涉及一种粒子系统中粒子顶点数据的更新 方法。
【背景技术】
[0002] 粒子系统是三维计算机图形学中模拟一些特定的不规则模糊景象的技术,而这些 景象用其它传统的渲染技术难以实现的真实感。在粒子系统中,景象被定义为由成千上万 个不规则的、随机分布的粒子所组成,而每一个粒子均有一定的生命周期,它们不断改变形 状、不断运动,充分地体现了不规则物体的性质。经常使用粒子系统模拟的现象有火、爆炸、 烟、水流、火花、溅血、落叶、云、雾、雪、尘、流星尾迹或者发光轨迹这样的抽象视觉效果等 等。粒子系统方法具有良好的随机性和动态性,能逼真地模拟动态景物。因此,利用粒子系 统方法模拟自然景物,有着重要的科学意义和广泛的应用前景,在系统仿真、影视特效、三 维游戏中有广泛的应用。
[0003] 粒子系统更新循环划分为两个不同的阶段:参数更新/模拟阶段以及渲染阶段。 参数更新/模拟阶段根据粒子系统信息更新每个粒子的位置等属性信息;渲染阶段根据粒 子属性重新绘制粒子。拖尾效果(如流星、刀光剑影等效果的制作)作为粒子系统中最重 要的一种渲染器被大量应用到各种场景中。现有技术中,拖尾效果的每次绘制都需要在中 央处理器CPU上对所有粒子的历史信息进行更新,然后把所有的信息提交到显卡,在图像 处理器GPU对更新后的粒子进行渲染,完成拖尾效果的绘制,而大量的数据更新及资源锁 定操作会大大影响CPU的性能。

【发明内容】

[0004] 针对现有技术中存在的缺陷,本发明的目的在于提供一种粒子系统中粒子顶点数 据的更新方法,通过该方法能够有效降低粒子顶点数据更新的复杂度,提高数据更新效率。
[0005] 为实现上述目的,本发明采用的技术方案如下:
[0006] 一种粒子系统中粒子顶点数据的更新方法,包括以下步骤:
[0007] (1)确定当前粒子系统中所需的粒子的相关参数,所述相关参数包括所需的粒子 数量、粒子类型、粒子宽度、粒子的绘制段数以及渲染阶段所需的贴图;所述粒子类型为三 角形,在渲染阶段采用四边形进行渲染;
[0008] (2)根据所述相关参数进行粒子系统的初始化,包括:生成所述粒子数量的粒子, 确定粒子的顶点数据的存储方式;所述粒子的顶点数据包括粒子的每一段的顶点数据;所 述粒子的每一段的顶点数据包括顶点变化数据VBl和顶点固定数据VB2,顶点变化数据VBl 包括顶点位置坐标和顶点朝向,顶点固定数据VB2为顶点纹理坐标UV;
[0009] 粒子的顶点变化数据VBl的存储方式为:按照粒子的段数顺序存储每个粒子每一 段的顶点变化数据VBl,且每一段的顶点变化数据VBl连续存储两次,并按照存储顺序设置 每一个数据的索引;
[0010] 假设粒子数量为m、粒子的绘制段数为n,则粒子的顶点变化数据VBl存储为:
【主权项】
1. 一种粒子系统中粒子顶点数据的更新方法,包括以下步骤: (1) 确定当前粒子系统中所需的粒子的相关参数,所述相关参数包括所需的粒子数量、 粒子类型、粒子宽度、粒子的绘制段数以及渲染阶段所需的贴图;所述粒子类型为三角形, 在渲染阶段采用四边形进行渲染; (2) 根据所述相关参数进行粒子系统的初始化,包括:生成所述粒子数量的粒子,确定 粒子的顶点数据的存储方式;所述粒子的顶点数据包括粒子的每一段的顶点数据;所述粒 子的每一段的顶点数据包括顶点变化数据VB1和顶点固定数据VB2,顶点变化数据VB1包括 顶点位置坐标和顶点朝向,顶点固定数据VB2为顶点纹理坐标UV; 粒子的顶点变化数据VB1的存储方式为:按照粒子的段数顺序存储每个粒子每一段的 顶点变化数据VB1,且每一段的顶点变化数据VB1连续存储两次,并按照存储顺序设置每一 个数据的索引; 假设粒子数量为m、粒子的绘制段数为n,则粒子的顶点变化数据VB1存储为:
其中,UPV"分别表示第m个粒子第n段的起始的顶点变化数据和结束的顶点变化 数据; 粒子的顶点固定数据VB2的存储方式为:按照粒子的段数顺序存储每个粒子每一段的 顶点固定数据,完成一次存储后,按照粒子的段数再次顺序存储每个粒子每一段的顶点固 定数据;存储完成后,按照存储顺序设置每一个数据的索引; (3) 确定需要更新的粒子的顶点数据的范围,包括:确定需要更新的顶点变化数据VB1 和更新时的顶点固定数据VB2 ;其中,顶点朝向为当前顶点位置坐标到更新后的顶点位置 坐标的方向; 确定需要更新的顶点位置坐标的方式为:根据粒子的顶点位置坐标的存储方式和此次 粒子更新的次数,得到粒子此次需要更新的顶点位置坐标的索引范围A,索引范围A对应的 顶点位置坐标为此次需要更新的顶点位置坐标; 确定更新时的顶点固定数据VB2的方式为:根据粒子的顶点固定数据VB2的存储方式 和此次粒子更新的次数,确定出更新时的顶点固定数据VB2 ; (4) 根据粒子当前的顶点位置坐标、此次更新后的顶点位置坐标、粒子宽度和确定出的 需要更新的顶点变化数据VB1进行顶点变化数据VB1的更新,并根据确定出的更新时的顶 点固定数据VB2进行此次更新时的顶点固定数据VB2的更新; (5) 按照粒子的顺序合并更新后的顶点变化数据VB1和更新时的顶点固定数据VB2,得 到更新后的粒子的顶点数据。
2. 根据权利要求1所述的一种粒子系统中粒子顶点数据的更新方法,其特征在于:步 骤(3)中,所述得到粒子此次需要更新的顶点位置坐标的索引范围A,包括: 假设粒子数量为m、粒子的绘制段数为n,记i为每次更新时的顶点变化数据的起始位 置即起始索引,索引范围A的方式为: 当i彡n+1时,贝1」需要更新的顶点位置坐标的索引范围A为[2m(i-l),2mi-l] 当k(n+l) <i< (k+l)(n+l)时,则需要更新的顶点位置坐标的索引范围A为 [2m(i-km_l),2m(i_km) -1],其中,k多 1。
3. 根据权利要求1所述的一种粒子系统中粒子顶点数据的更新方法,其特征在于:步 骤(3)中,根据粒子的顶点固定数据的存储方式和此次粒子更新的次数,确定出更新时的 顶点固定数据VB2,包括:判断所述此次粒子更新的次数是否大于粒子的绘制段数,若否, 则此次粒子更新时的顶点固定数据VB2的起始索引B为所述索引范围A的起始索引,若是, 则此次粒子更新时的顶点固定数据VB2的起始索引B为所述索引范围A的起始索引加上C, 其中,C= 2X粒子的数量X粒子的绘制段数。
4. 根据权利要求1所述的一种粒子系统中粒子顶点数据的更新方法,其特征在于:当 此次粒子更新的次数大于粒子的绘制段数时,将此次更新后的粒子的顶点数据覆盖粒子最 早更新的一段的顶点数据。
5. 根据权利要求1或4所述的一种粒子系统中粒子顶点数据的更新方法,其特征在于: 所述方法还包括: 在粒子顶点数据的更新过程中,遍历粒子系统中的所有粒子,判断粒子的存在时间是 否大于设定时间,若是则判断粒子死亡; 遍历粒子系统中所有粒子,判断粒子的速度是否大于设定速度,若是则判断粒子死 亡; 遍历粒子系统中所有粒子,判断粒子所在区域是否超出生成区域,若是则判断粒子死 亡。
6. 根据权利要求5所述的一种粒子系统中粒子顶点数据的更新方法,其特征在于:当 粒子死亡后,该粒子所对应的所有顶点数据为无效数据。
7. 根据权利要求6所述的一种粒子系统中粒子顶点数据的更新方法,其特征在于:当 粒子死亡后,生成新的粒子,粒子死亡后下一次的顶点数据为新的粒子的顶点数据。
【专利摘要】本发明公开了一种粒子系统中粒子顶点数据的更新方法,属于图像绘制技术领域。该方法包括:确定当前粒子系统中所需的粒子的相关参数,并根据确定的所述相关参数进行粒子系统初始化,在初始化阶段配置了粒子顶点数据的存储方式,之后顶点数据更新的过程中,根据所述存储方式确定出需要更新的粒子的顶点数据的范围后,完成对应范围内的顶点数据的更新。本发明所述的方法,将粒子的顶点数据分为了顶点变化数据和顶点固定数据,通过使用动态顶点数据的更新方式,减少了每次绘制时的数据更新操作,大大提高了顶点数据更新的效率。
【IPC分类】G06T15-00
【公开号】CN104700446
【申请号】CN201510143517
【发明人】李启虎
【申请人】境界游戏股份有限公司
【公开日】2015年6月10日
【申请日】2015年3月31日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1