#pragma once\r
\r
+static std::string get_adjustement_glsl()\r
+{\r
+ return \r
+ "\n /* "\r
+ "\n ** Contrast, saturation, brightness "\r
+ "\n ** Code of this function is from TGM's shader pack "\r
+ "\n ** http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=21057 "\r
+ "\n */ "\r
+ "\n "\r
+ "\n vec3 ContrastSaturationBrightness(vec3 color, float brt, float sat, float con) "\r
+ "\n { "\r
+ "\n const float AvgLumR = 0.5; "\r
+ "\n const float AvgLumG = 0.5; "\r
+ "\n const float AvgLumB = 0.5; "\r
+ "\n "\r
+ "\n const vec3 LumCoeff = vec3(0.2125, 0.7154, 0.0721); "\r
+ "\n "\r
+ "\n vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB); "\r
+ "\n vec3 brtColor = color * brt; "\r
+ "\n vec3 intensity = vec3(dot(brtColor, LumCoeff)); "\r
+ "\n vec3 satColor = mix(intensity, brtColor, sat); "\r
+ "\n vec3 conColor = mix(AvgLumin, satColor, con); "\r
+ "\n return conColor; "\r
+ "\n } "\r
+ "\n "\r
+ "\n /* "\r
+ "\n ** Gamma correction "\r
+ "\n ** Details: http://blog.mouaif.org/2009/01/22/photoshop-gamma-correction-shader/ "\r
+ "\n */ "\r
+ "\n "\r
+ "\n#define GammaCorrection(color, gamma) pow(color, vec3(1.0 / gamma)) \n "\r
+ "\n "\r
+ "\n /* "\r
+ "\n ** Levels control (input (+gamma), output) "\r
+ "\n ** Details: http://blog.mouaif.org/2009/01/28/levels-control-shader/ "\r
+ "\n */ "\r
+ "\n "\r
+ "\n#define LevelsControlInputRange(color, minInput, maxInput) min(max(color - vec3(minInput), vec3(0.0)) / (vec3(maxInput) - vec3(minInput)), vec3(1.0)) \n "\r
+ "\n#define LevelsControlInput(color, minInput, gamma, maxInput) GammaCorrection(LevelsControlInputRange(color, minInput, maxInput), gamma) \n " \r
+ "\n#define LevelsControlOutputRange(color, minOutput, maxOutput) mix(vec3(minOutput), vec3(maxOutput), color) \n "\r
+ "\n#define LevelsControl(color, minInput, gamma, maxInput, minOutput, maxOutput) LevelsControlOutputRange(LevelsControlInput(color, minInput, gamma, maxInput), minOutput, maxOutput) \n "\r
+ ;\r
+}\r
+\r
static std::string get_blend_glsl()\r
{\r
static std::string glsl = \r
"\n return rgb; "\r
"\n } "\r
"\n "\r
- "\n "\r
- "\n /* "\r
- "\n ** Contrast, saturation, brightness "\r
- "\n ** Code of this function is from TGM's shader pack "\r
- "\n ** http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=21057 "\r
- "\n */ "\r
- "\n "\r
- "\n vec3 ContrastSaturationBrightness(vec3 color, float brt, float sat, float con) "\r
- "\n { "\r
- "\n const float AvgLumR = 0.5; "\r
- "\n const float AvgLumG = 0.5; "\r
- "\n const float AvgLumB = 0.5; "\r
- "\n "\r
- "\n const vec3 LumCoeff = vec3(0.2125, 0.7154, 0.0721); "\r
- "\n "\r
- "\n vec3 AvgLumin = vec3(AvgLumR, AvgLumG, AvgLumB); "\r
- "\n vec3 brtColor = color * brt; "\r
- "\n vec3 intensity = vec3(dot(brtColor, LumCoeff)); "\r
- "\n vec3 satColor = mix(intensity, brtColor, sat); "\r
- "\n vec3 conColor = mix(AvgLumin, satColor, con); "\r
- "\n return conColor; "\r
- "\n } "\r
+ "\n "\r
"\n "\r
"\n "\r
"\n /* "\r
"\n vec3 baseHSL = RGBToHSL(base); "\r
"\n return HSLToRGB(vec3(baseHSL.r, baseHSL.g, RGBToHSL(blend).b)); "\r
"\n } "\r
- "\n "\r
- "\n "\r
- "\n /* "\r
- "\n ** Gamma correction "\r
- "\n ** Details: http://blog.mouaif.org/2009/01/22/photoshop-gamma-correction-shader/ "\r
- "\n */ "\r
- "\n "\r
- "\n#define GammaCorrection(color, gamma) pow(color, vec3(1.0 / gamma)) \n "\r
- "\n "\r
- "\n /* "\r
- "\n ** Levels control (input (+gamma), output) "\r
- "\n ** Details: http://blog.mouaif.org/2009/01/28/levels-control-shader/ "\r
- "\n */ "\r
- "\n "\r
- "\n#define LevelsControlInputRange(color, minInput, maxInput) min(max(color - vec3(minInput), vec3(0.0)) / (vec3(maxInput) - vec3(minInput)), vec3(1.0)) \n "\r
- "\n#define LevelsControlInput(color, minInput, gamma, maxInput) GammaCorrection(LevelsControlInputRange(color, minInput, maxInput), gamma) \n "\r
- "\n#define LevelsControlOutputRange(color, minOutput, maxOutput) mix(vec3(minOutput), vec3(maxOutput), color) \n "\r
- "\n#define LevelsControl(color, minInput, gamma, maxInput, minOutput, maxOutput) LevelsControlOutputRange(LevelsControlInput(color, minInput, gamma, maxInput), minOutput, maxOutput) \n "\r
+ "\n "\r
;\r
\r
return glsl;\r