用于OpenGL的2D矢量图形渲染器

时间:2010-10-29 18:05:27

标签: opengl vector-graphics

我想在OpenGL游戏中使用矢量图形。我想使用矢量图形,因为它们可以便宜地缩放而不会降低质量。

当然,绘图应该是硬件加速的,所以我不想在软件中绘制纹理。

现在我想知道这样做的图书馆是否已经存在。是否有一个库,可以加载一些矢量图形格式并使用OpenGL显示它?

3 个答案:

答案 0 :(得分:3)

我不会打扰任何OpenVG,甚至没有使用MonkVG,这可能是最现代的,虽然不完整的实现。 OpenVG委员会已于2011年完成,大多数(如果不是全部)实施都是弃用软件或最好的遗留软件。

自2011年以来,最先进的是Mark Kilgard的宝贝, NV_path_rendering ,目前只是供应商(Nvidia)的扩展,因为您可能已经从其名称中猜到了。有很多材料:

NV_path_rendering现在由Google的Skia库在幕后使用。 (Nvidia在2013年末和2014年提供了代码。)

为了回答评论中提出的更具体的观点,您可以将路径渲染与其他OpenGL(3D)内容混合使用,如下所示:

您当然可以加载SVG等https://www.youtube.com/watch?v=bCrohG6PJQE。它们还支持路径的PostScript语法。

现在开发和维护的 NanoVG 是一个拥有更少(或完全没有)供应商支持或学术浮华的新贵。 (https://github.com/memononen/nanovg)鉴于OpenGL上的2D库的数量随着时间的推移而变得越来越多,在我看来,你正在使用主要供应商不支持的东西进行大赌注。

答案 1 :(得分:1)

看看OpenVG

答案 2 :(得分:1)

关于SVG渲染器的大量讨论in this Slashdot post。我不知道哪个使用OpenGL,如果有的话。

This SO question也有一些建议,包括sauvage,这是在Python中完成的。 Cairo显然也是一种可能性。

有几个强大的库可以在没有 OpenGL的情况下呈现SVG 。我想知道它是否真的没必要:在大多数系统的显卡上,绘图线已经足够加速了。