我个人对基于物理的动画很感兴趣,最近在尝试阅读<Fluid Engine Development>,由于内容涉及太多的数学问题,而单纯学习数学又过于枯燥,难以坚持学习(我中途放弃好多次了),打算尝试通过编写博客总结知识的学习方法来学习. 在计算数值问题时,我们经常遇到线性方程,比如基于网格的流体模拟在求解扩散和压强,需要求解线性方程组. 线性方程组 线性方程组 \(\left\{ \begin{matrix} 2 * x - y =3 \\ -x + 2 * y = 6 \end{matrix…
传统SPH方案的主要问题之一是时间步长限制.在原始的SPH中,我们首先从当前设置计算密度,使用EOS计算压强,应用压力梯度,然后运行时间积分.这个过程意味着只需要一定的压缩量就可以触发内核半径内的压力,从而延迟计算.因此,我们需要使用更小的时间步长(意味着更多的迭代),这在计算上是昂贵的.或者,我们可以使用不那么严格的EOS,然而,这个解决方案可能会引入类似弹簧的振荡.微调参数如声速或粘度可以帮助避免此类问题.然而,这并不是一个基本的解决方案,对用户来说也是不切实际的.Solenthaler 和…
断断续续花了一个月,终于把这本书的一二两章啃了下来,理解流体模拟的理论似乎不难,无论是<Fluid Simulation for Computer Graphics>还是<计算流体力学基础及其应用>都能很好帮助程序员去理解这些原理,可在缺乏实践情况下,这种对原理的理解其实跟死记硬背没什么区别.<Fluid Engine Development>提供了一个实现完成的流体模拟引擎以及它的编程实现原理,充分帮助程序员通过编程实现流体动画引擎,以此完成流体模拟学习的第一步.这不…
用粒子表示流体最热门的方法就是就是光滑粒子流体动力学(Smoothed Particle Hydrodynamics (SPH).) 这种方法模糊了流体的边界,用有限数量的粒子代表流体,该方法的基本思想是将视作连续的流体(或固体)用相互作用的质点组来描述,各个物质点上承载各种物理量,包括质量.速度等,通过求解质点组的动力学方程和跟踪每个质点的运动轨道,求得整个系统的力学行为 经典核函数 SPH算法涉及到"光滑核"的概念,可以这样理解这个概念,粒子的属性都会"扩散"到…
一.线性规划问题 已知目标函数和约束条件均为线性函数,求目标函数的最小值(最优值)问题. 1.求解方式:用linprog函数求解 2.linprog函数使用形式: x=linprog(f,A,b)  x=linprog(f,A,b,Aeq,beq)  x=linprog(f,A,b,Aeq,beq,lb,ub)  x=linprog(f,A,b,Aeq,beq,lb,ub,x0)  x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)   [x,fval]=linp…
1. 信号函数调用的时候仅仅会发送出信号,所以不需要执行 ,所以对于信号声明就行,但是不需要进行定义. 2. 只有槽函数可以声明为public,private,或者是protected的,而信号不行.可以将slot仅仅看成是一个与信号相关联的成员函数. 3. Qt的元对象指的是QMetaObject的实例,Qt中的元对象系统是用来处理对象间通讯的信号/槽机制.运行时的类型信息和 动态属性系统.虽然你使用QObject作为一个基类而不使用Q_OBJECT宏和元对象代码是可以的, 但是如果Q_OBJ…
扩展中国剩余定理(EXCRT)学习笔记 用途 求解同余方程组 \(\begin{cases}x\equiv c_{1}\left( mod\ m_{1}\right) \\ x\equiv c_{2}\left( mod\ m_{2}\right) \\ \ldots \\ x\equiv c_r\left( mod\ m_r\right) \end{cases}\) 其中 \(m_1,m_2,m_3...m_k\) 为不一定两两互质的整数, 求 \(x\) 的最小非负整数解. 求法 考虑两两合…
  Sparse Filtering 是一个用于提取特征的无监督学习算法,与通常特征学习算法试图建模训练数据的分布的做法不同,Sparse Filtering 直接对训练数据的特征分布进行分析,在所谓"好特征"的指导下构建目标函数来进行优化,其中只涉及一个可调参数.本文将主要讨论两个问题: (1)什么样的特征是好的特征: (2)如何利用好特征的条件来构造 Sparse Filtering 的目标函数. 目录链接 (一)网络结构与特征矩阵 (二)好特征的刻画 (三)目标函数的建立和求解…
提出混合模型主要是为了能更好地近似一些较复杂的样本分布,通过不断添加component个数,能够随意地逼近不论什么连续的概率分布.所以我们觉得不论什么样本分布都能够用混合模型来建模.由于高斯函数具有一些非常有用的性质.所以高斯混合模型被广泛地使用. GMM与kmeans相似,也是属于clustering,不同的是.kmeans是把每一个样本点聚到当中一个cluster,而GMM是给出这些样本点到每一个cluster的概率.每一个component就是一个聚类中心. GMM(Gaussian Mi…
调试JavaScript 随着如今JavaScript应用的越来越广泛,在面对前端工作的时候,开发人员须要强大的调试工具来高速有效地解决这个问题.我们文章的主角,Chrome DevTools就提供了这么个工具来帮助我们降低调试JavaScript代码的痛苦. 顺便说下,不同版本号的Chrome浏览器的DevTools可能稍微有所不同,除了数字递增的版本号号以外.Chrome浏览器包含Stable正式版.Beta測试版.Dev开发版.Canary金丝雀版以及鼻祖 Chromium版这几个分支.博…