奇怪的OpenGL像素缺陷

奇怪的OpenGL像素缺陷,opengl,Opengl,一个非常小的百分比(有90%的概率,用户遇到此问题时,在他们的nVidia控制面板中的一些非默认值上有纹理质量开关。在您的情况下,GL_NEAREST应有助于避免此类问题(因此它不会平均放大图像的相邻纹理)但首先,请他将nVidia控制面板设置设置为默认值,以证明或打破该理论。0.375从何而来?@BenVoigt它来自OpenGL红皮书。请参见或。它的事实1)仅在某些表面上发生2)在不同的比例下发生对于不同的表面,问题代码应该是一个很大的提示。@Patashu只有一个表面(窗口表面)。@Smi

一个非常小的百分比(有90%的概率,用户遇到此问题时,在他们的nVidia控制面板中的一些非默认值上有纹理质量开关。在您的情况下,GL_NEAREST应有助于避免此类问题(因此它不会平均放大图像的相邻纹理)但首先,请他将nVidia控制面板设置设置为默认值,以证明或打破该理论。

0.375从何而来?@BenVoigt它来自OpenGL红皮书。请参见或。它的事实1)仅在某些表面上发生2)在不同的比例下发生对于不同的表面,问题代码应该是一个很大的提示。@Patashu只有一个表面(窗口表面)。@Smith先生我可能用错了词,我的意思是石头纹理背景和主视图在不同的比例下有图形错误,所以背景和主视图都发生过一次,例如,对于一些他们都常用的代码(也就是说,地图没有?嗯)!特定的nVidia覆盖似乎是抗锯齿模式,我测试了它,得到了类似的像素缺陷。案子解决了!
glViewport(0, 0, clientSizeWidth, clientSizeHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, clientSizeWidth, clientSizeHeight, 0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
double transAmount = 0.375;
glTranslated(transAmount, transAmount, 0.0);