我正在创建一个简单的 opengl 应用程序,其中显然包含一些 3d 对象和纹理。然而,我的问题是每个纹理上都会出现伪影。这些以沿边缘的三角形的形式出现。
我注意到,只要我将视点移近它完美渲染的纹理,它就会消失。因此,我怀疑它与 mipmapping 或 z 缓冲区有关。请注意,所有纹理坐标都是从 .3ds 文件加载的,并且它们都经过验证在 0-1 的范围内。
这是我的问题的图片:
纹理是这样加载的:
//Texture parameters
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
//Define the 2d texture
glTexImage2D(GL_TEXTURE_2D, 0, 4, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, array);
//Create 2d mipmaps
gluBuild2DMipmaps(GL_TEXTURE_2D, 4, width, height, GL_RGBA, GL_UNSIGNED_BYTE, array);