首页> 中文学位 >基于OpenGL的离散粒子系统仿真的设计与实现
【6h】

基于OpenGL的离散粒子系统仿真的设计与实现

代理获取

目录

文摘

英文文摘

第1章 绪论

1.1 引言

1.2 光滑粒子动力学方法(SPH)

1.3 OpenGL的发展和应用

1.4 论文的内容和结构

第2章 GLUT技术

2.1 OpenGL体系

2.2 OpenGL的功能

2.3 GLUT类库的产生及其功能

2.3.1 OpenGL与GLUT

2.3.2 GLUT基本功能

2.4 GLUT基本结构

2.4.1 GLUT的初始化

2.4.2 创建显示窗口:

2.4.3 设置“事件”回调函数

2.4.4 窗口消息的检查

2.5 GLUT对键盘控制的实现

2.6 利用GLUT类库进行绘制

2.6.1 GLUT的安装

2.6.2 用GLUT实现3D动态效果

第3章 离散粒子系统:流体流动的光滑粒子动力学

3.1 计算流体动力学方法

3.2 光滑粒子动力学(SPH)法

3.2.1 核函数的选择

3.2.2 SPH的粒子力的计算

3.2.3 SPH的计算过程

第4章 离散粒子系统显示的实现

4.1 离散粒子系统的常用模块

4.1.1 粒子初始化模块

4.1.2 粒子的支持域搜索模块

4.1.3 时间积分

4.1.4 边界处理和推进模块

4.2 系统的GLUT框架

4.2.1 窗体创建模块

4.2.2 显示模块

4.2.3 窗口改变处理模块

4.2.4 鼠标键盘事件模块

4.3 粒子阴影模块

4.3.1 软阴影显示

4.3.2 Shadow map技术

4.3.3 使用一般纹理对象实现Shadow map

4.3.4 使用帧缓存对象实现shadow map

第5章 离散粒子显示的改进

5.1 GLUT的画球函数

5.1.1 glutSolidShpere函数

5.1.2 模拟glutSolidShpere函数

5.2 使用MSC绘制球体

5.3 绘制网格

5.4 实现MSC接口

5.5 加入帧率测量模块

5.6 实现自适应性的粒子显示系统

5.7 使用显示列表加强显示效果

5.8 实验及结果分析

结束语

致谢

参考文献

展开▼

摘要

离散粒子系统包括物理的离散粒子系统和虚拟的离散粒子系统,物理的离散粒子系统是指有大量颗粒构成的系统。虚拟的离散粒子系统,就是把连续的介质简化为大量粒子而形成的粒子系统。由于粒子系统一般包含大量的粒子,高效地计算和显示技术显得尤为重要。
   本文采用的离散粒子系统是用光滑粒子法模拟流体运动的粒子系统,该方法具有无网格及拉格朗日性质。本文使用的图形标准是OpenGL和GLUT工具包,模拟的实例是池中的造浪过程。
   光滑粒子法模拟流体运动现在是研究热点,这方面做的比较好且有开放源代码的是Fluids v.1(2008年发布),我们的工作就是在这基础上进行的。Fluids v.1采用显示列表来实现粒子的显示,本文将详细分析离散粒子显示系统的各个模块及其用到的显示技术,并对它进行了一些改进。
   本文将从GLUT开始,分析如何在GLUT的框架下开发显示系统,然后介绍用光滑粒子法对流体进行模拟的整个流程。对于显示模块,本文将分析系统中的显示列表技术、软阴影的实现和其用到的shadow map技术、系统中为加快显示速度使用的显卡拓展功能、及将阴影帧绑定到帧缓存对象FBO(Frame BufferObiect)上的帧缓存技术。
   Fluids v.1采用球模型和显示列表来实现粒子的显示,它的局限是用相同的单一球模型来显示每个粒子,而且球模型是由相当数量的三角形构成。但实际的离散粒子系统,粒子的尺寸是不一致的,用不同精度的模型来显示不同粒子更为合理。但如果采用不同的球模型来显示每个粒子,Fluids v.1的性能将有数量级的下降。本文从两个方面来改进粒子的显示:一,用多个显示列表来显示不同大小的粒子模型;二,用更少的三角形来表示一个球体,而显示效果没有隆低。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号