关于MAC网格不可压流体求解中投影矩阵的笔记

现假设我们有一流体格i,和与之相邻的格子j。我们研究投影矩阵A中,代表(i,j)格子对的元素(下简记为A[i,j])和i格子所对应的对角元(下简记为A[i,i])的数值情况。注意,i和j都是格子,本身坐标是一个向量,不要与矩阵坐标相混淆。

现列举j的几种情况。

情况一:j亦是流体格。[……]

继续阅读

Robert Bridson书中关于自由表面求解的笔记

Fluid Simulation for Computer Graphics第二版,8.2节。

在求解自由表面流体时,简单地把计算域划分为液体格和气体格,会导致artifact.如果能更精确地追踪表面,可以修改一下在水-气界面附近计算压强差的方式。

根据Gibou et al. 2002[……]

继续阅读

Ubuntu 20.04 Server软路由配置折腾记录

记录一下最近的一次折腾,使用一台安装了Ubuntu 20.04 Server的工控机搭建软路由,并成功配置家庭NAS的内网访问。计算机网络没好好学,全靠本能debug,感谢lcy同志的全程技术科普(

本文主要参考了https://blog.lcy.im/2017/09/14/%E4%BB%8E[……]

继续阅读

Real-time exploration of regular volume data by adaptive reconstruction of isosurfaces读书笔记

本文讨论使用Octree(八叉树)重建表面的问题。

3 Continuous isosurfaces

讨论连续性问题。

如果在Octree上储存数据,那么在不同大小的格子交界的地方,数据可能会不连续。

本文采用的方法:在大小格子交界处,让大格子在小格子上sample数值:

[……]

继续阅读

OpenGL屏幕像素坐标问题

传给glutMouseFunc()的(x,y)是左上至右下的坐标:x表示离屏幕左边缘的像素数,y表示离屏幕上边缘的像素数,如图:

而glReadPixels()采用的坐标系统则与此不同,它是从左下到右上的。也就是说,x表示离屏幕左边缘的像素数,y表示离屏幕下边缘的像素数,如图:

[……]

继续阅读

读书笔记:A Model for Soap Film Dynamics with Evolving Thickness

3 SOAP FILM DYNAMICS WITH VARYING THICKNESS

3.1 Definitions and Setting

流体在薄膜上的流动遵循带有表面张力项的无粘NS方程:

这个x上面一点就是速度的意思。(1)右端第一项是表面张力。里面的u代表气-液界面[……]

继续阅读

Efficient elasticity for character skinning with contact and collisions部分翻译(碰撞检测部分)

7 约束和碰撞

我们使用点约束(point constraints),这样一方面施加软体约束(例如bone attachments),一方面解决物体之间的碰撞/自碰撞。特别地,我们在规则网格(lattices)上放一些代理点(proxy points),在这些点上记录力,并用三次插值法把这些力[……]

继续阅读

读书笔记:An Introduction to Physically Based Modeling: Rigid Body Simulation I—Unconstrained Rigid Body Dynamics(SIGGRAPH’97 COURSE NOTES)

1 模拟基础

用“状态向量”表示一个质点的状态:

如果三维,就是六个数。这个Y可以扩展到n个质点:

我们先暂且考虑一个质点。F(t)是该质点t时刻所受合力。假设该点有质量m,那么状态向量的变化率就是:

2 刚体基本概念

2.1 位置和方向

质点没有方向[……]

继续阅读