代码之家  ›  专栏  ›  技术社区  ›  timday

在OpenGL中显示SVG,无需中间光栅

  •  28
  • timday  · 技术社区  · 17 年前

    convert

    5 回复  |  直到 9 年前
        1
  •  12
  •   feedc0de RushPL    9 年前

    Qt可以做到这一点。
    QSvgRenderer QGLWidget
    你可能需要摆弄一下 paintEvent() 如果您想在QGLWidget上绘制除SVG之外的任何其他内容,请稍做修改。

        2
  •  5
  •   danio Kouga    17 年前

    SVGL 似乎解决了这个问题,但已经沉寂了好几年。尽管如此,你还是可以在那里找到一些有价值的代码。

        3
  •  2
  •   SpliFF    17 年前

    Inkscape 有一些您可能会觉得有用的有趣导出选项。它们包括DXF、PovRay、EPS、PS(PostScript)、XAML、Latex和OpenDocument绘图(ODG)。也许其中有一个转换器,你可以使用Inkscape作为中介。

    DXF尤其是一个可能的候选者,因为它已经是一种常见的3D格式。 assimp 是加载DXF的良好候选者。

        4
  •  1
  •   chris    15 年前

    自2011年以来,最先进的技术是Mark Kilgard的孩子,

    https://www.youtube.com/watch?v=bCrohG6PJQE 。它们还支持路径的PostScript语法。您还可以将路径渲染与其他OpenGL(3D)内容混合使用,如下图所示:

    NV_path_rendering现在由谷歌的Skia库在幕后使用(如果可用)。(英伟达在2013年底和2014年贡献了代码。)一位cairo开发人员(也是英特尔员工)似乎也喜欢它 http://lists.cairographics.org/archives/cairo/2013-March/024134.html ,尽管我[尚未]意识到cairo使用NV_path_rendering的任何具体努力。

    一个拥有更少(或完全没有)供应商支持或学术浮华的新贵是 https://github.com/memononen/nanovg )考虑到随着时间的推移,OpenGL上的2D库数量不断变化,在我看来,你正在使用一个主要供应商不支持的东西进行大赌注。

        5
  •  1
  •   got trolled too much this week    11 年前

    Omber 它具有导入SVG文件的能力,并且可以将矢量图形导出为glTF 2.0格式的“扁平”3d模型。glTF格式几乎只是原始OpenGL数据,因此您可以用最少的代码读取并显示它。我写了一点 Pixi.js plugin

    Blender还支持导入SVG文件。然后,您可以将结果导出为3d文件格式,但Blender对SVG的支持更多的是用于导入简单的曲线,而不是复杂的图形。

        6
  •  0
  •   Ming-Yee Iu    8 年前