在基于粒子的流体模拟中,Marching Cubes$^{[1]}$是常用的、流行的表面重建算法。但在Marching Cubes算法构建表面网格之前需要获得整个流体区域的标量场,这个标量场需要我们根据流体的粒子计算得到,这个标量场的质量好坏与最终重建得到的网格质量好坏息息相关。针对采用Marching Cubes算法重建粒子流体表面网格的方法,学者们都着重关注如何提高重建出来的流体网格质量、如何提高表面重建过程的时间效率和内存效率,因此我们从表面网格质量、重建算法效率两方面着手基于粒子的流体表面重建的综述。

研一上学期课程比较繁重,加上在实验室要做的事情也多,所以最近博客都没更新了。最近数图课上到频域变换处理相关章节,其中的傅里叶变换其实在图形学领域也有颇多的应用(例如大规模的海水模拟),遂写下这篇博客整理了一些关于傅里叶变换的内容。

在基于欧拉网格的烟雾模拟中,流体与自由面的接触面是一个模糊的边界,因此无需对烟雾的边界进行对流。但在液体模拟中,流体与自由面之间是有一个明确的边界,因此我们需要显式地跟踪这个流体边界来模拟液体的物理行为,基于水平集的自由表面流(Free-Surface Flow)是目前的主流方法。

基于粒子与基于网格的流体模拟算法是计算机图形学中的流体模拟界的两大算法框架,这两种算法分别对应了物理模拟中的两个视角:拉格朗日视角和欧拉视角。与基于粒子的拉格朗日流体模拟解然不同,基于欧拉网格的流体模拟采用了完全不同的算法策略,它不再关注随着物理规律运动的流体粒子,而将目光转向空间中的一组固定的网格点。

本文主要是流体不可压缩投影,在进行半拉格朗日对流之后,还需要对流体速度进行修正,使流体的速度场散度为零。主要是关于流体压强的泊松方程求解,通常采用共轭梯度法求解大规模稀疏矩阵的线性方程组,辅以不完全的Cholesky因子化。涉及到的数学内容比较多。

偶然在知乎上看到图形学大佬的几篇关于二维渲染绘制的文章,感觉非常有趣。与普通的光线求交不同,这里的二维渲染采用了光线步进法和符号距离场。下图就是渲染出来的效果,二维虽然少了一维,但渲染开销依旧大,渲染下面的这张图开启了多线程也花费了1个半小时多的时间。



博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议

本站使用 Material X 作为主题 , 总访问量为 次 。
载入天数...载入时分秒...