GLSL 内置函数
textureGradOffset()
在显式梯度过滤时加入固定纹素偏移。
示例版本:GLSL ES 3.00 / WebGL 2示例阶段:片段
函数签名
gvec4 textureGradOffset(gsampler2D sampler, vec2 coord, vec2 dx, vec2 dy, ivec2 offset)参数
- sampler
- 绑定的测试纹理
- coord
- 采样坐标
- dx
- 屏幕 X 方向的坐标梯度
- dy
- 屏幕 Y 方向的坐标梯度
- offset
- 编译期常量纹素偏移
返回值
由显式梯度控制过滤,并在 coord 上叠加常量整数纹素偏移后得到的四个分量。
在线示例
修改右侧代码,左侧预览会实时更新。
textureGradOffset 做什么
在显式梯度过滤时加入固定纹素偏移。
看懂预览
.03 梯度使网格模糊,ivec2(2,0) 则增加横向纹素偏移。把偏移改成 ivec2(0,0),位移会消失,模糊程度保持不变。
核心调用
textureGradOffset(u_texture,uv,vec2(.03,0),vec2(0,.03),ivec2(2,0)).rgb;
固定 offset 在采样时生效,不应先把它当 UV 相加。
修改实验
保留 ivec2(2,0),把两个梯度幅度从 .03 改为 .003。过滤范围缩小后文字会更清楚,偏移仍然存在。