three.js 是否能够显示 FEA 结果?
Is three.js able to show FEA results?
我正在尝试使用 three.js 开发实时风力涡轮机模拟有限元分析软件来显示计算的 3D FEA 结果。就像图像 one frame of FEA result 一样,显示的 3D 风力涡轮机像真实的物理风力涡轮机一样旋转。我每秒可以生成几十个 VTK 格式的结果文件,即每秒几十帧。
我这里有两个问题:
- 我想知道有什么方法可以使用 three.js 来显示 vtk 格式文件或一般类型的 FEA 文件(如 FEA 软件 ANSYS、COMSOL 输出)?接受任何文件格式转换。
- 我只能使用加载功能逐帧加载 3D FEA 文件吗? (单个FEA结果文件的大小可能很大,帧率可能受网络质量影响很大)也许提前生成几帧动画可以获得更好的性能?
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
我正在尝试使用 three.js 开发实时风力涡轮机模拟有限元分析软件来显示计算的 3D FEA 结果。就像图像 one frame of FEA result 一样,显示的 3D 风力涡轮机像真实的物理风力涡轮机一样旋转。我每秒可以生成几十个 VTK 格式的结果文件,即每秒几十帧。 我这里有两个问题:
- 我想知道有什么方法可以使用 three.js 来显示 vtk 格式文件或一般类型的 FEA 文件(如 FEA 软件 ANSYS、COMSOL 输出)?接受任何文件格式转换。
- 我只能使用加载功能逐帧加载 3D FEA 文件吗? (单个FEA结果文件的大小可能很大,帧率可能受网络质量影响很大)也许提前生成几帧动画可以获得更好的性能?
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