0

我正在对我研究的双星类型进行新的可视化,我从现有的代码开始,在给定一些合理的物理参数的情况下,它可以很好地观察它们。

但是,我希望在动画方面有更多的自由,我的第一个想法是以我读过的其他东西(搅拌机?)可以读取的格式输出程序制作的模型(Wavefront?) .OBJ 格式,虽然它看起来很简单,但我似乎无法正确理解;导入失败,我怀疑这是因为我不了解对象的实际存储方式。

我开始的程序是一个名为BinSim的 C++ 项目,它已经有一个标志,可以将所有创建的对象的顶点输出到日志文件。看起来很简单,只是一个索引列表,x、y、z 和 R、G、B(有时是 A)值。我一直在使用的示例输出格式可以在这里找到;每个对象都被分成一个纬度/经度网格,这是一个小片段(创建的所有对象的完整文件超过 180 MB)。

我已经能够看到这些对象被定义为三角形条带,但是我对所有这些都感到困惑,以至于我看不到将顶点列表转换为 .OBJ(或其他)格式的清晰路径. 对不起,如果这真的属于另一个领域(GameDev?),谢谢!

4

1 回答 1

0

OpenGL 不是场景管理系统。它是一个绘图 API,并且从 OpenGL 数据结构开始用于模型存储是乏味的。如前所述,OpenGL绘制事物。有几个绘图图元,三角形条就是其中之一。您从两个顶点(形成一条线)开始,每个下一个传入顶点将最后两个指定顶点的线延伸为一个三角形。Wavefront OBJ 格式不知道三角形条带,您必须将它们分解为单独的三角形,模仿 OpenGL 的做法。

另外不要忘记 Blender 可以使用 Python 脚本轻松扩展,您可以为已有的任何数据编写一个导入脚本,而无需经历使用一些不合适的格式的麻烦。

于 2012-04-05T23:55:53.597 回答