【问题标题】:Libgdx Android Game Drawing Shapes (Bitmap vs. SVG)Libgdx Android 游戏绘制形状(位图与 SVG)
【发布时间】:2014-05-24 21:40:08
【问题描述】:

免责声明:我是 Libgdx 和一般 android 编程的新手。

我的游戏需要简单的形状(正方形、圆形等)

我希望形状看起来非常干净(尤其是边缘)。

矢量形状(可能是圆形除外)会产生我想要的图形。

位图图像(TextureAtlas)而不是 SVG(ShapeRenderer)的优缺点是什么?

位图纹理图集:

我可以为位图制作动画(上下缩放)而不让它们看起来像素化吗?

我可以使用位图 AtlasRegions(基本上是纹理)对形状进行色调/更改颜色吗?

SVG ShapeRenderer:

SVG/ShapeRenderer 真的会那么慢吗?

【问题讨论】:

    标签: java android svg bitmap libgdx


    【解决方案1】:

    LibGDX 不支持矢量图形 (SVG)..

    您可以做的最好的事情是为不同的屏幕尺寸提供图形,并使用 ResolutionFileResolver 类来帮助您根据您的屏幕分辨率获得最接近的图形。

    这是个好主意,因为您不想在三星 Galaxy mini 上使用高清显卡,这会降低帧率,而且您也不希望在高清手机或平板电脑上使用标清显卡,因为它看起来像素化。

    【讨论】:

      【解决方案2】:

      根据我的经验,使用 ShapeRenderer 绘制平滑形状可能会破坏您的帧率(我在迷你基准测试中损失了大约 100 fps。)但是,我没有完全对此进行基准测试,它还取决于渲染了多少段(更多段,更平滑的形状)。

      我认为你最好制作高分辨率位图。如果按比例缩小,它们不应看起来像素化。您还可以使用 SpriteBatch 为位图着色。

      我希望这回答了你的问题:)

      【讨论】:

      • 谢谢。是的,位图似乎是要走的路。附带说明:纹理包应该有多大?我应该制作一个来支持所有设备吗?还是每个屏幕分辨率一个?
      • 我在考虑每个纵横比的高分辨率纹理。因此,对于 16:9 的纵横比,您可以制作 1920x1080 或 1280x720 的纹理包,对于 16:10 的纵横比,您可以制作 1920x1200 或 1680x1050 的纹理包。然后你可以为每台设备缩小它,这样你就不必为每个不同的分辨率单独制作一个。
      • 在没有位图(或自定义 GLSL 着色器)的情况下,也很难在 OpenGL 中获得良好的抗锯齿。 Libgdx ShapeRenderer 绝对不做任何抗锯齿。
      猜你喜欢
      • 2014-04-12
      • 1970-01-01
      • 2018-09-13
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多