【问题标题】:resolution independent graphics for Android games适用于 Android 游戏的分辨率独立显卡
【发布时间】:2014-01-03 18:55:45
【问题描述】:

我正在使用 libgdx 开发一款 Android 游戏,并将虚拟相机的宽度/高度定义为:800x1280。

我有 3 台测试设备:

  1. Nexus 5 1920 x 1080 显示屏 (445 ppi)
  2. Nexus S 480 x 800 像素 (233 ppi)
  3. Nexus 10 2560 x 1600 (300 ppi)

我正在使用 GIMP 开发图形。 如何在 GIMP 中为精灵、硬币和背景图片选择合适的尺寸,使其不会被像素化显示?我不只是想选择极高的分辨率并不必要地增加应用程序的大小。所有图形都必须是 2 的幂吗?

【问题讨论】:

    标签: android libgdx resolution


    【解决方案1】:

    如果您使用 OpenGLES1.x,是的,纹理必须是 2 的幂。如果您使用 OpenGLES2.0,那么它们不是强制的,但有些设备无论如何都不支持它们。

    建议您始终使用 2 纹理的幂。尝试获取大地图集中的所有图像(例如 1024x1024)。这会给你带来很大的性能提升。

    另外,我建议您为已在使用的相机视口 (800x1280) 制作图形。
    并决定您是希望图形以不同的屏幕比例拉伸,还是让精灵看起来相同但改变每个用户可以看到的世界范围。

    首先,让您的视口保持这样 (800x1280) 它将自动拉伸。
    第二,将较长的一侧固定并计算另一侧。 (或相反,这取决于您是否希望用户在水平或垂直方向上看到更多或更少)。像这样的:

    cam = new OrthographicCamera(((float)Gdx.graphics.getWidth()/Gdx.graphics.getHeight())*800, 1280);
    

    我建议您将它们制作为 800x1280,并对图像使用线性滤镜,这样它们在拉伸/收缩时看起来不会像素化。

    texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
    

    【讨论】:

    • 拉伸在我的游戏中并不是真正的问题。我最担心的是图像在平板电脑和其他更大的屏幕上出现像素化。但我不只是想创建巨大的图像并增加我的应用程序大小。任何想法如何为精灵选择合适的尺寸?
    • 将它们制作为 800x1280,并对图像使用线性滤镜,这样它们看起来就不会像素化。 "texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);".
    【解决方案2】:

    对于手机上的 OpenGL,具有 2 个纹理的幂是一种强制性,但某些设备可能支持 2 个纹理的非幂(有一些限制)。因此,如果您想确保它能够坚持使用 2 种纹理的力量。

    对于通用绘图,我认为任何事情都没有限制,通用绘图我的意思是布局中的位图。

    如何解决独立性问题通常取决于您,因为首先您可能会遇到宽高比问题,这会导致像 16:9 中的 4:3 这样的失真会被拉伸,因此您必须对此采取一些措施,在 3D 游戏中通常的做法是让相机在 16:9 中“看到”更多。

    无论如何,通常您应该使用 android 的内置方法为当前显示选择最佳图像集,据我所知,这不仅仅是选择最接近您所拥有的分辨率的像素大小,因为您的实际像素将看到可能会因设备( ppi )而异。

    解决这个问题的另一种方法是,您可以在每次运行时生成图像,使其每次都最合适,我的意思是您存储源并在启动时预渲染图像以使其最适合合适。

    因此,在质量和速度之间进行权衡的最佳方法是为不同的屏幕设置不同的设置,并在启动时选择最佳(或让 android 为您完成)并使用这些图像进行渲染。 如果您只想使用一组图像,请尝试对其进行调整,使其在更大的屏幕上看起来还不错,因为缩小比例往往比放大比例更好。

    【讨论】:

    • 投反对票的人能解释一下为什么投反对票吗?这个答案似乎有一些有用的信息。
    • 我也想知道,所以我可以改进我的答案:)
    猜你喜欢
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多