论文部分内容阅读
火焰、烟雾和焰火等自然界典型的不规则模糊景物,很难采用传统的建模方法进行模拟。粒子系统是迄今为止模拟和生成模糊景物最为成功的一种模型。焰火的品种繁多,色彩炫丽多变,形态更是千变万化,导致焰火模拟具有挑战性。特别是,随着焰火品种的丰富和燃放规模的不断扩大,专业从事焰火燃放的服务提供商缺乏有效的技术手段,根据焰火燃放的主题和场景进行模拟展示,而是往往凭设计者的经验和想像力,从而难以保证燃放效果和燃放成本之间的最大化。此外,基于粒子系统的焰火模拟由于焰火粒子众多,计算量非常大。本文根据大规模焰火模拟的现实需求,研究基于粒子系统的焰火模拟方法及其实现。考虑到图形处理器(GPU)在图形渲染等通用计算领域开始得到广泛的应用,本文研究工作的出发点是利用GPU的并行计算能力,通过Nvidia公司的统一计算设备架构(CUDA)编程,实现粒子属性更新等计算最集中的操作,从而更好地在焰火模拟的真实感和实时性之间进行兼顾。具体地,本文的主要研究工作包括:首先,在分析各种焰火的形态并对焰火品种进行分类的基础上,设计了一种适合大规模焰火模拟的通用粒子系统API。并且,采用链表数据结构,进行多品种、多数量的大规模焰火模拟。其次,以有拖尾的礼花弹类焰火为重点,在前面提出的适合于焰火模拟的通用粒子系统API基础上,提出了一种基于粒子系统和CUDA的焰火模拟实现方法。对粒子系统初始化、焰火粒子初始化、焰火粒子的属性更新和纹理映射等技术进行了详细的讨论。此外,提出把计算最集中的焰火粒子属性更新等操作放到GPU平台,通过CUDA编程进行加速。本文结合纹理映射和混色等功能,实现了单品种、多品种以及带有背景位图的多品种、多数量焰火模拟。实验结果表明,本文的焰火模拟取得了令人满意的视觉效果,绘制效率相对于CPU平台也有所提高,且粒子数目越多,绘制效率提升越明显。因此,本文的研究工作验证了使用CUDA编程,可以加速GPU平台的焰火粒子渲染的速度。