gpt4 book ai didi

android - GL_MAX_TEXTURE_SIZE 较低的 Android 设备上的纹理不佳

转载 作者:太空狗 更新时间:2023-10-29 12:48:55 28 4
gpt4 key购买 nike

我最近在多台 Android 设备上测试了我的一款游戏。在那期间,我遇到了与 Galaxy S2 的奇怪遭遇。当我启动游戏时,除了背景之外,整个游戏都运行良好。游戏的背景显示为黑色而不是预期的纹理。在网上搜索时,我遇到了 this forum并意识到这是 Galaxy S2 上的一个糟糕的纹理问题,因为游戏的背景图像包含在一个单独且非常大的 Sprite 表 (4096) 中,而游戏的其余 Actor 则包含在一个较小的 Sprite 表中。由此,我想到这与GL_MAX_TEXTURE_SIZE有关。

现在我的问题是:具有大显示屏的设备是否可行,例如 Google Nexus 10 (宽度为 2560 )的 GL_MAX_TEXTURE_SIZE 可能为 2048?

此外,Android 设备上最常见的 GL_MAX_TEXTURE_SIZE 是多少?如果您还希望您的应用程序为具有非常大分辨率的设备提供服务,如何解决此类问题?

最佳答案

是的,不幸的是这是可能的。

移动设备之间可能会有所不同。 OpenGL ES 2.0 规范规定 GL_MAX_TEXTURE_SIZE 的最小值仅为 64!因此,检查游戏中的硬件上限是个好习惯。供应商只需支持最低规范,其余的由他们选择。

参见 http://www.khronos.org/opengles/sdk/docs/man/xhtml/glGet.xml有关 opengl ES 2.0 最小上限的一些信息。

此处:http://developer.apple.com/library/ios/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/DeterminingOpenGLESCapabilities/DeterminingOpenGLESCapabilities.html有信息说:

PowerVR MBX graphics hardware support textures up to 1024 x 1024 in size, while the PowerVR SGX software supports textures up to 2048 x 2048; both sizes greatly exceed 64 x 64, which is the minimum size required in the OpenGL ES specification. If your application’s needs exceeds the minimum capabilities required by the OpenGL ES specification, it should query the implementation to check the actual capabilities of the hardware and fail gracefully; you may load a smaller texture or choose a different rendering strategy.

这是来自 iPhone...但同样的硬件也可以在 Android 设备上找到。

在 OpenGL ES 3.0 上,GL_MAX_TEXTURE_SIZE 的最小值为 2048 http://www.khronos.org/opengles/sdk/docs/man3/xhtml/glGet.xml

那该怎么办?OpenGL 提供了一个体面且统一的软件层,可用于制作您的应用程序。但是平台和硬件之间仍然存在一些差异。通常在游戏引擎中,我们会检查给定的功能,然后进行一些“回退”以确保它即使在最低要求下也能正常工作。你的问题没有单一的答案。这取决于问题。

对于纹理大小,我认为你可以将大纹理切割成一些较小的 block ,然后使用几个矩形/四边形显示它

关于android - GL_MAX_TEXTURE_SIZE 较低的 Android 设备上的纹理不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690473/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com