GLSL 内置函数

textureProjGrad()

在投影纹理中显式指定采样梯度。

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

函数签名

gvec4 textureProjGrad(gsampler2D sampler, vec3 coord, vec2 dx, vec2 dy)

参数

sampler
绑定的测试纹理
coord
采样坐标
dx
屏幕 X 方向的坐标梯度
dy
屏幕 Y 方向的坐标梯度

返回值

坐标经过投影除法后,使用显式梯度过滤得到的四个采样分量。

在线示例

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

textureProjGrad 做什么

在投影纹理中显式指定采样梯度。

看懂预览

vec3(uv,0.8) 扩张图像坐标,.03 梯度独立控制模糊。把除数改成 1.0,可去掉投影缩放,同时保留原有模糊。

核心调用

textureProjGrad(u_texture,vec3(uv,0.8),vec2(.03,0),vec2(0,.03)).rgb;

导数参数的维数对应投影后的纹理坐标。

修改实验

把 textureProjGrad 中两处 .03 梯度改为 .003。投影网格会变清晰,0.8 的除法和边界延伸位置都不变。

规范

GLSL ES 3.00 built-in functions, chapter 8

相关函数