1
  • AGG (Anti-Grain Geometry)是用于 C++ 的高质量渲染引擎。
  • OpenGL ES是一种免版税的跨平台 API,用于嵌入式系统上的全功能 2D 和 3D 图形。

但是 AGG 在地图渲染方面似乎比 OpenGL ES 更有效,就像Mapnik使用 AGG 一样。

Q1: Mapbox-GL为什么不使用 AGG 而使用 OpenGL?

Q2: AGG 和 OpenGL ES 有什么区别?

谢谢!:)

4

2 回答 2

1

OpenGL 是一种 API,用于管理 GPU 上的缓冲区并指定函数以在它们之间映射数据;最初用于渲染 3d 几何图形,它仍然主要围绕该目标。这是一个具有 25 年历史的开放标准,所有主要供应商都在所有主要操作系统上实施,其中一部分现在甚至被纳入符合标准的 Web 浏览器中。

Anti-Grain Geometry 是来自单一供应商的基于 CPU 的 2d 光栅化库,似乎在 2001 年左右开始,自 2007 年以来没有看到任何网页更新。其邮件列表的最新帖子是关于其破碎状态的到各种独立的下游补丁。

开发人员可能更喜欢 AGG 而不是 OpenGL,因为后者的级别非常低,而且对开发人员不是特别友好。除非您付出努力并且调试工具通常很差,否则它提供的很少。前者似乎是一个高级库,由于它在 CPU 上运行,因此适合您的正常调试器。

然而,AGG 没有加速,没有明确的所有权或未来,没有治理论坛,也没有广泛使用。

于 2016-05-17T12:55:48.173 回答
0

关于 Q1 和 Q2:

OpenGL/-ES 通常是 GPU 加速的(事实上,在大多数支持 OpenGL-ES 的平台上,OpenGL-ES 只有在 GPU 存在时才可用)。AGG 是一个软件光栅化器。

因此,如果存在 GPU,如果打算为交互式(实时)显示生成输出,则使用 OpenGL/-ES 通常会更有效/性能更高。

于 2016-05-17T12:50:24.393 回答