【问题标题】:Is there a max libGDX texture size for desktop?桌面是否有最大的 libGDX 纹理大小?
【发布时间】:2014-06-07 23:52:31
【问题描述】:

我知道在移动设备上,您可以在一次绘制中渲染的最大纹理有所不同:有时仅为 1024x1024,有时为 2048x2048 等。

桌面游戏的情况如何?我正在使用 OpenGL 2.0。

我打算绘制一个大小为 5000x5000 的单一背景精灵。我猜 TexturePacker 在这种情况下不是很有用,因为我真的不需要图集,因为我只是想制作一个精灵。

是的,我刚刚测试了 5000x5000,效果很好。只是想知道是否有实际的限制需要考虑。也许它因一台计算机而异?

【问题讨论】:

    标签: opengl libgdx


    【解决方案1】:

    除了 P.T.说,我想提供代码(在 libGDX 中)。

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

    在我的桌面系统上,这会导致 4096,这意味着支持的最大尺寸为 4096x4096。我的系统虽然不是那么旧。您可能不应该假设 5000x5000 在所有桌面系统上都可用。通常您不需要那么大的纹理,因此并非所有 GPU 都支持。您始终可以将其拆分为多个纹理,然后将其绘制在多个相邻的四边形上以解决该问题。

    【讨论】:

      【解决方案2】:

      最大纹理大小是 OpenGL 的一个函数,它将大小留给显卡的设备驱动程序(在界限内)。

      您可以在运行时查看报告的限制是多少(尽管请参阅Confusion with GL_MAX_TEXTURE_SIZE 了解一些警告)。

      为了了解实际中的各种硬件报告,有些网站会收集用户的结果数据库(主要关注基准性能),这些网站通常还会收集最大纹理大小等数据。 (例如,gfxbench.com 或 http://opengl.gpuinfo.org/gl_stats_caps_single.php?listreportsbycap=GL_MAX_TEXTURE_SIZE

      我认为在现代桌面 GPU 上,5000x5000 将远远低于支持的限制。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-28
        • 1970-01-01
        • 2019-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-28
        • 1970-01-01
        相关资源
        最近更新 更多