惊涛怪浪(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中也似乎有了实现. ...
随机推荐
- js 函数提升和变量提升
总结: 函数提升比变量提升优先级高! 词法分析 词法分析方法: js运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤: 分析参数 再分析变量的声明 分析函数说明 具体步骤如下: 函数在运行 ...
- Python核心编程笔记(类)
Python并不强求你以面向对象的方式编程(与Java不同) # coding=utf8 class FooClass(object): version = 0.1 def __init__(self ...
- python继承
Python继承 继承实例: 父类和子类的关系: 继承树: 没有父类就继承object类,不要忘记调用super().__init__来初始化父类 代码: class Person(object): ...
- 深入学习系列--Data Structure--02字符串
字符串可以说是我们实际工作中使用最多的数据类型了,常见的字符串操作包括链接.取子串.格式化等.这部分内容总体来说比较容易理解,最难的部分要数字符串的模式匹配方法了,尤其是KMP算法,需要通过实践加以记 ...
- MyEclipse8.6中提交SVN报错
上周五(11月27日)的时候,从TortoiseSVN提交项目报错,然后直接从MyEclipse中检出来,修改后提交同样报错. MyEclipse8.6中提交SVN报错,错误提示如下: commit ...
- [原创]推荐一款强大的.NET程序内存分析工具.NET Memory Profiler
[原创]推荐一款强大的.NET程序内存分析工具.NET Memory Profiler 1 官方网站:http://memprofiler.com/2 下载地址:http://memprofiler. ...
- Python:字符编码详解
相关文章 Python中文编码问题:为何在控制台下输出中文会乱码及其原理 1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Informati ...
- [AYUI]QQ管家源码已经开源
(0-50元 黑色字体 享受AY 1周的 ayui 技术问答) (50-100元 绿色字体 享受AY 15天的 ayui 技术问答) (100-150元 蓝色字体 享受AY 20天的 ayui ...
- 分布式代码管理 tortoisehg mercurial
下载客户端: https://bitbucket.org/tortoisehg/files/downloads mercurial客户端下载:http://mercurial.s ...
- nexus安装实例
Nexus安装 1.下载Nexus:[笔者版本nexus-2.11.2-03-bundle.tar.gz] 2. 安装nexus [root@localhost local]# pwd /usr/lo ...