使用GL_FLOAT和GL_LUMINANCE进行线性插值?

时间:2012-11-21 02:34:52

标签: ios opengl-es opengl-es-2.0 linear-interpolation luminance

我正在iPad 3上使用OpenGL ES 2.0开发应用程序。我正在尝试从调用GL_UNSIGNED_BYTE时的glTexImage2D()切换到GL_FLOAT type “,GL_LUMINANCE作为”internalFormat“和”format“参数。 (以前为GL_RGBA

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

在我的着色器中,我从:

开始
highp vec4 tex = texture2D(Texture, TexCoordOut);

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

P.S。我在打电话:

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下发生任何事情。

1 个答案:

答案 0 :(得分:2)

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

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