Oru*_*aru 6 c c++ opengl rotation antialiasing
更新:
我在安装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);
Run Code Online (Sandbox Code Playgroud)
好的,我会将其写为答案,尝试后告诉我是否有效。
\n\nGL_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\xe2\x80\x932 个相连的三角形。
\n\n因此要绘制一个以原点为中心的单位四边形,
\n\nglBegin(GL_TRIANGLE_FAN);\n\nglTexCoord2f(0f, 0f);\nglVertex3f(-halfWidth, -halfHeight, 0f);\n\nglTexCoord2f(0f, 1f);\nglVertex3f(-halfWidth, halfHeight, 0f);\n\nglTexCoord2f(1f, 1f);\nglVertex3f(halfWidth, halfHeight, 0f);\n\nglTexCoord2f(1f, 0f);\nglVertex3f(halfWidth, -halfHeight, 0f);\n\nglEnd();\n
Run Code Online (Sandbox Code Playgroud)\n\n现在您可以对其进行与四边形相同的转换!希望有帮助!
\n