OpenGL:所有卡都不支持GL_LINE_SMOOTH;除非是,否则不会画线

时间:2010-01-23 17:26:02

标签: c++ opengl lines

首先,这个代码的目的是什么?

glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);

我可以放GL_DONT_CARE,但它不会画出我的画线,除非我使用glDisable(GL_LINE_SMOOTH)

所以即时通讯询问是否有一些内置的机制可以让它画出线条,即使光线没有得到支持(所以它会画出它们而不会消失...)

或者我必须为它做自己的功能并检查是否支持平滑线等...每次我想绘制流畅的线条时,我需要调用此函数来检查它是否受支持?哎呀。

编辑:我的另一张卡上的线条很平滑,在我的另一张卡上,它们甚至都没有显示,除非我禁用平滑的线条。所以这就是问题,而不是glEnable(GL_BLEND)

1 个答案:

答案 0 :(得分:5)

glHint顾名思义是对驱动程序的提示。它没有必要实现任何目标。 glHint的实际功能取决于图形驱动程序。

此外,要启用LINE_SMOOTH,您需要启用混合。你启用了GL_BLEND吗?当你在它的时候,也选择你的glBlend功能!

示例:

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