繁体   English   中英

OpenGL纹理问题

[英]OpenGL texturing problem

我一直在研究跨平台3D引擎,但我现在在OSX和iPhone / iPad上运行本机版本(在Simulator中使用系统GL库)。 我遇到的问题是每个纹理在两个方向上略微移动(看起来只有一个纹素移位)如果我在Blender3D中没有看到同样的问题,我会在我的代码中看起来更多 - 在生成一些光照贴图后它变成了在颜色渐变上更明显。 纹理文件是可以的和相同的纹理坐标(它只覆盖整个四边形)。

以下是它在混合器中的外观示例(两个三角形的tex坐标是范围内的角(0.0,0.0) - (1.0,1.0)): http//i28.tinypic.com/2yllfr5.png

您可以在标记四边形的右边和上边看到那些填充了错误纹理像素的边缘。

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

问题解决了。 对于那些在纹理边缘上纹理几何体后会发现人工制品的人来说,答案可能会有所帮助。 发生这种情况有两个原因:

  • 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将纹理坐标限制为0.0 + 0.5和1.0-0.5,在纹理的每一边给出0.5纹素的边距。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM