Is there a max libGDX texture size for desktop?

前端 未结 2 1028
名媛妹妹
名媛妹妹 2020-12-18 03:41

I know that on mobile devices, the largest texture you could render in a single draw differs: sometimes it is a mere 1024x1024 - other times 2048x2048 etc.

What is t

相关标签:
2条回答
  • 2020-12-18 04:03

    The maximum texture size is a function of OpenGL, which leaves the size to the video card's device driver (within bounds).

    You can check at run-time to see what the reported limits are (though see Confusion with GL_MAX_TEXTURE_SIZE for some caveats).

    To find out what a variety of hardware reports in practice, there are some sites that collect databases of results from users (mostly concerned with benchmark performance), that often also collect data like max texture size. (E.g., gfxbench.com, or http://opengl.gpuinfo.org/gl_stats_caps_single.php?listreportsbycap=GL_MAX_TEXTURE_SIZE)

    I think on a modern desktop GPU 5000x5000 will be well under the supported limit.

    0 讨论(0)
  • 2020-12-18 04:09

    In addition to what P.T. said, I wanted to supply the code for that (in libGDX).

    IntBuffer intBuffer = BufferUtils.newIntBuffer(16);
    Gdx.gl20.glGetIntegerv(GL20.GL_MAX_TEXTURE_SIZE, intBuffer);
    System.out.println(intBuffer.get());
    

    On my desktop system this results in 4096, meaning that the max size supported is 4096x4096. My system is not that old though. You should probably not assume that 5000x5000 is available on all desktop systems. Usually you don't need textures that big so not all GPUs support that. You can always split it up in several textures and draw it on multiple quads next to each other to work around that problem.

    0 讨论(0)
提交回复
热议问题