首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像不是2的幂吗?

图像不是2的幂吗?
EN

Stack Overflow用户
提问于 2012-06-11 08:26:25
回答 3查看 16.4K关注 0票数 11

所以,我做了一个libGDX的雨滴教程项目。然而,当我试图将它部署到模拟器时,我得到了一个错误,说镜像不是2的幂。但我确实使用GIMP将镜像的大小调整为48X48 (正如教程所建议的那样)。我相信他已经添加了一些代码,以确保可以添加不一定是2的幂的图像?

有人知道我会怎么解决这个问题吗?使它成为2的幂有点限制..难到不是么?我非常仔细地学习了教程!所以..。我不知道下一步该怎么走。libGDX的菜鸟。

LogCat转储:

代码语言:javascript
复制
06-11 00:22:50.942: W/dalvikvm(545): threadid=11: thread exiting with uncaught exception (group=0x409c01f8)
06-11 00:22:50.952: E/AndroidRuntime(545): FATAL EXCEPTION: GLThread 72
06-11 00:22:50.952: E/AndroidRuntime(545): com.badlogic.gdx.utils.GdxRuntimeException: Texture width and height must be powers of two: 48x48
06-11 00:22:50.952: E/AndroidRuntime(545):  at com.badlogic.gdx.graphics.Texture.uploadImageData(Texture.java:197)
06-11 00:22:50.952: E/AndroidRuntime(545):  at com.badlogic.gdx.graphics.Texture.load(Texture.java:179)
06-11 00:22:50.952: E/AndroidRuntime(545):  at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
06-11 00:22:50.952: E/AndroidRuntime(545):  at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
06-11 00:22:50.952: E/AndroidRuntime(545):  at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
06-11 00:22:50.952: E/AndroidRuntime(545):  at com.badlogic.drop.Drop.create(Drop.java:38)
06-11 00:22:50.952: E/AndroidRuntime(545):  at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:292)
06-11 00:22:50.952: E/AndroidRuntime(545):  at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1455)
06-11 00:22:50.952: E/AndroidRuntime(545):  at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
06-11 00:22:51.041: I/AndroidInput(545): sensor listener tear down
06-11 00:22:51.041: I/AndroidGraphics(545): Managed meshes/app: { }
06-11 00:22:51.041: I/AndroidGraphics(545): Managed textures/app: { }
06-11 00:22:51.041: I/AndroidGraphics(545): Managed shaders/app: { }
06-11 00:22:51.041: I/AndroidGraphics(545): Managed buffers/app: { }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-12 02:06:42

48x48不是2的幂。该应用程序需要文本中所述的OpenGL ES 2.0。标准仿真器仅运行OpenGL ES 1.0。您可以将图像重新缩放为32x32,然后一切都将在OpenGL ES 1.x上按预期运行。

我建议不要使用模拟器来测试OpenGL ES应用程序。请使用真实的设备。

票数 30
EN

Stack Overflow用户

发布于 2013-06-12 02:57:30

您可以通过在create()方法中设置游戏类中的以下代码行来阻止它强制执行2的幂要求:

代码语言:javascript
复制
Texture.setEnforcePotImages(false);
票数 17
EN

Stack Overflow用户

发布于 2016-02-09 11:51:52

这对我将所有从"com.badlogic.gdx.graphics.GL10“导入的"GL10”更改为从"com.badlogic.gdx.graphics.GL20“导入的"GL20”有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10973463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档