摘要: 用粒子表示流体最热门的方法就是就是光滑粒子流体动力学(Smoothed Particle Hydrodynamics (SPH).) 这种方法模糊了流体的边界,用有限数量的粒子代表流体,该方法的基本思想是将视作连续的流体(或固体)用相互作用的质点组来描述,各个物质点上承载各种物理量,包括质量、速度等,通过求解质点组的动力学方程和跟踪每个质点的运动轨道,求得整个系统的力学行为阅读全文
posted @ 2019-06-19 00:34 寂灭万乘 阅读(129) 评论(0) 编辑
摘要: 传统SPH方案的主要问题之一是时间步长限制。在原始的SPH中,我们首先从当前设置计算密度,使用EOS计算压强,应用压力梯度,然后运行时间积分。这个过程意味着只需要一定的压缩量就可以触发内核半径内的压力,从而延迟计算。因此,我们需要使用更小的时间步长(意味着更多的迭代),这在计算上是昂贵的。或者,我们可以使用不那么严格的EOS,然而,这个解决方案可能会引入类似弹簧的振荡。微调参数如声速或粘度可以帮助避免此类问题。然而,这并不是一个基本的解决方案,对用户来说也是不切实际的。Solenthaler 和Pajarola通过在SPH模拟中引入预测-校正器概念来解决这个问题。这种又称为预测校正不可压缩SPH(PCISPH),它是一种误差测量算法,假定测量值和期望密度的差值是误差。本篇文章总结我在《Fluid Engine Development》学到关于PCISPH的知识。阅读全文
posted @ 2019-06-20 14:42 寂灭万乘 阅读(56) 评论(0) 编辑
摘要: 用粒子表示流体最热门的方法就是就是光滑粒子流体动力学(Smoothed Particle Hydrodynamics (SPH).) 这种方法模糊了流体的边界,用有限数量的粒子代表流体,该方法的基本思想是将视作连续的流体(或固体)用相互作用的质点组来描述,各个物质点上承载各种物理量,包括质量、速度等,通过求解质点组的动力学方程和跟踪每个质点的运动轨道,求得整个系统的力学行为阅读全文
posted @ 2019-06-19 00:34 寂灭万乘 阅读(129) 评论(0) 编辑
摘要: 断断续续花了一个月,终于把这本书的一二两章啃了下来,理解流体模拟的理论似乎不难,无论是《Fluid Simulation for Computer Graphics》还是《计算流体力学基础及其应用》都能很好帮助程序员去理解这些原理,可在缺乏实践情况下,这种对原理的理解其实跟死记硬背没什么区别。《Fluid Engine Development》提供了一个实现完成的流体模拟引擎以及它的编程实现原理,充分帮助程序员通过编程实现流体动画引擎,以此完成流体模拟学习的第一步。这不,早在今年一月就嚷嚷研究学习流体模拟却苦苦挣扎无法入门的我,在抄着[作者的代码](https://github.com/doyubkim/fluid-engine-dev)看着作者的书的情况,终于实现了一个流体模拟引擎。我终于可以自信地说自己已经入门了流体模拟o(╥﹏╥)o。这篇博客主要对流体引擎开发的基础知识介绍,下一篇文章会讲光滑粒子流体动力学。阅读全文
posted @ 2019-06-18 17:02 寂灭万乘 阅读(103) 评论(0) 编辑
摘要: 我个人对基于物理的动画很感兴趣,最近在尝试阅读《Fluid Engine Development》,由于内容涉及太多的数学问题,而单纯学习数学又过于枯燥,难以坚持学习(我中途放弃好多次了),打算尝试通过编写博客总结知识的学习方法来学习。 在计算数值问题时,我们经常遇到线性方程,比如基于网格的流体模拟在求解扩散和压强,需要求解线性方程组。阅读全文
posted @ 2019-06-18 16:54 寂灭万乘 阅读(38) 评论(0) 编辑
摘要: 好久没写博客了,最近一直看书和学习(抄)别人的代码。学到的东西都是别人总结好的,不好意思丢到自己的博客。否则感觉就是在抄书了。最近看CgTutorial,发现像素和片元是存在区别的,以前一直把两者当一回事,所以写篇博客记录一下阅读全文
posted @ 2019-04-25 10:26 寂灭万乘 阅读(62) 评论(0) 编辑
摘要: 大多游戏程序员和图形程序都知道渲染流水线这个概念,它的本质是将3D的场景映射到显示屏上的一系列操作。它主要分3个阶段:应用程序阶段,几何阶段,光栅化阶段。将摄像机位置,光照,模型的图元输入到几何阶段便是应用程序阶段。进行多边形和顶点操作把3d数据映射到2d的阶段便是几何阶段。给定进过变换和投影之后的顶点,颜色,纹理坐标,给每个像素正确配色,这个阶段叫光栅化阶段。具体的流水线概念,这篇文章不做详细介绍,这篇文章主要讲解几何阶段中的包围体测试。阅读全文
posted @ 2018-11-10 12:23 寂灭万乘 阅读(72) 评论(0) 编辑
摘要: 我们来实现一下来自水面的浮力阅读全文
posted @ 2018-11-05 14:32 寂灭万乘 阅读(202) 评论(0) 编辑
摘要: 很多游戏描述的世界都会含有流体表面,他们可能是个水池,可能是桶强酸,或者一个熔岩坑。为使这些对象的表面如同物理世界一样,需要模拟波在液体表面的扰动传播方式。阅读全文
posted @ 2018-11-02 11:03 寂灭万乘 阅读(257) 评论(0) 编辑
摘要: 之前对坐标系的变换背后的数学原理感到不解,花时间研究下,发现只是简单的矩阵变换。阅读全文
posted @ 2018-09-28 21:02 寂灭万乘 阅读(60) 评论(0) 编辑
摘要: 洗牌算法是一个比较常见的面试题。 一副扑克54张牌,有54!种排列方式。最佳的洗牌算法,应该能够等概率地生成这54!种结果中的一种阅读全文
posted @ 2018-09-01 14:36 寂灭万乘 阅读(1068) 评论(3) 编辑