在libgdx framework
中,我们只能使用两个图像的力量(64x256
,128x32
等)因为OpenGL需要它。
有没有什么好方法可以通过"这个限制?
例如:使用图片800x480
。
答案 0 :(得分:7)
设置Texture.setEnforcePotImages(false);
并且您不再拥有限制。所以你不能使用尺寸为2的图片。它只是一个“可以拥有”而不是“必须拥有”。
此致
答案 1 :(得分:6)
你可以使用非锅纹理,例如通过使用opengl es2.0。但是至少尝试使用罐纹理是一种好习惯。例如,通过将多个图像打包到单个纹理中。这也减少了纹理切换的数量。请参阅:http://code.google.com/p/libgdx/wiki/TexturePacker。
答案 2 :(得分:3)
在加载图片之前执行此操作:
GLTexture.setEnforcePotImages(假);
这将忽略电源2检查。
答案 3 :(得分:1)
最佳做法是不要直接使用您的图像。而是使用在LibGdx nightlies中可用的TexturePacker工具来生成Image Atlas。要了解更多信息: - https://github.com/libgdx/libgdx/wiki/Texture-packer
答案 4 :(得分:1)
对于某些纹理,你可以使它成为2的力量。
对于800 X 480的背景,您可以通过向顶部和右侧添加透明空间使其为1024 x 512。然后在绘制纹理时只需将其放在原点上即可。 (左上角)需要注意的一点是,这种技术会导致生成的文件变得更大。
调整大小前(800 X 480)
调整大小后(1024 x 512)
当然,这可以在GIMP中轻松完成。转到图片 - >画布的尺寸。然后输入所需的宽度和高度。 Gimp会将图像放在透明空间的左上角,但我们希望它位于左下角。要移动它,只需输入最高的Y偏移量。 (您可以输入更大的数字,Gimp会更正它)
答案 5 :(得分:0)
使用open gl2.0删除此限制