更新:
我在安装NVIDIA控制面板时找到它,如果我卸载它可以正常工作。
在OpenGL中旋转四边形时,边缘变得锯齿状。
如果我调用glEnable(GL_POLYGON_SMOOTH),边缘会变得平滑,但OpenGL会在我的所有图像中绘制一条白色对角线,就像它创建了我的四边形一样。
它的外观如下:
有没有办法禁用该行,还是可以通过另一种简单方式获得抗锯齿? 我试过GL_MULTISAMPLE但没有发生任何事情。
在我的代码中我也有:
glShadeModel(GL_SMOOTH);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
答案 0 :(得分:3)
好的,我会把它作为一个答案写下来,让我知道它是否能在试用后发挥作用。
GL_TRIANGLE_FAN:如果应用程序指定顶点序列v,则OpenGL使用v 0,v 1和v 2渲染三角形;使用v 0,v 2和v 3的另一个三角形;使用v 0,v 3和v 4的另一个三角形;等等。如果应用程序指定了n个顶点,则OpenGL将呈现n-2个连接的三角形。
因此要绘制以原点为中心的单位四元组,
glBegin(GL_TRIANGLE_FAN);
glTexCoord2f(0f, 0f);
glVertex3f(-halfWidth, -halfHeight, 0f);
glTexCoord2f(0f, 1f);
glVertex3f(-halfWidth, halfHeight, 0f);
glTexCoord2f(1f, 1f);
glVertex3f(halfWidth, halfHeight, 0f);
glTexCoord2f(1f, 0f);
glVertex3f(halfWidth, -halfHeight, 0f);
glEnd();
现在你可以在你的四边形周围使用相同的变换!希望有所帮助!