我是否正确地理解了textureGather和textureQueryLod? |
您所在的位置:网站首页 › mipmap级别是啥意思 › 我是否正确地理解了textureGather和textureQueryLod? |
在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 |