如何通过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);
Run Code Online (Sandbox Code Playgroud)
Str*_*ger 10
使用:
glTexEnvf(GL_TEXTURE_FILTER_CONTROL, GL_TEXTURE_LOD_BIAS, bias);
Run Code Online (Sandbox Code Playgroud)
更多详细信息:http: //www.opengl.org/sdk/docs/man/xhtml/glTexEnv.xml ,其中:http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_lod_bias.文本
编辑:
好的我明白了.首先GL_TEXTURE_MAG_FILTER
只能采取两个可能的值:
GL_NEAREST
GL_LINEAR
所以要用GL_LINEAR
到最好的结果.
然后GL_TEXTURE_MIN_FILTER
,对于GL_NEAREST_MIPMAP_NEAREST
你没有使用纹理插值,只使用mipmaping(你采用最适合最好的mipmap,但在这个mipmap中你只采用最近的纹素,没有这个texel和他的邻居之间的插值).
因此GL_NEAREST_MIPMAP_LINEAR
用于在纹素之间进行加权平均.
有了GL_LINEAR_MIPMAP_LINEAR
你可以有更多的渲染质量,因为它会使用线性插值纹理的结果之间取两点的贴图(纹理贴图N和N + 1),而不是仅仅考虑纹理的结果寄存的纹理贴图N,就像以前.
GL_LINEAR_MIPMAP_LINEAR
也被称为三线性过滤.