Mapbox-GL 为什么不使用 AGG 进行地图渲染?

Mapbox-GL why not using AGG for map rendeing?

但是AGG在地图渲染方面似乎比OpenGL ES更高效,比如Mapnik正在使用AGG。

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

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

谢谢! :)

关于 Q1 和 Q2:

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

因此,如果存在 GPU,如果打算为交互式(实时)显示生成输出,通常更 efficient/performant 使用 OpenGL/-ES。

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

Anti-Grain Geometry 是一个来自单一供应商的基于 CPU 的二维光栅化库,似乎从 2001 年左右开始,自 2007 年以来没有看到任何网页更新。最近的 post 到其邮件列表是关于由于各种独立的下游补丁而导致的断裂状态。

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

但是,AGG 没有加速,没有明确的所有权或未来,没有管理论坛,也没有广泛使用。