有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java libDGX不绘制大尺寸的纹理

我无法在桌面上用libGDX绘制大图像。我有一个尺寸为9494x13082像素的图像,使用batch.draw(texture, 0, 0, width, height);。libGDX绘制一个黑色正方形,而不是纹理。如果我将图像压缩到60%或更高,一切正常。我试图使用TextureRegion,但也不起作用。 请告诉我,可能是什么问题。也许我没有足够的内存

我在Linux,OpenGLES2.0,2GB内存,Java的最小内存为1GB,最大内存为2GB


共 (1) 个答案

  1. # 1 楼答案

    第一:opengl纹理尺寸等于h&;W 即使宽度不等于高度,也会考虑另一个的最大邻接,并最终将正方形指定给该内存

    第二:你的照片最好不要大于2048*2048。我想最大值是4096*4096

    不支持opengl 1。libgdx将纹理更改为POT。所以,最好的纹理大小是牵引力 使用此参数禁用libgdx的强制POT

    Texture.setEnforcePotImages(false);
    

    现在,您的解决方案是:

    你必须把照片分成小块。例如2048*2048(罐),然后用纹理包装器包装。然后把它画在你需要的地方

    请注意,如果您使用的是压缩工具,请注意压缩文件与图形压缩不同。因此,使用jpg或png不会减少内存空间。 您应该使用纹理压缩器,如:etc1、etc2、ktx等

    我为您编写示例代码:

       // in this sample my image is 5*4 (5*4 - 2048*2048)
       for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 4; j++) {
                  batch.draw(texture[i,j], i*2048, j*2048, width, height);
            }
        }