我正在使用OpenGL ES 2.0在iPad 3上开发一个应用程序。我试图在调用glTexImage2D()时从GL_UNSIGNED_BYTE切换到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是顶点着色器的插值输出。为什么在切换到亮度和浮点后,它不再插值?
附注:我在打电话:
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下无论如何都不会做任何事情。
发布于 2012-11-21 11:20:55
我刚刚想起来了:使用GL_FLOAT时,GL_LINEAR在OpenGL ES 2.0上不可用,除非支持GL_OES_texture_float_linear扩展,而iPad 3和更早版本上不支持该扩展。
由于GL_OES_texture_half_float_linear扩展是受支持的,所以我必须考虑使用它。
https://stackoverflow.com/questions/13485507
复制相似问题