首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >硬件中各向异性滤波的替代方案

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

Stack Overflow用户
提问于 2017-11-09 05:11:17
回答 1查看 514关注 0票数 0

我正在opengl-es-2.0中渲染一个相对于查看器(地面平面)的大角度下的纹理。在支持各向异性过滤的硬件上,一切都很好。然而,我需要支持一些硬件中没有这个的设备(没有GL_EXT_texture_filter_anisotropic)。

关闭mipmap后,纹理在远处很清晰,但我有云纹图案,不出所料。启用mipmap后,Moiré图案消失,但纹理在远处变得模糊(再次如预期)。

在没有各向异性过滤的硬件上有什么替代方案吗?在片段着色器(恐怕只有opengl-es-2.0)中这样做是可行的吗?有没有样例代码?我确实在椭圆加权平均过滤上发现了http://www.pmavridis.com/ewa.html,我猜这是可以实现的,但是示例代码使用了底层的各向异性硬件过滤,而且无论如何都使用了opengl-es-2.0中没有的东西。

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

EN

回答 1

Stack Overflow用户

发布于 2017-11-09 07:12:37

mipmaps的三线性过滤稍微改进了一些:

代码语言:javascript
复制
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);

Mipmap偏移将提高锐度。它可能会引入一些Moire,但远远比不上完全禁用mipmapping。这是通过在片段着色器中调用不同的texture2D重载来完成的

代码语言:javascript
复制
texture2D(yourSampler, yourTexCoords, yourMipBias);

IIRC,yourMipBias的值为-1将使纹理采样锐化1mip级别,您必须针对场景进行调整,但-0.5到-1.5的值可能就足够好了。

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47189773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档