GLSL 内置函数

textureOffset()

用固定纹素偏移进行过滤采样。

示例版本:GLSL ES 3.00 / WebGL 2示例阶段:片段

函数签名

gvec4 textureOffset(gsampler2D sampler, vec2 coord, ivec2 offset)

参数

sampler
绑定的测试纹理
coord
采样坐标
offset
编译期常量纹素偏移

返回值

在 coord 上加入常量纹素偏移后得到的四个过滤分量,mip 覆盖范围由隐式规则选择。

在线示例

修改右侧代码,左侧预览会实时更新。

textureOffset 做什么

用固定纹素偏移进行过滤采样。

看懂预览

textureOffset(u_texture,uv,ivec2(3,0)) 把网格的采样位置横移所采样层级的三个纹素。改用 ivec2(0,0),即可显示未偏移的对照图。

核心调用

textureOffset(u_texture,uv,ivec2(3,0)).rgb;

offset 的单位是纹素,不是 UV;不能用 uniform 作为 offset。

修改实验

把最后一个参数改成 ivec2(-3,0)。文字会向相反的屏幕方向移动;这里改变的是读取位置,并未旋转图片或修改颜色。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数