gpt4 book ai didi

android - 纹理仅在某些设备上显示

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:22:18 24 4
gpt4 key购买 nike

我目前正在编写一个适用于 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);

我可以尝试什么来获得在两个设备上渲染的纹理?

最佳答案

如果您从可绘制对象中获取位图,请确保它们都在 drawable-nodpi 文件夹中。

否则,在不同的 android 密度上放大后,您的二乘方图像可能不是二乘方(drawable 文件夹中的 1024x1024 图像在 HDPI 设备上变为 1536x1536)。

关于android - 纹理仅在某些设备上显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12324752/

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