three.js 是否能够显示 FEA 结果?

Is three.js able to show FEA results?

我正在尝试使用 three.js 开发实时风力涡轮机模拟有限元分析软件来显示计算的 3D FEA 结果。就像图像 one frame of FEA result 一样,显示的 3D 风力涡轮机像真实的物理风力涡轮机一样旋转。我每秒可以生成几十个 VTK 格式的结果文件,即每秒几十帧。 我这里有两个问题:

three.jshas a VTK loader。我不认为它本身支持动画,我猜你每帧需要一个 VTK 文件。

也就是说,一般来说,如果可以的话,建议对 three.js 中的模型使用 glTF/GLB。它们的解析效率更高,在 Web 环境中运行良好,并支持多种压缩选项。不过我不确定有哪些 VTK → glTF 转换选项可用。

如果你能得到一个每帧包含一个网格的 glTF 文件,你可以将其转换为动画并尝试使用不同的压缩方式 gltf transform:

# clean up
gltf-transform dedup tmp_animated.glb

# add animation
gltf-transform sequence input.glb tmp_animated.glb \
    --pattern "mesh_name*" \
    --fps 24

# draco compression (option a)
gltf-transform draco tmp_animated.glb output_draco.glb

# meshopt compression (option b) (apply gzip after this)
gltf-transform meshopt tmp_animated.glb output_draco.glb