【发布时间】:2012-02-16 15:35:13
【问题描述】:
更新:
我在安装 NVIDIA 控制面板时找到了它,如果我卸载它就可以正常工作。
当您在 OpenGL 中旋转四边形时,边缘会变成锯齿状。
如果我调用 glEnable(GL_POLYGON_SMOOTH),边缘会变得平滑,但 OpenGL 会在我的所有图像中绘制一条白色对角线,就好像它正在创建我的四边形的 trisout。
这是它的外观:
有没有办法禁用该行,或者我可以通过另一种简单的方式获得抗锯齿功能? 我尝试了 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);
【问题讨论】:
-
看起来两个三角形的顶点不匹配,形成了细线。不要画一个四边形,试着画一个三角形扇形。 IMO,这条线应该消失,因为 OpenGL 现在知道哪些顶点是共享的(并且完全相等)。
-
嗯好吧,我理解不匹配的部分。但我不明白如何绘制两个三角形,每个三角形各有一半图像,然后分别旋转/缩放它们。目前我将纹理绘制到常规四边形上:我对 OpenGL 很陌生,而且我根本没有使用过三角形,因为我只使用 2D 和图像。所以请指点我如何画一个三角扇的方向。谢谢,马库斯
-
您是否在不止一台具有不同显卡和/或不同驱动程序的计算机上对此进行了测试?在我看来这可能是一个驱动程序错误。
-
看起来你的混合功能是问题所在。您是否尝试过 opengl.org/sdk/docs/man/xhtml/glBlendFunc.xml 的其他选项?具体来说,像
glBlendFunc(GL_SRC_ALPHA_SATURATE,GL_ONE)? -
@Jerry Coffin,好电话,我在笔记本电脑上进行了测试,白线消失了。我已经为我的桌面下载了 3 个不同的驱动程序,285.62、295.51 和 295.53,但没有区别。我使用 460SLI 并尝试一次禁用一个,但它仍然不起作用。你有什么建议我可以尝试解决这个问题吗?谢谢,
标签: c++ c opengl rotation antialiasing