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)。细微偏移会由横向转为纵向,原始分辨率的细节仍然保留。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数