2015-02-06 85 views
0

嘿,我有一个对象我想用在我的iPhone应用程序中。目前,我通过将3D对象导出为.obj(Wavefront)格式来完成此操作,但不会导出纹理。将包含纹理的3D对象导出到.obj

我读过我将不得不使用Cinema4D(在对象管理器)内的“烘焙纹理”功能,但没有列出Wavefront作为可能的导出格式。

有没有办法在导出时包含纹理?

回答

1

您只能在应用程序中读取Wavefront obj?这种格式不包含纹理位图数据。只有顶点位置,法线和纹理坐标。材料以* .mtl文件(材料模板库)导出,可以引用纹理以映射obj文件中声明的不同对象。如果你的obj解析器可以和你的obj一起使用mtl文件,那么你可以告诉他加载mtl。 但是,我建议你看看更现代的交换格式(和相应的解析器),如collada。这些更新的格式可以存储许多信息,如纹理,着色器,动画,物理元素等等。collada文件可能会看起来比较重,但是从一个应用程序移动到另一个应用程序时,它更加自动化。

+0

哦,我明白了......可以通过打开的gl来使用collada吗? – LinusGeffarth 2015-02-10 14:12:43

+0

对于所有类型的光栅化库(Direct3D或OpenGL等),都有许多collada解析器。格式是用于数据交换的目的,所以并不取决于您的框架可能使用的光栅化器(当然,如果您的曲面使用HLSL或Cg着色器,您可能希望在从您的导出到Collada之前将它们移植到GLSL,非常简单最喜欢的DCC工具,与OpenGL一起使用它们)。基本上,你的数据存储就像使用obj,但有更多的信息。查找OpenGL Collada解析器/查看器示例,并且您将从场景中加载比objs更多的信息。 – 2015-02-22 11:18:01