GLSL 内置函数

textureProjGradOffset()

组合投影、梯度过滤和固定偏移。

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

函数签名

gvec4 textureProjGradOffset(gsampler2D sampler, vec3 coord, vec2 dx, vec2 dy, ivec2 offset)

参数

sampler
绑定的测试纹理
coord
采样坐标
dx
屏幕 X 方向的坐标梯度
dy
屏幕 Y 方向的坐标梯度
offset
编译期常量纹素偏移

返回值

坐标经过投影除法并加入常量纹素偏移后,按显式梯度过滤得到的四个分量。

在线示例

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

textureProjGradOffset 做什么

组合投影、梯度过滤和固定偏移。

看懂预览

投影除数 0.8 和偏移 ivec2(1,0) 都会改变这张模糊网格的读取位置。把偏移设为 ivec2(0,0),可单独查看投影采样。

核心调用

textureProjGradOffset(u_texture,vec3(uv,0.8),vec2(.03,0),vec2(0,.03),ivec2(1,0)).rgb;

不要把投影 q 的分量也传入二维梯度参数。

修改实验

保留偏移与除数,把两个梯度的 .03 改为 .003。图像会增加细节,而投影参数和常量偏移参数仍保持原值。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数