GLSL 内置函数
dFdy()
估计屏幕纵向相邻片元间的变化率。
示例版本:GLSL ES 1.00 / WebGL 1示例阶段:片段
函数签名
genType dFdy(genType p)genType 表示 float / vec2 / vec3 / vec4;同名占位符须使用相同类型。
参数
- p
- 打包后的无符号整数
返回值
与 p 类型相同的值,逐分量近似表示 p 沿屏幕 y 方向的变化率。
在线示例
修改右侧代码,左侧预览会实时更新。
dFdy 做什么
估计屏幕纵向相邻片元间的变化率。
看懂预览
sin(y*24.0) 的导数随行变化,背景因此呈横向色带。把两处 24.0 都改成 8.0,色带会变宽,归一化方式保持一致。
核心调用
abs(dFdy(sin(y*24.0)))*u_resolution.y/24.0;
这里是屏幕 Y 方向,不是任意模型的世界 Y 方向。
修改实验
把 dFdy 的输入从 sin(y*24.0) 改成 sin(x*24.0)。相邻行此时获得相同输入,除绘出的零值线外,背景将趋于一致。