2010-07-21 131 views
1

我一直在研究跨平台的3D引擎,但atm我有在OSX和iPhone/iPad(它在模拟器中使用系统GL库)本机运行的版本。我遇到的问题是每个纹理都在两个方向上略有偏移(看起来像是一个texel shift),如果我在Blender3D中看不到相同的问题,我会在代码中看到更多 - 在生成一些光照贴图后在颜色渐变上更清晰可见。纹理文件是好的,并且相同的纹理坐标(它只覆盖整个四边形)。OpenGL纹理问题

下面是它的外观在搅拌机的例子(TEX COORDS 2,三角形是在范围(0.0角,0.0) - (1.0,1.0)):http://i28.tinypic.com/2yllfr5.png

你可以看到有右侧以及填充了错误纹素的标记四边形的边缘。

任何想法如何解决它?我使用OSX 10.6,更新到最新版本。

回答

4

问题已解决。对于那些在纹理边缘上纹理几何图形后会发现伪像的人,答案可能会有所帮助。有两个原因发生这种情况:

  • GL_TEXTURE_WRAP_S和GL_TEXTURE_WRAP_R设置默认为GL_REPEAT
  • ,如果你对TEX的参数组GL_CLAMP那么它将与纹理区域外的边界上的四边缘(这是黑色的融合默认 )。

解决方法很简单,对于GL_TEXTURE_WRAP_S和GL_TEXTURE_WRAP_T你必须使用哪个GL_CLAMP_TO_EDGE夹具纹理COORDS为0.0 + 0.5和1.0-0.5给予0.5纹理像素的余量对纹理的每一侧上。

我希望它能帮助其他会发现类似问题的人。