Splashsurf Studio 是一款用于从 SPH(光滑粒子流体动力学)模拟的粒子数据中重建表面网格的库和命令行工具,使用 Rust 语言编写。
核心功能概述
该工具能从 SPH 流体模拟(例如使用 SPlisHSPlasH)生成的粒子数据中,快速重建出封闭的三角网格表面,用于后续的渲染和动画制作。


左:原始粒子 | 中:粗略重建网格 | 右:精细重建网格
生成的网格可导入如 Blender 等 3D 渲染软件,制作出逼真的流体动画。

主要特性
- 快速 Marching Cubes 重建: 基于快速行进立方体算法,支持通过 SPH 梯度计算表面法线。
- 加权表面平滑: 集成论文《Weighted Laplacian Smoothing for Surface Reconstruction of Particle-based Fluids》中的算法,有效去除典型 SPH 模拟的凹凸不平感,同时防止体积损失。
- 子域网格分解: 采用创新的“子域网格”方法进行域分解,提升并行处理能力和缓存利用率,即使处理大规模粒子数据(如上千万粒子)也能在数秒内完成。
- 属性插值: 可将粒子上的标量和矢量属性插值到重建的表面网格上。
- 多格式支持: 支持读取 VTK、VTU、BGEO、PLY、二进制 XYZ、JSON 等粒子文件格式,输出支持 VTK 和 OBJ 网格格式。
推荐工作流程与参数
对于使用 SPlisHSPlasH 的模拟,典型参数如下:
- 粒子半径 (–particle-radius / -r): 模拟中流体的实际粒子半径。
- 平滑长度 (–smoothing-length / -l): 通常设为粒子半径的 2.0 倍(使用立方核函数,紧支撑半径为粒子半径的 4.0 倍)。
- 立方体大小 (–cube-size / -c): Marching Cubes 网格的单元大小(以粒子半径倍数表示),通常在 0.5 到 1.0 之间。
- 表面阈值 (–surface-threshold / -t): 等值面阈值,通常在 0.6 到 0.7 之间。
结合加权平滑以获得最佳效果:
splashsurf reconstruct particles.vtk -r=0.025 -l=2.0 -c=0.5 -t=0.6 --mesh-smoothing-weights=on --mesh-smoothing-iters=15 --normals=on --normals-smoothing-iters=10
安装与使用
安装 CLI 工具(需 Rust 环境):
cargo install splashsurf
安装 Python 绑定:
pip install pysplashsurf
更多详细信息、完整命令行选项和文档,请访问项目 GitHub 主页 或 官方文档。
Splashsurf Studio 为科研和视觉特效领域提供了高效、高质量的粒子流体表面重建解决方案。
资源下载
下载价格免费
©版权声明:本站除原创作品外的资源均收集于网络,只做学习和交流使用,版权归原作者所有,若作商业用途,请购买正版。



评论0