【问题标题】:Anti-aliasing with GL_TRIANGLE_FAN使用 GL_TRIANGLE_FAN 进行抗锯齿
【发布时间】:2012-07-01 04:30:06
【问题描述】:

在使用以下代码绘制 GL_TRIANGLE_FAN 时,我没有获得任何抗锯齿效果:

  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);

我做错了什么?

【问题讨论】:

    标签: opengl antialiasing


    【解决方案1】:

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

    【讨论】:

    • 感谢您的快速回答。获得我想要的混合的最简单方法是什么?多重采样通常会在现代(
    • 这完全取决于您的平台。例如,如果您在 linux 上使用 nvidia 驱动程序,只需将 __GL_FSAA_MODE 环境变量设置为“4”即可获得非常有用的结果,无需担心。 ARB_multisample 扩展在 API 上有文档,并且目前在大多数/所有硬件上都受支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 2011-07-05
    • 2014-03-19
    相关资源
    最近更新 更多