更新:
我在安装 NVIDIA Control Panel 时找到了它,如果我卸载它它会正常工作。
当您在 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);
最佳答案
好的,我会把它写下来作为答案,尝试后告诉我它是否有效。
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();
现在您可以围绕它进行与您在四边形周围使用的相同的转换!希望对您有所帮助!
关于c++ - OpenGL GL_POLYGON_SMOOTH 二维抗锯齿从四边形创建三边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9314148/