2

我正在 iPad 3 上使用 OpenGL ES 2.0 开发应用程序。我试图从GL_UNSIGNED_BYTE调用“ ”时glTexImage2D()切换为“ ”和“ ”参数。(以前)GL_FLOATtypeGL_LUMINANCEinternalFormatformatGL_RGBA

问题:线性插值现在消失了。当你放大时,它是非常像素化的而不是平滑的,就像线性插值一样。我需要切换到GL_RGBA而不是GL_LUMINANCE?是否使用GL_LUMINANCE自动禁用插值?

在我的着色器中,我开始:

highp vec4 tex = texture2D(Texture, TexCoordOut);

就像我之前使用GL_UNSIGNED_BYTE. TexCoordOut是顶点着色器的插值输出。为什么在切换到亮度和浮动后不再插值?

ps 我在打电话:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

就在之前glTexImage2D(),但我的印象是这些调用在 OpenGL ES 2.0 下什么都不做。

4

1 回答 1

2

我只记得:当使用 GL_FLOAT 时,GL_LINEAR 在 OpenGL ES 2.0 上不可用,除非支持 GL_OES_texture_float_linear 扩展,它在 iPad 3 和更早版本上不支持。

由于支持 GL_OES_texture_half_float_linear 扩展,我将不得不考虑使用它。

于 2012-11-21T03:20:55.170 回答