惊涛怪浪(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,看看有没有点"惊涛怪浪"的感受?
惊涛怪浪(double dam-break) -- position based fluids的更多相关文章
- 小球自由落体动态模拟(Position Based Simulation)
在过去的几十年中,基于物理的三维物体动态模拟成为了计算机图形学的研究热点,其中最常见的方法是基于力(force-based)的模拟方法,比如弹簧质点模型,它把物体抽象成一系列质点以及连接这些质点的弹簧 ...
- Java基础之扩展GUI——高亮元素、上下文菜单、移动旋转元素、自定义颜色(Sketcher 10)
窗口应用程序. 本例在上一版的基础上实现了高亮元素.移动元素.上下文菜单.旋转元素.设置自定义颜色. 1.自定义常量包: // Defines application wide constants p ...
- PID控制器(比例-积分-微分控制器)- I
形象解释PID算法 小明接到这样一个任务: 有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水. 小明接到任务后就一直守在水 ...
- Rebound动画框架简单介绍
Rebound动画框架简单介绍 Android菜鸟一枚,有不对的地方希望大家指出,谢谢. 最近在接手了一个老项目,发现里面动画框架用的是facebook中的Rebound框架,由于以前没听说过,放假时 ...
- pymssql.connect(server='.', user='', password='', database='', timeout=0, login_timeout=60, charset='UTF-8', as_dict=False, host='', appname=None, port='1433', conn_properties, autocommit=False, tds_
http://pymssql.org/en/stable/ref/pymssql.html """ This is an effort to convert the py ...
- 为什么要在游戏开发中使用ECS模式
http://www.richardlord.net/blog/why-use-an-entity-framework Why use an entity system framework for g ...
- DataTable to Excel(使用NPOI、EPPlus将数据表中的数据读取到excel格式内存中)
/// <summary> /// DataTable to Excel(将数据表中的数据读取到excel格式内存中) /// </summary> /// <param ...
- 【Windows编程】系列第十篇:文本插入符
大家知道,在使用微软的编程环境创建工程时会让你选择是控制台模式还是Windows应用程序.如果选择控制台的console模式,就会在运行时出现一个黑洞洞的字符模式窗口,里面就有等待输入一闪一闪的插入符 ...
- 为现有图像处理程序添加读写exif的功能
为现有图像处理程序添加读取exif的功能 exif是图片的重要参数,在使用过程中很关键的一点是exif的数据能够和图片一起存在.exif的相关功能在操作系统中就集成了,在csharp中也似乎有了实现. ...
随机推荐
- MySQL联合查询语法内联、左联、右联、全联
MySQL联合查询效率较高,以下例子来说明联合查询(内联.左联.右联.全联)的好处: T1表结构(用户id,用户名,密码) userid username password 1 jack ...
- windows下安装PhpDocumentor(phpdoc)笔记
PhpDocumentor简介 PHPDocumentor是一个用PHP写的工具,对于有规范注释的php程序,它能够快速生成具有相互参照,索引等功能的API文档.老的版本是phpdoc,从1.3.0开 ...
- 一键QQ聊天与一键加群QQ功能
最新有项目要求,点击页面上的一个按钮,实现直接启动QQ聊天,添加QQ群的功能. 开始以为会很复杂,百度后发现QQ已经有考虑到这方面的需求,只需进入:QQ推广 -> 推广工具 就能看到如下界面
- 测量行业(RTK)相关的小知识总结
RTK测量系统,一般需要先架设基准站(参考站),数据链模式外挂大电台(有天线大功率模式,理想范围方圆18公里以内).基准站通过收到卫星(多星)进行计算出当前的位置. 其中涉及到频率的设置,波特率,以及 ...
- Leetcode 101 Symmetric Tree 二叉树
判断一棵树是否自对称 可以回忆我们做过的Leetcode 100 Same Tree 二叉树和Leetcode 226 Invert Binary Tree 二叉树 先可以将左子树进行Invert B ...
- hdu 2955 01背包
http://acm.hdu.edu.cn/showproblem.php?pid=2955 如果认为:1-P是背包的容量,n是物品的个数,sum是所有物品的总价值,条件就是装入背包的物品的体积和不能 ...
- SmartThings物联网平台简介
SmartThings是一个智能设备控制系统,它包括:SmartThings Cloud(云平台).SmartThings Hub(网关).SmartThings Mobile(手机客户端)以及各种关 ...
- asp.net MVC的EF与easyui DataGrid数据绑定
页面代码 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewpor ...
- 通过反射获取Android通知栏高度
public static int getStatusBarHeight(Context context){ Class<?> c = null; Object obj = null; F ...
- MySQL 学习用employee数据库表参考使用
download place:https://launchpad.net/test-db/ ,choose this file from the right panel:employees_db-fu ...