OpenGL:纹理右上角的黑色小像素

OpenGL:纹理右上角的黑色小像素,opengl,Opengl,我写了一个未压缩的TGA纹理加载器,它工作得近乎完美,除了右上角只有一个小小的黑色补丁,让我抓狂。我可以通过使用纹理边界来消除它,但不知何故,我认为这不是实际的解决方案 以前是否有人遇到过此类问题,并且知道(通常)当发生类似情况时会出现什么问题,或者我应该发布图像加载函数代码 这是一张照片,小黑点真的很小 好的,我假设您的图像加载例程是正确的。是否使用纹理夹持(边缘的最后一个像素重复)?在这种情况下,OpenGL可能需要这样来计算纹理的平滑版本。我记得,在Linux上,它确实对我有用,但在Wi

我写了一个未压缩的TGA纹理加载器,它工作得近乎完美,除了右上角只有一个小小的黑色补丁,让我抓狂。我可以通过使用纹理边界来消除它,但不知何故,我认为这不是实际的解决方案

以前是否有人遇到过此类问题,并且知道(通常)当发生类似情况时会出现什么问题,或者我应该发布图像加载函数代码

这是一张照片,小黑点真的很小


好的,我假设您的图像加载例程是正确的。是否使用纹理夹持(边缘的最后一个像素重复)?在这种情况下,OpenGL可能需要这样来计算纹理的平滑版本。我记得,在Linux上,它确实对我有用,但在Windows上却不行

纹理夹持:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);

您可能还需要使用
GL\u纹理\u MAG\u过滤器

好的,我假设您的图像加载例程是正确的。是否使用纹理夹持(边缘的最后一个像素重复)?在这种情况下,OpenGL可能需要这样来计算纹理的平滑版本。我记得,在Linux上,它确实对我有用,但在Windows上却不行

纹理夹持:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);

您可能还需要使用
GL\u纹理\u MAG\u过滤器

我以前没有注意到这一点,但我加载的纹理实际上是64x64像素。正常的256 x 256图像似乎加载和映射很好,但64x64是产生小块斑点的原因。我仍然会尝试这些建议,看看我是否可以在小图像的情况下修复它。我以前没有注意到这一点,但我加载的纹理实际上是64x64像素。正常的256 x 256图像似乎加载和映射很好,但64x64是产生小块斑点的原因。我仍然会尝试这些建议,看看是否可以在小图像的情况下修复它。