我是否正确地理解了textureGather和textureQueryLod?

您所在的位置:网站首页 mipmap级别是啥意思 我是否正确地理解了textureGather和textureQueryLod?

我是否正确地理解了textureGather和textureQueryLod?

2024-07-06 21:52| 来源: 网络整理| 查看: 265

在OpenGL SuperBible第7版,第11章,主题稀疏性中有一段代码:

代码语言:javascript复制uniform sampler2D uCommittedLodTexture; uniform sampler2D uSparseColorTexture; vec4 sampleFromSparse(vec2 uv){ vec4 availLod = textureGather(uCommittedLodTexture,uv); vec2 desireLod = textureQueryLod(uSparseColorTexture,uv); float maxAvailLod = max(max(availLod .x,availLod .y),max(availLod .z,availLod .w)); float finalLod = max(desireLod.x,max(desireLod.y,maxAvailLod)); return textureLod(uSparseColorTexture,uv,lod);// here I think it should be finalLod not lod }

我真搞不懂它是怎么工作的。

textureGather是一个函数,它可以返回用于进行双线性插值的四个纹理。第三个参数默认值为零,这是所选四个纹理的x分量。

但是textureQueryLod的功能是什么呢?规范解释说:

将被访问的mipmap数组在返回值的x组件中返回。相对于基级别计算的细节级别在返回值的y分量中返回。

这是否意味着结果的x值是在uv点使用的mipmap级别?Y分量怎么样?这是与mipmap基本水平的偏移量吗?

textureLod返回指定的mipmap级别的texel。

我不知道我是否正确地理解了这些函数,这段代码令人困惑。有人能解释一下吗?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3