我是否需要担心API 16+上的非2次幂纹理?



我正在制作一款Android和iOS手机游戏

正如我在Android网站上看到的:

  • OpenGL ES 1.0和1.1 -该API规范是由Android 1.0及更高版本。
  • OpenGL ES 2.0 - Android 2.2支持该API规范(API等级8)或更高。
  • OpenGL ES 3.0 - Android 4.3支持该API规范(API等级18)或更高。
  • OpenGL ES 3.1 - Android 5.0支持该API规范(API等级21)或更高。

我构建我的应用程序只针对设备API16+,但是,这是否意味着我可以使用非锅纹理?

这个API级别的人是否有可能在他的设备上有OpenGL 1.0,这会导致试图加载我的纹理时崩溃?这个设备是独立的吗?

首先,您没有提到您的目标是OpenGLES 1还是2。从你发布的信息来看,你所瞄准的所有设备都支持OpenGLES 2,但这取决于你实际选择使用哪个版本。

假设你的代码使用OpenGLES 2,那么所有的设备都应该使用非pot纹理。然而,你应该意识到纹理包装(GL_REPEAT)和mipmapping仅通过扩展支持非pot纹理。此外,许多设备会分配内存,如果你的纹理是POT。

由于这些原因,为3D资产编写POT纹理几乎总是一个好主意。对于2D资产,考虑使用纹理图集将多个非POT纹理组合成一个更大的POT图集是一个好主意。

最新更新