2

使用以下代码绘制 GL_TRIANGLE_FANs 时,我没有得到任何抗锯齿:

  glDisable(GL_DEPTH_TEST);

  // Blended points, lines, and polygons.
  glEnable(GL_BLEND);
  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

  glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
  glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
  glHint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);

  glEnable(GL_POINT_SMOOTH);
  glEnable(GL_LINE_SMOOTH);
  glEnable(GL_POLYGON_SMOOTH);

我究竟做错了什么?

4

1 回答 1

4

边缘抗锯齿始终是一个提示,实现(您没有指定哪个)可以根据规范随意忽略它。由于各种原因(例如,无法处理相交的多边形、与帧缓冲区混合的不良交互),这种抗锯齿已经失宠,并被在帧缓冲区级别工作的基于多样本的算法所取代。有一个 ARB 多样本扩展来控制这一点(我相信它在最近版本的规范中是默认的,实际上)。或者,驱动程序通常有办法在不修改源代码的情况下全局启用它。

于 2012-07-01T04:37:24.593 回答