首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL在Android2.3.7(CyanogenMod-7)上绑定空白纹理,而在其他安卓版本上绑定实际图像

OpenGL在Android2.3.7(CyanogenMod-7)上绑定空白纹理,而在其他安卓版本上绑定实际图像
EN

Stack Overflow用户
提问于 2013-01-31 16:00:16
回答 2查看 408关注 0票数 2

绑定代码:

代码语言:javascript
复制
gl.glBindTexture (GL10.GL_TEXTURE_2D, id);

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);

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_CLAMP_TO_EDGE);

gl.glTexEnvf (GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_REPLACE);

GLUtils.texImage2D (GL10.GL_TEXTURE_2D, 0, bitmaps.get (resource), 0);

在Android2.3.3和Android4.x.x上:

在Android2.3.7上,我有:

附加信息:我的纹理宽度和高度不是2的幂。纹理位于可绘制-nodpi文件夹中。纹理正被拉伸以适应不同的屏幕尺寸,第一个屏幕截图是从屏幕大小854x480的设备上拍摄的,第二个屏幕截图是800x480。

  • 设备运行CyanogenMod-7。

我的第一个嫌疑人是gl.glTexParameterf (GL10.GL_TEXTURE_2D,设置,但我不是他们的专家)。我尝试了一些替代方案,但没有起到多大作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-31 17:01:05

坏消息是,我尝试用2的幂(1024x1024)设置纹理宽度和高度,它起了作用:

原因是这个设备,因为有相当数量的设备不支持npot纹理。

因此,对于解决办法,我认为,如果提供的纹理是在npot尺寸,它将更好地调整他们的飞行时,负荷。

票数 1
EN

Stack Overflow用户

发布于 2013-02-01 09:55:12

对于安卓上的OpenGLES来说,你需要保持安全,因为很多厂商都不支持两种纹理的非幂化。您可以脱机调整所有纹理的大小,也可以在加载期间调整它们的大小。有关如何轻松调整两个纹理的非幂值的更多信息,请检查该类:https://github.com/TraxNet/ShadingZen/blob/master/library/src/main/java/org/traxnet/shadingzen/core/BitmapTexture.java

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14629902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档