我目前正在编写一个适用于 OpenGL ES 1.1 的 Android 应用程序。它在我开发它的 HTC Desire (Android 2.3.7) 上运行良好。现在我想在 Nexus 7 上测试它,但它只显示黑屏。我发现所有纹理都被简单地渲染为黑色。在没有渲染对象和纹理的部分上,我得到(几乎)黑色背景颜色。
所以我的问题是为什么纹理在某些设备上渲染得很好,而在其他设备上却不行?
纹理都是二次方的,大小为 2(即 512x512、1024x1024)。这些是创建纹理时使用的设置:
gl.glBindTexture(GL10.GL_TEXTURE_2D, getTextureId());
// Create Nearest Filtered Texture
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER,
GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER,
GL10.GL_LINEAR);
// Different possible texture parameters, e.g. GL10.GL_CLAMP_TO_EDGE
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S,
GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T,
GL10.GL_REPEAT);
gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, /*GL10.GL_REPLACE*/ GL10.GL_MODULATE);
// Use the Android GLUtils to specify a two-dimensional texture image
// from our bitmap
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
我可以尝试在两个设备上渲染纹理吗?