0

我已经问过这个关于科学计算的问题,并想知道这个论坛是否可以提供替代方案。

我需要模拟大量经历软体变形的代理的运动。控制代理移动的过程很复杂,因此整个过程需要并行化。

模拟需要在 3D 中可视化。因为我将在许多不同的节点(MPI 甚至 MPI+GPGPU)上运行这个模拟,所以我不希望可视化实时运行,而是模拟应该在完成后输出一个视频文件。

(我不是在寻找令人敬畏的 AAA 视频游戏质量的图形,此外,移动代码会占用足够的 CPU 时间,所以我不想通过添加重量级的渲染代码来进一步减慢应用程序的速度)

我认为制作这样的视频有三种方法:

  • 将原始像素信息写入 BMP 并将它们拼接在一起 - 我已经在 2D 中完成了此操作,但我不知道这将如何在 3D 中工作......
  • 使用 OpenGL/Direct3D 的离线模拟,渲染到缓冲区而不是屏幕。
  • 将某种遥测数据写入文件,指示每个代理的位置、每个时间间隔的变形等,然后在模拟完成后将其用作 OpenGL/Direct3D 程序的输入。

这个问题之前必须解决 - HPC 中有大量的可视化

总结:如何以离线方式轻松渲染视频(非常基本的图形而不是玩具故事 - 我只需要 3D blob)而不会对性能产生很大影响?

4

1 回答 1

1

我的想法是将顶点的不同状态/位置存储为适当文件格式的顶点动画的单帧。合适的格式是COLLADA,它是基于 XML 的 3D 场景的中间格式,因此可以使用通用 XML 库轻松解析和编写。还有一些用于 COLLADA 的专用库,例如​​ COLLADA DOMpycollada。然后可以使用您选择的渲染软件(3D Studio Max、Blender、Maya ...)将包含顶点动画的 COLLADA 文件直接渲染为视频文件

于 2012-11-12T22:36:13.213 回答