桌面有最大的libGDX纹理大小吗?

Vol*_*ort 6 opengl libgdx

我知道在移动设备上,你可以在一次绘制中渲染的最大纹理有所不同:有时它只有1024x1024 - 其他时间是2048x2048等.

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

我打算绘制一个可以大到5000x5000的单个背景精灵.我猜测TexturePacker在这种情况下并不是很有用,因为我真的不需要一个地图册,因为我只是想制作一个精灵.

是的,我刚刚测试了5000x5000,它运行得很好.只是想知道是否有一个实际的限制要考虑.也许它不同于一台计算机?

noo*_*one 12

除了PT所说的,我还想为它提供代码(在libGDX中).

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

在我的桌面系统上,这会导致4096支持的最大大小为4096x4096.我的系统不是那么老了.您可能不应该假设所有桌面系统都可以使用5000x5000.通常你不需要那么大的纹理,所以不是所有的GPU都支持它.您总是可以将它分成几个纹理并将它绘制在彼此相邻的多个四边形上以解决该问题.


P.T*_*.T. 8

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

您可以在运行时检查以查看报告的限制(尽管有些警告,请参阅GL_MAX_TEXTURE_SIZE的混淆).

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

我认为在现代桌面GPU 5000x5000将完全在支持的限制之下.