2009-01-07 76 views
6

我想在opengl中组装一个场景,使用已经制作好的对象。问题是对象是.max格式,没有外部纹理。我怎样才能在opengl中导入我的对象,而不需要重新纹理它们。我正在考虑将它们导出到3ds并使用3ds文件加载器。你能推荐一个,当然它只能使用3ds文件本身,没有外部纹理文件。3ds max对象到opengl


3ds max已经允许我将文件导出到obj。我有一个没有外部纹理文件的对象,但它已经完全着色为3ds文件。有没有什么办法可以导入到opengl中并且具有相同的颜色,树干,树叶?

回答

8

您可能想要查看lib3ds,它将为您解析3ds二进制格式并为您提供对所有对象属性的访问权限。我认为欧特克也有自己的工具包来做这件事。

5

你应该看看link。它是一个带有使用OpenGL呈现的源代码的3DS查看器。代码很简单。

1

如果我没有记错,3ds文件不存储顶点法线,所以你可能必须自己计算它们,否则它将使用面部法线,这将是相当丑陋的。

4

另一种选择可能是Assimp,这是一种用于C或C++的开源资产导入库,这似乎是将3DS资产加入到opengl程序中的一种非常好的方式。如果你希望用于骨骼动画,并且支持嵌入纹理,它会特别有用。尽管在这一点上,对于你来说,这个答案可能不如其他人遇到这个问题。