GLSL 内置函数
texelFetchOffset()
在整数纹素坐标上增加编译期固定偏移。
示例版本:GLSL ES 3.00 / WebGL 2示例阶段:片段
函数签名
gvec4 texelFetchOffset(gsampler2D sampler, ivec2 coord, int lod, ivec2 offset)参数
- sampler
- 绑定的测试纹理
- coord
- 采样坐标
- lod
- mip 层级,零为原始尺寸
- offset
- 编译期常量纹素偏移
返回值
所选 mip 层中 coord + offset 位置纹素的四个分量,不做插值。
在线示例
修改右侧代码,左侧预览会实时更新。
texelFetchOffset 做什么
在整数纹素坐标上增加编译期固定偏移。
看懂预览
基础地址 ivec2(uv*251.0)+ivec2(2) 为常量偏移 ivec2(1,0) 留出边界余量。把偏移改为 ivec2(-1,0),实际读取位置会左移两个纹素,仍不越界。
核心调用
texelFetchOffset(u_texture,ivec2(uv*251.0)+ivec2(2),0,ivec2(1,0)).rgb;
offset 必须是常量表达式,且大小受实现限制。
修改实验
把最后的偏移参数改为 ivec2(0,1)。读取位置会从基础地址右邻格换到上邻格,屏幕上网格的对齐位置随之移动。