我在iphone上使用Opengl ES 2,现在我正在尝试让我的纹理处理我的对象。我正在使用.obj文件,其中的所有数据都是正确的。我自己编写了一个解析器来检索所有数据,我将它转换为C中的静态数组。我现在丢弃材料属性,只手动从.mtl文件获取图像路径。
我有一个包含336个三角形的对象,这使得观察具有重要意义,具有相关的顶点,顶点面和纹理坐标(u,v)。
将所有数据传递到着色器中,生成的图像为:
http://img530.imageshack.us/img530/9637/pic1io.png
http://img404.imageshack.us/img404/7358/pic2pg.png
但它应该如下所示(在对象查看器中显示它)。请忽略材料属性。
http://img16.imageshack.us/img16/1401/pic3cq.png
将此图像用作纹理:
http://img217.imageshack.us/img217/1300/shirtdiffuse.png
我在想它可能与纹理坐标面有关?它在我的.obj文件中定义,我根本就不使用它们。在书籍和教程中,我没有发现任何与此相关的内容。
关心Niclas
答案 0 :(得分:0)
您是否尝试垂直翻转纹理?有时,当纹理被加载时,它会被放置在内存中,因此垂直线在texcoords中按照预期的方向进入。