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

时间:2016-05-17 11:40:59

标签: c++ opengl-es mapbox mapbox-gl

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

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

Q2: AGG和OpenGL ES的区别是什么?

谢谢!的:)

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

Re Q1和Q2:

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

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