2012-04-05 50 views
0

我的工作使双星我学习的类型的新的可视化,而且我从他们呈现的美景现有的代码开始给出一些合理的物理参数。列表从OpenGL图像verticies的东西可导入

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

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

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

回答

0

OpenGL是不是一个现场管理系统。这是一个绘图API,并从模型存储的OpenGL数据结构开始是乏味的。正如已经说过的,OpenGL 吸取了的东西。有几个绘图基元,三角形条是其中之一。您从两个顶点开始(形成一条直线),每个下一个传入顶点将最后两个指定顶点的直线延伸至三角形。 Wavefront OBJ格式不知道三角形条带,你必须将它们分解成单独的三角形,模拟OpenGL的方式。

另外不要忘记,搅拌机很容易扩展使用Python脚本,你可以只写任何数据,你已经无需通过使用一些不适合格式的麻烦去一个导入脚本。

+0

以不同的方式创建模型超出了本项目的范围,因为没有理由重新发明这个特殊的轮子。 我希望在转动三角带到更有用的东西一些具体的建议。我知道Blender是可扩展的,我可以编写一个导入程序,而这正是我想要做的。 – Ryan 2012-04-06 01:02:32

+1

该示例输出文件Ryan中没有连接信息。是[m] [n]的第一个索引[m]是条索引吗?如果是的话就可以通过由一个n个迭代和发射3个顶点[M] [N],[M] [N + 1]和[M]产生从带材个别三角形[N + 2]。 – Robinson 2012-04-06 02:17:04