Fluid Simulation–Driven Effects in Dark Void
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相关推荐
- LAGRANGIAN FLUID SIMULATION WITH CONTINUOUS CONVOLUTIONS
LAGRANGIAN FLUID SIMULATION WITH CONTINUOUS CONVOLUTIONS CONTINUOUS CONVOLUTIONS 传统卷积定义 非结构化粒子集卷积定义 ...
- fluid simulation
在国外,每次拍一部电脑制作的电影,不仅有非常优秀的美术人员参与其中,还有自己的一支技术研发队伍.为了取得视觉效果上的突破,常用的3D制作软件总是达不到导演的要求.因此总是要由工程师们与学术界紧密合作开 ...
- 《Fluid Engine Development》 学习笔记2-基础
断断续续花了一个月,终于把这本书的一二两章啃了下来,理解流体模拟的理论似乎不难,无论是<Fluid Simulation for Computer Graphics>还是<计算流体力 ...
- opengl动画_物理动画流体实现流程(Physically Based Fluid Animation)
0 说在开始 发现介绍物理动画实现流程的文章较少,入门需要一定时间,所以才有了这篇文章.此文章不具体介绍算法部分和数学公式,例如SPH.欧拉公式.NS公式.弹簧质点模型等等,而是如何去构造自己的第一个 ...
- cocos 粒子编辑_编辑精选–粒子的细节!
cocos 粒子编辑 From little motes of dust floating in the sunlight to the magnificence of a supernova, ma ...
- Unity3D 引擎学习2022资料整理(二)
Utils C APR:Apache Portable Runtime:另一个跨平台的实用函数库.Apache2.0.官网 C Algorithms:一个常用算法和数据结构的集合.官网 CPL:The ...
- 两个关于水花的测试。
海面上的水花的特效,水花是在浪尖处发射出来的,目前还没有让发射参数自动化的方法,都是表达式.一旦改变浪的性质,发射的粒子就要重新写动态了. Splash on the ocean emitted fr ...
- Introdution to 3D Game Programming With DirectX11 第11章 习题解答
11.1 这道题要注意使用了line strip,由于曾经一直用triangle list,所以在几何渲染的时候easy算错定点描绘的顺序. 贴一些代码,大概就能把这个问题解释清楚了,由于框架还不是特 ...
- 科研必备?年入百万?来看这份知乎大佬的图形学书籍清单!
学习一下知乎大佬的推荐书单 目前细分方向暂时分为Introduction(介绍图形学.电影/动画工业的基础知识),Geometry Processing(几何处理,建模等),Rendering(离线/ ...
最新文章
- ❤️手撕这十道HiveSQL题还不能吊打面试官,却能保你不被吊打❤️【推荐收藏】
- iOS基础问答面试题连载-附答案
- 嵌入式 linux 程序不能运行,嵌入式Linux中在开发板上/usr/bin目录下不能运行自己交叉编译的程序...
- Map value类型不同的写法
- jBPM开发入门指南(4)
- 数据结构之线性表(附代码)
- vue router name命名规范_vue-router使用
- android 移除泛型中元素_Android 代码混淆 混淆方案
- hplus--H+ V2.3 (中文版)
- 零成本学arduino教程——光敏电阻传感器
- 五大领域总目标指南_幼儿园五大领域总目标
- 光电二极管的工作原理
- Linux 服务器配置 ASF 云挂卡
- 报The requested URL / was not found on thisserver. 网站打开出现404
- 一个Office 365中有两个产品激活授权,怎么去除不需要的授权信息
- java对接portal协议_Portal协议分析
- win2019微软更新服务器,将 Windows Server 2016 升级到 Windows Server 2019
- python甜橙歌曲音乐网站平台源码
- webpack : 无法加载文件 C:\Users\骚恒\AppData\Roaming\npm\webpack.ps1,因为在此系统上禁止运行脚本。
- 素问之二四气调神大论篇
热门文章
- 数学建模——时间序列模型及spss实现
- 2021年全球患者参与软件收入大约13640百万美元,预计2028年达到43690百万美元,2022至2028期间,年复合增长率CAGR为19.6%
- java模拟乒乓球比赛
- 小说分享《相互的感情》1
- 微信小程序-实现换一换,刷新列表数据
- 显式曲线 隐式曲线 曲率公式推导
- 某在线少儿英语培训 国内AWS云/阿里云/腾讯云 三朵云互联解决方案(一期)
- 计算机专业学英语的好处,英语对计算机专业的重要性及如何提高英语水平
- 如何取消OneDriver自动登陆并删除已经同步数据?
- 无氧间歇家庭瘦身(chinafitter)