第 9 课:Color Direction
实现:它这里问的是,颜色从灰到饱和,插值,所以mix的顺序要调换一下
实现
uniform vec2 iResolution;
uniform sampler2D iChannel0;
const vec3 refColor = vec3(1.0, 0.0, 0.0);
void main() {
vec2 uv = gl_FragCoord.xy / iResolution.xy;
vec3 texColor = texture(iChannel0, uv).rgb;
float deviation = dot(normalize(refColor),normalize(texColor));
float luminance = dot(texColor, vec3(0.2126, 0.7152, 0.0722));
vec3 result = mix(vec3(luminance),texColor, deviation*2.0);
gl_FragColor = vec4(result, 1.0);
}
复盘笔记
- 它这里问的是,颜色从灰到饱和,插值,所以mix的顺序要调换一下
- 和上一集的distance不一样,用的是颜色的相关性,用的dot
- 色相相近,即使亮度不同,也认为是相关色