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

6 c++ opengl lines

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

glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
Run Code Online (Sandbox Code Playgroud)

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

所以我问一下是否有一些内置的机制使它画出线条,即使光线不支持(所以它会绘制它们而没有消除...)

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

编辑:我的另一张卡上的线条很平滑,在我的另一张卡上,它们甚至都没有出现,除非我禁用流畅的线条.这就是问题,而不是glEnable(GL_BLEND)

Kor*_*icz 5

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

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

例:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
Run Code Online (Sandbox Code Playgroud)