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。过滤范围缩小后文字会更清楚,偏移仍然存在。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数