开发视频投影的过程中,有需求要调整画面的饱和度、灰度、亮度。
记录一下关键代码和效果。
关键代码
1 2 3 4 5 6 7 8 9 10 11 12 13
| vec4 colorCorrection(vec4 originalColor, float saturation, float brightness, float contrast){ float gray = 0.2125 * originalColor.r + 0.7154 * originalColor.g + 0.0721 * originalColor.b; vec3 grayColor = vec3(gray, gray, gray); vec3 finalColor = mix(grayColor, originalColor.rgb, saturation);
finalColor = finalColor * brightness;
float avgValue = 0.5 * brightness; vec3 avgColor = vec3(avgValue, avgValue, avgValue); finalColor = mix(avgColor, finalColor, contrast);
return vec4(finalColor, originalColor.a); }
|
效果