桌面是否有最大libGDX纹理大小?



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

桌面游戏的情况如何?我使用的是opengl2.0。

我打算画一个单一的背景精灵,可能会像5000x5000一样大。我猜TexturePacker在这种情况下不是很有用,因为我并不真正需要地图集,因为我只是想制作一个精灵。

是的,我刚刚测试了5000x5000,它工作得很好。只是想知道是否有实际的限制需要考虑。也许每台电脑都不一样?

除了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都支持。你可以把它分成几个纹理,并在多个相邻的四边形上绘制,以解决这个问题。

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

您可以在运行时检查报告的限制是什么(不过请参阅与GL_MAX_TEXTURE_SIZE的混淆了解一些警告)。

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

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

最新更新