【发布时间】:2017-02-20 19:47:11
【问题描述】:
我使用的是 Android 移动平台,带有 OpenGL ES 2.0。
当我像这样制作纹理时,场景中的纹理会正确绘制
//Generate there texture pointer
GLES20.glGenTextures(1, textureHandle, 0);
// parameters - we have to make sure we clamp the textures to the edges!!!
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureHandle[0]);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S,GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T,GLES20.GL_CLAMP_TO_EDGE);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER,GLES20.GL_LINEAR);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER,GLES20.GL_LINEAR);
但是,我希望能够滚动纹理,并且我相信将环绕模式设置为 GLES20.GL_REPEAT 会使所需的计算更加可能。但是,当使用如下代码时。
//Generate there texture pointer
GLES20.glGenTextures(1, textureHandle, 0);
// parameters - we have to make sure we clamp the textures to the edges!!!
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, textureHandle[0]);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S,GLES20.GL_REPEAT);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T,GLES20.GL_REPEAT);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER,GLES20.GL_LINEAR);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER,GLES20.GL_LINEAR);
每个纹理都是黑色的。我在这里所做的唯一区别是在对 GLES20.glTexParameteri 的调用中设置了 GLES20.GL_REPEAT 参数名称。这看起来真的很奇怪。有人有什么想法可以分享吗?
感谢您的帮助。 谢谢。
【问题讨论】:
标签: java android opengl-es opengl-es-2.0