3

libgdx framework我们只能使用图像的两个(,,等)的幂,64x256因为128x32OpenGL 需要它。

有什么好方法可以“通过”这个限制吗?
例如:使用图像800x480

4

6 回答 6

7

做设置Texture.setEnforcePotImages(false);,你就没有限制了。因此,您不能只使用大小为 2 的图片。这只是“可以拥有”而不是“必须拥有”。

问候

于 2013-07-12T09:50:00.263 回答
6

您可以使用非锅纹理,例如使用 opengl es2.0。但至少尝试使用锅纹理是一个好习惯。例如,通过将多个图像打包到单个纹理中。这也减少了纹理切换的数量。请参阅:http ://code.google.com/p/libgdx/wiki/TexturePacker 。

于 2013-07-12T20:56:13.663 回答
3

在加载图像之前执行此操作:

GLTexture.setEnforcePotImages(false);

这将忽略 power 2 检查。

于 2014-06-07T22:50:08.157 回答
1

最佳做法是不要直接使用您的图像。而是使用 LibGdx nightlies 中提供的 TexturePacker 工具来生成 Image Atlas。要了解更多信息:- https://github.com/libgdx/libgdx/wiki/Texture-packer

于 2014-03-06T11:56:26.267 回答
1

对于某些纹理,您可以将其设为 2 的幂。

对于 800 X 480 的背景,您可以通过在顶部和右侧添加透明空间将其设置为 1024 x 512。然后在绘制纹理时只需简单地放置在原点上。(左手角)需要注意的一点是,这种技术会导致生成的文件最终变大一点。

调整大小之前 (800 X 480)

原始图像

调整大小后 (1024 x 512)

稍后的图像

当然,这可以在 GIMP 中轻松完成。转到图像-> 画布大小。然后输入所需的宽度和高度。Gimp 会将图像放在透明空间的左上角,但我们希望它在左下角。要移动它,只需输入最高的 Y 偏移量。(您可以输入太大的数字,Gimp 会更正它)

设置图像画布大小对话框

于 2014-12-29T17:27:56.827 回答
0

使用 open gl2.0 来消除这个限制

于 2013-07-12T09:31:30.497 回答