程序 数学 游戏 物理 几何 都是我的最爱Home | 关于
« SPH算法简介(三): 光滑核函数六边形网格快速定位 »
SPH算法简介(四):Hello,SPH
2011年04月2日 |本网站遵守CC版权协议 转载请注明出自www.thecodeway.com
上几节,我们推导出一大推复杂无比的公式,似乎有点纸上谈兵,这节来点真的,写一个可以运行的SPH系统,下面就是SPH基本的运算流程1. 初始化粒子,为每个粒子赋上初始位置2. 根据公式3.7计算每个粒子的密度3. 根据公式3.10计算每个粒子的压强4. 根据公式3.18计算每个粒子的加速度5. 根据临界条件调整加速度
6. 根据加速度计算每个粒子的速度变化7. 根据速度计算粒子位置的变化8. 绘制粒子9. 回到步骤2
下面有个简单的示例程序,运行效果如下
这个程序基本上没有怎么考虑效率,只是让系统跑起来,所以比较适合拿来对照公式学习,按照惯例,放出源代码和可执行程序 源码下载:fluid_src.zip(394KB) Update(2011-04-07): 更新,去掉了工程文件里对CUDA的引用,感谢网友提醒
源码下载:fluid_source.zip(395KB) 可执行程序下载: fluid.zip(120KB)
SPH还有很多细节值得讨论,比如表面张力、并行计算、构建网格、真实材质的水渲染等,这些部分我会抽时间再写一些东西出来介绍。标签: 数学, 流体, 算法
这篇文章发布于 2011年04月2日,星期六,17:26,归类于 未分类。 您可以跟踪这篇文章的评论通过 RSS 2.0feed。 您可以留下评论,或者从您的站点trackback。
4 条评论 发表在“SPH算法简介(四):Hello,SPH”上
1.
beautys101 说道:2011-04-07 10:17
你讲的真好,还提供源码学习,太感谢你了2.
aquathinker 说道:2011-05-10 15:05
请问你提供下载的可执行程序是利用了优化的lipsph么,我编译过的libsph很慢?用CUDA加速的?
没有用到CUDA
3.
damody 说道:2011-05-26 08:38
请问您提供的可执行程序是用了什么方法优化,为什么比我编译的程序快了三到五倍?
我用的是VS2005+SP1,Release版,没有什么特殊设置
4.
shazichloe 说道:2012-07-30 15:21
您好,看了您的博文对 sph算法收益颇深,但是在编译代码时出现找不到 dxsdkver.h文件的错误,请问这是什么原因呢?
留下回复
名称
邮件地址(不会被公开) 网站
提交评论
CodeWay:我的博客由 WordPress 驱动 文章 (RSS) 和 评论 (RSS)。
因篇幅问题不能全部显示,请点此查看更多更全内容