http://www.microsoft.com/downloads/details.aspx?familyid=707038c1-f5d6-4b18-8659-cba0795effe6&displaylang=en

gamefest2010的一篇文章。

主要是讲fluid simulation驱动的一些东西,这里不只是液体了,更多的是smoke,叶子等这些数量更少离散度更高的东西,有理论有engineering,赞。


simulation部分随着多核和做通用计算的gpu的发展越来越进入研究热点。

而且rendering的确走的是比较快,渲染的真实度已经很高了,但是东西一动起来就感觉不是那么好,资源向这块倾斜可以解决短板,很不错。


开篇讲了历史,2003年fluid simulation算法已经比较到位,但是硬件实在不行,小打小闹的弄一点实在没意思。

然后列了下有fuild simulation驱动的烟的游戏:

  • hellgate
  • batman
  • stalker
  • cryostasis----这个孤陋寡闻了,没听过,用的physx fuild simulation,就上它的图吧,效果还是挺好的呃:


fluid simulation数学基础是Navier Stokes Equation,细节wikipedia看吧

http://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations

通篇的数学很华丽,看过之后就觉得engineer真的也就是魔法师(数学家)那里要个魔法药水到处耍的小屁孩。

NavierStokesEquation可以描述水体气流之外还能描述银河系的恒星分布,可以帮助建设power station, 研究污染,还能研究磁力。。。

崇拜,仰慕。

这个公式基于牛顿第二定律,主要是动量守恒部分,

简单来讲就是描述了速度对时间的偏导与压强(p),水的弹力(T),外力(f)之间的关系,之后就是可以互相推导了。

落实到gamedev的engineering部分,老规矩,离散化----particle based or grid based。

各有利弊,但是总体来讲grid base更好一些,毕竟这样是更加稳定可控的离散化的一种方式,比起完全看情况的particle是要好多了。

grid base要做的事情基本如下:

1, flexible grid : 不可能全场景去建立grid然后simulate,performance不允许。

但是一个有限大小的static grid又不对。

所以就弄个可以移动的grid,grid内部的smoke就fluid simulate,出去了就自生自灭。

2,建立“力场”,就是在grid上分布的力。

每个grid有个力的数值,所有grid的力的分布情况有几种描述,包括

  • Basic semi-Lagrangian advection
  • MacCormack scheme

lagrangian效果还可以,但是明显maccormack的那个更好,而且更适合并行计算。

更新每个grid的立场分布就靠他们了。

3,更新速度:依据力场更新速度:

v = v - delta(p);p是统一到一起的力。

4,加上外力和阻挡物,就可以做出turbulence:


接下来是render engineering部分,particle的dynamicbuffer,instancing,gpu translucency sort,volume lighting。

效果的确赞啊。

Fluid Simulation–Driven Effects in Dark Void相关推荐

  1. LAGRANGIAN FLUID SIMULATION WITH CONTINUOUS CONVOLUTIONS

    LAGRANGIAN FLUID SIMULATION WITH CONTINUOUS CONVOLUTIONS CONTINUOUS CONVOLUTIONS 传统卷积定义 非结构化粒子集卷积定义 ...

  2. fluid simulation

    在国外,每次拍一部电脑制作的电影,不仅有非常优秀的美术人员参与其中,还有自己的一支技术研发队伍.为了取得视觉效果上的突破,常用的3D制作软件总是达不到导演的要求.因此总是要由工程师们与学术界紧密合作开 ...

  3. 《Fluid Engine Development》 学习笔记2-基础

    断断续续花了一个月,终于把这本书的一二两章啃了下来,理解流体模拟的理论似乎不难,无论是<Fluid Simulation for Computer Graphics>还是<计算流体力 ...

  4. opengl动画_物理动画流体实现流程(Physically Based Fluid Animation)

    0 说在开始 发现介绍物理动画实现流程的文章较少,入门需要一定时间,所以才有了这篇文章.此文章不具体介绍算法部分和数学公式,例如SPH.欧拉公式.NS公式.弹簧质点模型等等,而是如何去构造自己的第一个 ...

  5. cocos 粒子编辑_编辑精选–粒子的细节!

    cocos 粒子编辑 From little motes of dust floating in the sunlight to the magnificence of a supernova, ma ...

  6. Unity3D 引擎学习2022资料整理(二)

    Utils C APR:Apache Portable Runtime:另一个跨平台的实用函数库.Apache2.0.官网 C Algorithms:一个常用算法和数据结构的集合.官网 CPL:The ...

  7. 两个关于水花的测试。

    海面上的水花的特效,水花是在浪尖处发射出来的,目前还没有让发射参数自动化的方法,都是表达式.一旦改变浪的性质,发射的粒子就要重新写动态了. Splash on the ocean emitted fr ...

  8. Introdution to 3D Game Programming With DirectX11 第11章 习题解答

    11.1 这道题要注意使用了line strip,由于曾经一直用triangle list,所以在几何渲染的时候easy算错定点描绘的顺序. 贴一些代码,大概就能把这个问题解释清楚了,由于框架还不是特 ...

  9. 科研必备?年入百万?来看这份知乎大佬的图形学书籍清单!

    学习一下知乎大佬的推荐书单 目前细分方向暂时分为Introduction(介绍图形学.电影/动画工业的基础知识),Geometry Processing(几何处理,建模等),Rendering(离线/ ...

最新文章

  1. ❤️手撕这十道HiveSQL题还不能吊打面试官,却能保你不被吊打❤️【推荐收藏】
  2. iOS基础问答面试题连载-附答案
  3. 嵌入式 linux 程序不能运行,嵌入式Linux中在开发板上/usr/bin目录下不能运行自己交叉编译的程序...
  4. Map value类型不同的写法
  5. jBPM开发入门指南(4)
  6. 数据结构之线性表(附代码)
  7. vue router name命名规范_vue-router使用
  8. android 移除泛型中元素_Android 代码混淆 混淆方案
  9. hplus--H+ V2.3 (中文版)
  10. 零成本学arduino教程——光敏电阻传感器
  11. 五大领域总目标指南_幼儿园五大领域总目标
  12. 光电二极管的工作原理
  13. Linux 服务器配置 ASF 云挂卡
  14. 报The requested URL / was not found on thisserver. 网站打开出现404
  15. 一个Office 365中有两个产品激活授权,怎么去除不需要的授权信息
  16. java对接portal协议_Portal协议分析
  17. win2019微软更新服务器,将 Windows Server 2016 升级到 Windows Server 2019
  18. python甜橙歌曲音乐网站平台源码
  19. webpack : 无法加载文件 C:\Users\骚恒\AppData\Roaming\npm\webpack.ps1,因为在此系统上禁止运行脚本。
  20. 素问之二四气调神大论篇

热门文章

  1. 数学建模——时间序列模型及spss实现
  2. 2021年全球患者参与软件收入大约13640百万美元,预计2028年达到43690百万美元,2022至2028期间,年复合增长率CAGR为19.6%
  3. java模拟乒乓球比赛
  4. 小说分享《相互的感情》1
  5. 微信小程序-实现换一换,刷新列表数据
  6. 显式曲线 隐式曲线 曲率公式推导
  7. 某在线少儿英语培训 国内AWS云/阿里云/腾讯云 三朵云互联解决方案(一期)
  8. 计算机专业学英语的好处,英语对计算机专业的重要性及如何提高英语水平
  9. 如何取消OneDriver自动登陆并删除已经同步数据?
  10. 无氧间歇家庭瘦身(chinafitter)