交互式浮力模型:程序动画与渲染的关键技术
在程序动画与渲染领域,模拟物体在液体中的行为是一个复杂而重要的问题。本文将详细介绍一种交互式浮力模型,该模型涵盖了从物体质量属性计算到液体与固体耦合,再到液体在可渗透物体内部流动模拟的一系列关键技术。
1. 区域向量纹理(Area-Vector Texture)
为了进行后续的计算,需要用到表面法向量和积分段的面积。为此,定义了一种名为区域向量纹理(AVT)的数据结构。设 $T_i$ 为 AVT 的第 $i$ 个纹理元素,它存储一个 3D 向量,其方向与该点的表面法向量 $n_i$ 平行,其大小是该纹理元素在世界坐标中覆盖的面积 $a_i$,即存储 $A_i = a_in_i$ 作为一个 4 元组:
$T_i =< n_{x_i}, n_{y_i}, n_{z_i}, a_i >$
其中,$T_i$、$n_{x_i}$、$n_{y_i}$ 和 $n_{z_i}$ 是纹理元素法向量的分量,$a_i$ 是该纹理元素在世界空间中覆盖的面积。
2. 质量属性计算
基于之前定义的术语和数据结构,可以计算给定多边形网格的质量属性,包括总质量、质心和惯性张量。
- 总质量计算 :
由一定体积 $V$ 包围的固体物体的质量计算公式为:
$M = \int_V \rho dv = s_1$
如果物体表面有合适的纹理映射,上述积分可以近似为使用纹理映射的纹理元素的求和:
$M = \rho \sum_{texels\ i} a_i c_i y_i = \rho \sum_{texels\ i} A_{y_i
超级会员免费看
订阅专栏 解锁全文
738

被折叠的 条评论
为什么被折叠?



