【问题标题】:Is there a way to incorporate vector graphics into LibGDX development?有没有办法将矢量图形整合到 LibGDX 开发中?
【发布时间】:2013-06-26 14:31:23
【问题描述】:

我在LibGDX 中没有找到任何适用于矢量图形的东西。

这个post 暗示AGG 已经很接近了,他们还提到这很痛苦。

有没有无痛的替代方案?

【问题讨论】:

    标签: opengl-es svg libgdx vector-graphics


    【解决方案1】:

    目前(2013 年年中),Libgdx 中似乎没有任何对矢量图形的轻松支持。首先,对于矢量图形,实际上这通常意味着SVG

    “通用”SVG 解决方案的部分问题在于,让它适用于所有各种极端情况似乎是个问题。但是,如果您只是尝试渲染自己的 SVG 对象,您可能需要处理更简单的 SVG 子集,并且修改某些内容可能对您有用(即使它对每个人都不够通用)。

    另外,如果你愿意使用位图作为中介(你不需要将矢量图直接渲染到屏幕上),你只需要找到一个基于 Java 的 SVG 解析器和光栅化器(相对于一个使用 Libgdx 或 LWJGL 后端)。

    Using SVG files with libgdx。这里的建议是使用 Libgdx ShapeRenderer 来制作简单的“可缩放”图形。它没有 SVG,但它可能适合您的用例。

    Google 搜索发现了这个使用 AWT 后端的GPL'd Java SVG renderer。这段代码看起来很简单,可以适应使用 Libgdx 渲染。但是,考虑到它的简单程度,尚不清楚实际支持多少 SVG(或者它是否完全有效)。

    Apache Batik 项目是一个通用的 Java SVG 解析器和渲染器。它看起来很大。您也许可以将 SVG 渲染为 .png 格式(然后将其转换为 Libgdx Pixmaps)。 (我没有这方面的经验。)

    有一个(死了?)libgdx SVG extension project,但看起来只完成了最基本的 SVG 解析。

    【讨论】:

      【解决方案2】:

      我也在学习 LibGDX 并且即将面临一些像你一样的类似问题;在正交视图中渲染 2D 模型。

      LibGDX 与 OpenGL ES 一起用于图形,还支持导入使用 Blender 3D 插件创建的模型。 我还没有尝试过,但这里有一个解决方案:

      Importing Models from Blender

      Processing code

      我想解决这个问题的方法是在 Blender 3D 中为您的可缩放图形建模。如果您使用的是 SVG 文件,那么 Blender 3D 可以导入这些文件,因此您可以使用 Blender 3D 作为第一个着陆点。

      添加: 我现在设法做到了。不过有一点点转折:使用 python 脚本的方法已经过时了。在上面第一个链接的页面上的 cmets 中,有一个指向 xoppa's tutorials 的链接。那里描述了如何使用FBX converter tool 导出模型。我在 Blender 3D 中制作了一个面向前视图的 2D 平面形状。将其导出到 FBX 并使用转换器工具制作 G3DB 文件。使用 xoppa 教程中描述的 LibGdx 的 G3dModelLoader 方法,您现在可以使用 ModelBatch 在视图中绘制它。让您的正交相机查看 0,0,0(或任何适合您需要的值)并在 z 轴上稍微向后移动 - 否则您将无法看到它。因为它是正交相机,所以多远并不重要,但不知何故 0,0,1 会有某种意义:) 还要记住现在为渲染中的每一帧清除 GL_DEPTH_BUFFER_BIT。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-10
        • 1970-01-01
        • 1970-01-01
        • 2021-10-30
        • 2015-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多