第 42 课:dFdx/dFdy
我的解:dFdx/dFdy本质上是显卡线程之间的通讯。检查隔壁线程在这个值上的区别
我的解
uniform vec2 iResolution;
uniform sampler2D iChannel0;
void main() {
vec2 uv = gl_FragCoord.xy / iResolution.xy;
vec4 picture = texture(iChannel0, uv);
float ddxValue = dFdx(gl_FragCoord.x);
float luminance = dot(picture.rgb, vec3(0.2126, 0.7152, 0.0722));
float dx = dFdx(luminance);
float dy = dFdy(luminance);
float t = abs(dx) + abs(dy);
picture = mix(picture, vec4(1.0, 0.0, 0.0, 1.0), t > 0.0 ? 1.0 : 0.0);
gl_FragColor = picture;
}
复盘笔记
- dFdx/dFdy本质上是显卡线程之间的通讯。检查隔壁线程在这个值上的区别
- dFdx(luminance), dFdy(luminance)
- t = abs(dx) + abs(dy)
- 斜率