目前(2013年中),Libgdx似乎没有对矢量图形提供无痛支持。通常情况下,这意味着需要使用SVG。
"通用"SVG解决方案的问题之一是,似乎很难解决所有各种情况的问题。然而,如果您只是尝试渲染自己的SVG对象,则可能只需要处理更简单的SVG子集,并且可以通过一些技巧来实现(即使它不够通用)。
另外,如果您愿意将位图作为中介(您不需要直接将矢量图形渲染到屏幕上),则只需要找到一个基于Java的SVG解析器和栅格化器(而不是使用Libgdx或LWJGL后端的解析器和栅格化器)。
请看 使用SVG文件与libgdx。建议在需要简单“可缩放”图形时使用LibgdxShapeRenderer
。它不是SVG,但对于您的用例可能是合理的选择。Apache Batik项目是一个通用的Java SVG解析器和渲染器。它看起来很庞大。您可能可以使用它将SVG渲染为.png格式(然后将其转换为Libgdx Pixmaps)。 (我没有任何经验。)
有一个(已死?) libgdx SVG扩展项目,但看起来只完成了最基本的SVG解析。
新增: 我现在已经成功完成了。不过有一个小细节:使用Python脚本的方法已经过时了。在上面第一个链接的页面评论中,有一个链接指向xoppa的教程,里面介绍了如何使用FBX转换工具导出模型。我在Blender 3D中创建了一个朝向前视图的二维平面形状。将其导出为FBX文件,并使用转换工具制作了一个G3DB文件。按照xoppa教程中描述的那样使用LibGdx的G3dModelLoader方法,您现在可以使用ModelBatch在视图中绘制它。将您的正交摄像机看向0,0,0(或者适合您需求的任何位置),并稍微往z轴后退一点——否则您将无法看到它。由于它是正交相机,所以无论距离有多远都没有关系,但是某种程度上0,0,1会有些意义 :) 还要记得在每帧渲染时清除GL_DEPTH_BUFFER_BIT。