【问题标题】:LibGDX texture won't draw on Android 4.3LibGDX 纹理不会在 Android 4.3 上绘制
【发布时间】:2013-08-24 19:44:40
【问题描述】:

我有一个扩展 Game 的主类,一个在启动屏幕类中实现屏幕、批处理、相机和纹理的启动屏幕。 在我的某些设备上它运行正常(Xperia SP 4.1.2、Xperia Neo V 2.3.4、GalaxyTab 8.9 4.0.4),但在我的带有 Android 的 Nexus 7 上...... 4.3(!)纹理未绘制。 但是实现 ApplicationListener 的项目中的纹理在所有这些中都可以正常工作。 我正在使用最新的夜间版本的 LibGDX。怎么了?

【问题讨论】:

  • 请展示一些加载纹理和渲染纹理的代码。请阅读msmvps.com/blogs/jon_skeet/archive/2010/08/29/…
  • pastebin.com/Ke1GLj3L pastebin.com/RBMhUjYD 代码。对不起我的英语:/
  • 你的英语很棒。你的代码看起来也不错。 (顺便说一句,您应该能够将代码编辑到您现有的问题中)。也许你的质地有问题?您的目标是什么版本的 OpenGL?您的图像的格式和大小是什么? (在您概述的所有情况下,它的纹理是否相同?)
  • 哈,问题解决了。 OpenGL 目标是 2.0,但是......在 Nexus 上(tegra3 问题?)只能使用二维幂的纹理......这有点奇怪。
  • 是的,这很奇怪。 OpenGL2.0 应该没有纹理大小的要求。你设置了'config.useGL20 = true;'在 AndroidApplicationConfiguration 中:libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/…

标签: android textures screen libgdx


【解决方案1】:

哈,问题解决了。 OpenGL 目标是 2.0,但是......在 Nexus 上(tegra3 问题?)只能使用二维幂的纹理......这有点奇怪。

【讨论】:

    【解决方案2】:

    我在 nexus Samsung Google Galaxy Nexus I9250 或 Samsung Google Nexus 3 或 Samsung Galaxy X 上遇到了这个问题,在这种情况下,问题是这些设备无法渲染它们没有二维能力的图像。因此,例如,如果纹理大小为 (54, 1000),则应将其大小调整为 (64,1024)。但是这个问题在 Sumsung s4 mini 上不存在。我渲染纹理的方式是从资产管理器加载模型。

      //AssetManager : is a class for loading models
        AssetManager assets = new AssetManager();
        public ModelInstance modelInstancePlane;
        public Model modelPlane;
        String plane="plane.g3db";
        assets.load(plane, Model.class);
        //If you want to block and make sure all assets are loaded
        assets.finishLoading();
        modelPlane = assets.get(plane, Model.class);
        modelInstancePlane= new ModelInstance(modelPlane);
    

    【讨论】:

      猜你喜欢
      • 2019-08-04
      • 2018-04-03
      • 1970-01-01
      • 2016-06-29
      • 1970-01-01
      • 2017-10-09
      • 1970-01-01
      • 1970-01-01
      • 2014-09-05
      相关资源
      最近更新 更多