在
libgdx框架
中,我们只能使用2的次幂大小的图片(64x256
,128x32
等),因为OpenGL要求如此。有没有好的方法可以“绕过”这个限制呢?例如:使用 800x480
的图片。libgdx框架
中,我们只能使用2的次幂大小的图片(64x256
,128x32
等),因为OpenGL要求如此。有没有好的方法可以“绕过”这个限制呢?例如:使用 800x480
的图片。执行 Texture.setEnforcePotImages(false);
,然后你就没有限制了。因此,不能仅使用大小为2的幂的图片是不正确的。这只是“可以有”,而不是“必须有”。
祝好
您可以使用非2的幂次方纹理,例如使用OpenGL ES2.0。但是至少尝试使用2的幂次方纹理是一个好习惯。例如,将多个图像打包到单个纹理中。这也减少了纹理切换的数量。请参阅:http://code.google.com/p/libgdx/wiki/TexturePacker。
这将忽略2的幂检查。GLTexture.setEnforcePotImages(false);
对于某些纹理,您可以将其制作为二次幂。
对于800 x 480的背景,您可以通过在顶部和右侧添加透明空间将其变为1024 x 512。然后在绘制纹理时,只需将其简单地放置在原点上(左上角)。需要注意的是,此技术会导致生成的文件略大。
调整大小之前(800 x 480)
使用OpenGL2.0来消除此限制