Opengl es 硬件中各向异性滤波的替代方案

Opengl es 硬件中各向异性滤波的替代方案,opengl-es,glsl,opengl-es-2.0,mipmaps,image-rendering,Opengl Es,Glsl,Opengl Es 2.0,Mipmaps,Image Rendering,我正在opengl-es-2.0中渲染一个纹理,该纹理与查看器(地板平面)成一个大角度。在支持各向异性滤波的硬件上,一切正常。但是,我需要支持一些硬件中没有的设备(没有GL\u EXT\u texture\u filter\u各向异性) 禁用mipmap后,纹理在远处会很清晰,但我有云纹图案,正如预期的那样。启用mipmap后,云纹图案消失,但纹理在远处变得模糊(正如预期的那样) 在没有各向异性过滤的硬件上有其他选择吗?在片段着色器(恐怕只有opengl-es-2.0)中这样做可行吗?任何地方都

我正在opengl-es-2.0中渲染一个纹理,该纹理与查看器(地板平面)成一个大角度。在支持各向异性滤波的硬件上,一切正常。但是,我需要支持一些硬件中没有的设备(没有GL\u EXT\u texture\u filter\u各向异性)

禁用mipmap后,纹理在远处会很清晰,但我有云纹图案,正如预期的那样。启用mipmap后,云纹图案消失,但纹理在远处变得模糊(正如预期的那样)

在没有各向异性过滤的硬件上有其他选择吗?在片段着色器(恐怕只有opengl-es-2.0)中这样做可行吗?任何地方都有样本代码吗?我确实发现了椭圆加权平均滤波,我想这是可以实现的,但是示例代码使用了底层的各向异性硬件滤波,并且无论如何使用了opengl-es-2.0上没有的东西


我的目标不是高帧速率,而是良好的图像质量。

针对mipmap的三线性过滤可以稍微改善一些情况:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
Mipmap偏差将提高清晰度。它可能会引入一些云纹,但远不及完全禁用mipmapping。这是通过在片段着色器中调用不同的texture2D重载来完成的

texture2D(yourSampler, yourTexCoords, yourMipBias);
IIRC,mipBias的值为-1将使纹理采样锐化1 mip级别,您必须为场景进行调整,但大约-0.5到-1.5可能就足够了


我相信可以在着色器中编写自己的各向异性过滤,但我没有第一手的经验。我会先尝试这些更简单、更有效的方法,看看你是否可以通过这种方式获得良好的视觉质量。

针对mipmap的三线性过滤会稍微改善一些情况:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
Mipmap偏差将提高清晰度。它可能会引入一些云纹,但远不及完全禁用mipmapping。这是通过在片段着色器中调用不同的texture2D重载来完成的

texture2D(yourSampler, yourTexCoords, yourMipBias);
IIRC,mipBias的值为-1将使纹理采样锐化1 mip级别,您必须为场景进行调整,但大约-0.5到-1.5可能就足够了

我相信可以在着色器中编写自己的各向异性过滤,但我没有第一手的经验。我会先尝试这些更简单、更有效的方法,看看你是否可以通过这种方式获得良好的视觉质量