如何通过 opengl 函数调用来改变 lod 偏差?我不喜欢默认设置,过早更改 miplevels 并使附近的地面看起来很丑。
我找不到任何代码来做到这一点,每个主题都是关于一些完成这项工作的外部程序......
编辑:这是我的纹理设置:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST_MIPMAP_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
最佳答案
用途:
glTexEnvf(GL_TEXTURE_FILTER_CONTROL, GL_TEXTURE_LOD_BIAS, bias);
更多细节在这里: http://www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml 那里:http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_lod_bias.txt
编辑:
好的,我明白了。第一个GL_TEXTURE_MAG_FILTER
只能取两个可能的值:
GL_NEAREST
- 或
GL_LINEAR
所以使用 GL_LINEAR
以获得最佳效果。
然后对于 GL_TEXTURE_MIN_FILTER
,使用 GL_NEAREST_MIPMAP_NEAREST
你没有使用纹理插值,只使用 mipmaping(你使用最适合的最近的 mipmap,但是在这个 mipmap 中你使用仅最近的纹素,在这个纹素和他的邻居之间没有插值)。
所以使用 GL_NEAREST_MIPMAP_LINEAR
在纹素之间进行加权平均。
使用 GL_LINEAR_MIPMAP_LINEAR
您可以获得更高的渲染质量,因为它将使用两个 mipmap(mipmap N 和 N+1)的纹理提取结果之间的线性插值,而不是仅获取结果像以前一样为 mipmap N 提取纹理。
GL_LINEAR_MIPMAP_LINEAR
也称为三线性过滤。
关于通过opengl函数调用调整opengl纹理lod偏差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1882690/