OBJ 文件不同的格式

Posted

技术标签:

【中文标题】OBJ 文件不同的格式【英文标题】:OBJ File Different Formats 【发布时间】:2016-05-25 13:33:12 【问题描述】:

我正在开发自己的 java 3D 游戏引擎,一切正常,但我总是出错。 我发现了错误,但我完全不知道如何解决这个问题。 我已经使用 Blender 来创建我的 OBJ 文件。

这是一个 obj 文件的示例。

v 0.500000 -0.500000 -0.500000
vt 0.748573 0.750412
vn -1.000000 -0.000000 -0.000000
f 5/1/1 4/3/1 8/4/1

这些是我在屏幕上绘制对象所需的最相关信息。

但是现在,当我创建我的 OBJ 文件时,我的脸看起来像这样:

f 2//1 3//2 4//3

我的顶点、纹理坐标和法线看起来非常相似,但我的解析器在读取面时出现问题。

我的 Parser 很复杂,我认为将它复制到这里没有帮助。 我只需要一种将文件从一种类型转换为另一种类型的方法。 Blender中是否有告诉它如何保存我的文件?

如果有人能帮我解决这个问题,我会非常高兴。

您好, 芬兰人

【问题讨论】:

【参考方案1】:

来自wikipedia下面元素-

使用顶点、纹理和法线索引列表定义面。

缺少的第二个元素是纹理索引,指向要使用的 vt 行。要在 obj 导出中获取此数据,您需要 unwrap the object 来创建 uv 并在导出时启用 include UV's

【讨论】:

以上是关于OBJ 文件不同的格式的主要内容,如果未能解决你的问题,请参考以下文章

在两个不同的位置渲染 obj 文件

为啥 pickle.dump(obj) 与 sys.getsizeof(obj) 的大小不同?如何将变量保存到文件文件?

在不同配置之间共享 .obj 文件

14文件读取并格式化处理

Makefile:不同目录中的 Cpp 文件,将目标文件重定向到 ./obj 和可执行文件到 ./bin

实现在3D模型上加载2D图片,3D模型用obj+mtl格式的文件实现的