【CG物理模拟系列】粒子法--表面生成手法(上)

使用粒子法模拟水流时,水流表面的生成主要分成如下两部分。

表面隐函数

  • Muller的色彩函数 [1]
  • Zhu and Bridson的方法 [2]
  • Adams等的方法 [3]
  • Anisotropic Kernel [4]
  • Upsampling法 [5]

生成网格(Mesh)

  • Marching Cubes(MC) [6]
  • Regularised marching tetrahedra(RMT) [7]
  • Screen Space Mesh [8], [9]
本篇先介绍 表面隐函数 中的Anisotropic kernel法。

各向异性内核函数(Anisotropic kernel)

从粒子中生成隐函数的时候,使用下式这样的平滑化内核函数。

anisotropic_kernel.eq1.gif

其中,anisotropic_kernel.eq2.gif是换算系数,anisotropic_kernel.eq3.gif是模拟的次元数, anisotropic_kernel.eq4.gif是local support(距离变远时值平滑减小)的对称函数。 这个定义类似于所谓的元球技术(Metaball), 生成的表面呈凹凸不平状(下图左)。像这样的表面我们称为blobby面。

为了改进blobby的表面形状,Yu等人[10] 导入了各向异性内核(anisotropic kernel)来取代之前的各向同性内核。 也就是,使用正定矩阵anisotropic_kernel.eq6.gif来代替anisotropic_kernel.eq5.gif

anisotropic_kernel.eq7.gif

此时,矩阵anisotropic_kernel.eq8.gif中包含了旋转和伸缩变换,并且使用椭圆来取代球形状。通过把法线方向设定成椭圆短轴所在的方向,可以得到下图右侧这样平滑且边缘清晰的表面。另外,为了消除靠近表面粒子的不规则分布,也将粒子位置的关联函数进行平滑化处理,计算更新后位置anisotropic_kernel.eq9.gif。对于全部的流体粒子,通过计算anisotropic_kernel.eq10.gifanisotropic_kernel.eq11.gif我们可以得到下式这样的隐函数场。

anisotropic_kernel.eq12.gif
anisotropic_kernel.jpg
(左) 各向同性内核,(右)各向异性内核的表面
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值