首先,此代码的目的是什么?

glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);

我可以把GL_DONT_CARE放在那里,但除非我使用glDisable(GL_LINE_SMOOTH),否则它不会画出线条,除非

所以我问是否有内置的机制来使线条画线,即使没有平滑的线条也支持(所以它会画线而不会抗锯齿...)

还是我必须为此制定自己的功能并检查是否支持平滑线等...并且每次我想绘制平滑线时,都需要调用此函数来检查其是否受支持?啊

编辑:这些线在我的另一张卡上是平滑的,在我的另一张卡上它们甚至不会显示,除非我禁用了平滑线。这就是问题,不是glEnable(GL_BLEND)

最佳答案

顾名思义,glHint是对驱动程序的提示。没必要取得任何成就。 glHint的实际功能取决于图形驱动程序。

另外,要启用LINE_SMOOTH编码,您需要启用混合功能。您启用了GL_BLEND吗?当您使用它时,也请选择您的glBlend功能!

例子:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);

关于c++ - OpenGL:并非所有卡都支持GL_LINE_SMOOTH;甚至不会画线,除非,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2123980/

10-13 05:02