图形绘制到屏幕过程中,经历了光栅化用像素点表示,因此,在绘制的过程中,会因为像素紧密程度导致出现锯齿。在OpenGL中提供了相应的方法,以便于做简单处理。
void glHint(GLenum target,GLenum hint);
target:
GL_POINT_SMOOTH_HINT 点采样质量
GL_LINE_SMOOTH_HINT 线采样质量
GL_POLYGON_SMOOTH_HINT 多边形的采样质量;
GL_FOG_HINT 雾
GL_PERSPECTIVE_CORRECTION_HINT 自纠正单纯线性插值影响的采样质量配置
hint:
GL_FASTEST 效率最高(顶点处理)
GL_NICEST 质量最高(像素驻点处理)
GL_DONT_CARE 不在乎此项配置(交给OpenGL)
虽然在OpenGL的颜色索引模式下也可以实现反走样,但仍建议在RGBA模式下进行。对图元进行反走样时也要先调用glEnable()函数启动反走样(其参数为GL_POINT、GL_LINE_SMOOTH或GL_POLYGON_SMOOTH)。如果是在RGBA模式下进行反走样,还必须与融合配合使用,通常使用GL_SRC_ALPHA和GL_ONE_MINUS_SRC_ALPHA分别作为源和目的因子。
GLES 3.0 版本后,可以直接配置 hint 使其生效