回 帖 发 新 帖 刷新版面

主题:OpenGL:如何在obj文件中指定一幅二维纹理贴图???(牛仔请进!)

[b](1)[/b]我现在想读取obj文件,以进行场景绘制,但是obj文件中包含着的信息有:
v(顶点的几何坐标)
vt(顶点的纹理坐标)
vn(顶点的法线坐标)
f(面的信息)
我们可以在obj文件中用面指定几何坐标与纹理坐标的对应关系,如下:
f v/vt/vn v/vt/vn v/vt/vn...
但是obj文件是如何 指定2D纹理(通常是一幅图片)的呢???也就是说,怎么将纹理坐标vt与纹理对应起来的呢??是在mtl文件中指定吗?

[b](2)[/b]或者,我想用Maya导入obj文件进行渲染,但是如何将纹理图像也导入进来?然后贴到对应的多边形上?

谢谢解答!

回复列表 (共6个回复)

沙发

obj格式我也没有用过,只能给出一些参考想法了。

既然obj无法保存纹理,那就不保存了,没什么关系。
如果需要绘制一个物体,它的信息包括:纹理(可以是一幅图片),模型(可以是一个obj文件),以及其它,则这些信息可以统一起来,放到一个ini文件(或者是xml,或者其它任何你喜欢的歌是)中。

ini文件看起来像这样:
[Apple]
TextureFile=data/textures/apple.png
ModelFile=data/models/apple.obj

在你的程序中,根据标题“Apple”,到这个ini文件中进行读取,得到图片文件和obj文件的路径,然后分别读取图片和obj文件,最后送到OpenGL进行显示即可。

板凳


谢谢牛仔的建设性意见!!!

3 楼

1楼还在论坛上混那,
这都多少年了

4 楼

回复3楼ccpp:论坛总要有人在的,虽然我也时常不在……

5 楼

mtl文件中的map_Ka是ambient贴图文件
mtl文件中的map_Kd是diffuse贴图文件
以此类推

6 楼

且学且珍惜,得认学习真正消化

我来回复

您尚未登录,请登录后再回复。点此登录或注册