惊涛怪浪(double dam-break) -- position based fluids
切入正题之前,先胡说八道几句.
据说爱因斯坦讲过:关于这个世界最难以理解的就是它是可以被理解的。人类在很长的时间里,都无法认知周围变幻莫测的世界,只能编造出无数的神祗来掌控世上万物的运行。到了近代,才逐渐出现了突破。伽利略发现了主宰物体下坠的拋物线定律。牛顿被誉为人类历史上最伟大的科学家之一。他发明了微积分,用万有引力定律在人类历史上第一次把天上的运动和地上的运动统一了起来。麦克斯韦建立了描述电场与磁场的四个方程,系统而完整地概括了电磁场的基本规律,并预言了电磁波的存在......于是科学家认为数学是用来解释自然世界的工具。
物理世界与数学如此的吻合,激发了进一步的联想。宇宙学家马克斯·塔马克在《Our Mathematical Universe》一书中认为宇宙中的一切事物,当然也包括人类在内都是一种数学结构。物理世界可能只是数学世界的映射。数学结构也是一种独立存在的实体。想象一下,如果记载勾股定理的全部文献都消失了,勾股定理其实还是存在的,她等着下一次被发现。生命估计是一种能感知自己存在的一种数学结构,只是我们目前还不知道具体形式。近二十年来计算机图形学的蓬勃发展,进一步让人觉得眼睛感受到的一切都是数学的投影。
-------------------------------
平滑粒子流体力学(Smoothed Particle Hydrodynamics)起源于二十世纪七十年代末,当时一些宇宙学家用这类方法研究天体形成。我曾看到过一篇文章介绍了一个使用SPH模拟技术的玩具程序,在万有引力的牵引下,将散落在各处的宇宙尘埃汇聚成一个球体。图形学中大量使用SPH技术是以2003年的“Particle-Based Fluid Simulation for Interactive Applications”为开端。该文标志性的视频内容是:实时模拟绘制了一股水流从上慢慢倒入到底下透明的杯子中。SPH技术容易实现,但要求时间步长非常小。步长稍大,效果就会比较粗糙甚至发生“爆炸”现象。如果亲手调试过SPH程序,就会明白“爆炸”的含义(瞬时所有的粒子都消失了)。另外,常规SPH的参数比较多,调整相对比较困难。
流体是否逼真,与流体模拟技术中不可压缩的实现密切相关。传统的SPH基于粒子技术,只能依靠小步长、大压强来实现流体的不可压缩性,非常慢无法做到真实感流体的实时模拟。2009年“Predictive-corrective incompressible SPH”使用迭代技术有效地加大了时间步长,同时保证了流体不可压缩的性质。在接下来几年,此文启发了很多人。特别是SIGGRAPH 2013中的"position based fluids",文章很短,但是实现了令人感到惊艳的实时效果。
学习了该论文后,目前仅实现了半篇内容。使用了"position based fluids"的SPH模拟技术,但是渲染使用的是离线方式(用mitsuba,刚刚用了几天,水质不是太好)。下面的视频(http://pan.baidu.com/s/1c0kXzaw)(http://pan.baidu.com/s/1jG67KeM)和图片模拟的是:经典场景double dam,看看有没有点"惊涛怪浪"的感受?
转载于:https://www.cnblogs.com/szlongman/p/3701504.html
惊涛怪浪(double dam-break) -- position based fluids相关推荐
- SPH(光滑粒子流体动力学)流体模拟实现六:Position Based Fluid(PBF)
SPH(光滑粒子流体动力学)流体模拟实现六:Position Based Fluid(PBF) PBF方法和前篇提到的PCISPH方法类似,都属于迭代矫正法.PCISPH是通过迭代预测压力,通过压力变 ...
- position based dynamics
应读者需求,今天终于抽出时间把这篇文章整理一下,不过只把其中的一些公式进行了推导,如果需要细看,仍需阅读论文 Position Based Dynamics文章来源 首先对比一下PDF与FEM之间的关 ...
- 非静压模型SWASH学习(4)——溃坝流模拟算例(Dam break over wet bed)
溃坝流模拟算例(Dam break over wet bed) 算例简介 模型配置 网格及参数设置 网格和地形 初始条件 边界条件 物理参数 数值格式与参数 输出控制 计算时间 模拟结果 SWASH是 ...
- PBD(Position Based Dynamics)学习笔记
符号说明 仿真物体包括 NNN 个节点和 MMM 个约束. 每个节点 i∈[1,...,N]i\in [1,...,N]i∈[1,...,N] 包含的参数有质量 mim_imi .位置 xi\bol ...
- php模板引擎如何实现,php模板引擎技术简单实现
用了smarty,tp过后,也想了解了解其模板技术是怎么实现,于是写一个简单的模板类,大致就是读取模板文件->替换模板文件的内容->保存或者静态化 tpl.class.php主要解析 as ...
- 基于屏幕空间渲染的液体模拟
这是侑虎科技第426篇文章,感谢作者Nae Zhu供稿.欢迎转发分享,未经作者授权请勿转载.如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨.(QQ群465082844) 个人主页:https: ...
- 【taichi】用最少的修改将太极的pbf2d(基于位置的流体模拟)改为pbf3d
效果展示 (最外层的浅蓝色是ffmpeg造成的,请忽略) github 仓库 https://github.com/chunleili/pbf3d 原理讲解 https://www.bilibili. ...
- javafx2_JavaFX 2 GameTutorial第3部分
javafx2 介绍 Ť他是与一个六个部分组成的系列的第3部分的JavaFX 2游戏教程. 如果您错过了第1部分和第2部分 ,我建议您在开始本教程之前仔细阅读它们. 回顾第2部分,我讨论了游戏循环的内 ...
- JavaFX 2 GameTutorial第3部分
介绍 Ť他是与一个六个部分组成的系列的第3部分的JavaFX 2游戏教程. 如果您错过了第1部分和第2部分 ,建议您在开始本教程之前先进行阅读. 回顾第二部分,我讨论了游戏循环的内部工作原理,其中我们 ...
最新文章
- 微软浏览器适配问题前端_「图」微软新贡献:修复Chromium浏览器的奇怪触控板手势问题...
- cacls 使用方法
- Anaconda创建环境、删除环境、激活环境、退出环境
- 2009年浙江大学计算机及软件工程研究生机试真题
- NSString 使用方法总结
- 向量时钟Vector Clock in Riak
- 构建可靠系统的原则与实践
- 使用block的好处
- 第一次冲刺-站立会议03
- 家庭网络,怎么给每个房间装一个无线路由器?
- 公因式的概念_公因式概念论文,关于也淡化概念相关参考文献资料-免费论文范文...
- 嵌入式linux驱动开发答辩问题,嵌入式Linux驱动工程师/BSP开发工程师面试笔试题集锦...
- 仿直播礼物涂鸦/屏幕礼物涂鸦动画
- matlab求解普通函数的导数问题(diff函数的用法)
- 不用再捅了,首款新冠呼吸检测仪,吹口气,三分钟出结果。美国食药监局新闻中英对照注释
- IDEA下调试和运行Hadoop程序例子
- 2021-01-12
- android spannablestring设置字体颜色,Android SpannableString设置超链接、颜色、字体等属性...
- ideal拉代码和提交代码
- 科技论文写作投稿相关
热门文章
- 虚拟机无法访问主机mysql_主机无法连接虚拟机上的mysql
- ecshop mysql 标题表_ECshop 每个数据库表结构说明_MySQL
- java第十二天-面向对象
- 情侣一起看同步看电影H5网站 电影同步观看平台 (自己写的 已开源)
- 哈工大计算机考研英语,一站上岸哈工大学长的肺腑之言,考研全历程真心分享!...
- Android完美解决LaTeX中文显示问题
- 移动前端安全防护主流方案
- Avro技术应用_5. 利用 Camus 来将 Avro 数据从 Kafka 拷贝到 HDFS -- 待完善
- 【游戏开发阅读列表2】动画(Anima2D、粒子、物理等)
- 获取一个group by里面的总和或者聚合函数 思路杂乱 不要看