GLSL 内置函数
textureLodOffset()
在指定 mip 层级加入固定纹素偏移。
示例版本:GLSL ES 3.00 / WebGL 2示例阶段:片段
函数签名
gvec4 textureLodOffset(gsampler2D sampler, vec2 coord, float lod, ivec2 offset)参数
- sampler
- 绑定的测试纹理
- coord
- 采样坐标
- lod
- mip 层级,零为原始尺寸
- offset
- 编译期常量纹素偏移
返回值
显式 mip 层级处过滤后的四个分量,coord 按该层纹素单位的常量偏移移动。
在线示例
修改右侧代码,左侧预览会实时更新。
textureLodOffset 做什么
在指定 mip 层级加入固定纹素偏移。
看懂预览
ivec2(2,0) 按所选 mip 的纹素单位偏移。把 u_parameter*6.0 依次改成 0.0 和 6.0,同样两个纹素的偏移在粗层级中会占据更大图像比例。
核心调用
textureLodOffset(u_texture,uv,u_parameter*6.0,ivec2(2,0)).rgb;
同一个纹素偏移在不同 mip 层级对应不同的原图距离。
修改实验
将层级固定为 0.0,把 ivec2(2,0) 换成 ivec2(0,2)。细微偏移会由横向转为纵向,原始分辨率的细节仍然保留。