6

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


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

4

4 回答 4

8

您可能想查看lib3ds,它将为您解析 3ds 二进制格式并让您访问所有对象属性。我认为 Autodesk 也有自己的工具包来执行此操作。

于 2009-01-07T19:06:35.540 回答
5

你应该看看这个链接。它是一个带有源代码的 3DS 查看器,使用 OpenGL 进行渲染。代码很简单。

于 2009-01-07T20:28:15.453 回答
5

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

于 2013-05-04T02:39:33.443 回答
1

如果我没记错的话,3ds 文件不存储顶点法线,因此您可能必须以某种方式自己计算它们,否则它将使用面部本身的法线,这将非常难看。

于 2009-01-07T20:30:51.873 回答