
void main()
{
	vec3 color = evalFluidTex(texture2D(texFluid, varyTexCoord));
	
	//float maxComp = max(color.r, max(color.g, color.b));
	//float colorIntens = clamp( (maxComp - 1.0), 0.0, 0.0);
	
	// Lighting test
	//float aggrColor = color.r + color.g + color.b;
	//vec2 grad = normalize(vec2(dFdx(aggrColor), dFdy(aggrColor)));
	//vec2 dirLight = vec2(1.0, 0.0);
	//float light = dot(grad, dirLight);
	
	/*float texelSize = 1.0 / 1024.0;
	vec3 L = texture2D(texFluid, varyTexCoord + vec2(-texelSize, 0.0)).rgb;
        vec3 R = texture2D(texFluid, varyTexCoord + vec2(texelSize, 0.0)).rgb;
        vec3 T = texture2D(texFluid, varyTexCoord + vec2(0.0, -texelSize)).rgb;
        vec3 B = texture2D(texFluid, varyTexCoord + vec2(0.0, texelSize)).rgb;
        vec3 dx = (clamp(R, 0.0, 1.0)) - (clamp(L, 0.0, 1.0));
        vec3 dy = (clamp(T, 0.0, 1.0)) - (clamp(B, 0.0, 1.0));
	vec3 n = normalize(vec3(length(dx), length(dy), 0.01));
	vec3 l = vec3(0.0, 0.0, 1.0);
    float diffuse = clamp(1.0 - dot(n, l) + 0.0, 0.0, 1.0);
	*/
	
	
	color = applyDetail(color);
	
	float maxComp = max(color.r, max(color.g, color.b));
	vec3 clampedColor = color / max(maxComp, 1.0);
	color = mix(color, clampedColor, uClampColors);
	
	color = applyColorMode(color);
	color = applyGlow(color);
	color = applyInvert(color);
	//color = applyPaintHsl(color);
	
	// Lighting test
	//light = light * 0.5 + 0.5;
	//color = color * (light * 0.5 + 0.5);
	//color *= diffuse;
	
	//color = store(color, 0.0); // dummy func, previously had a different version that stored the color scaled by intensity to fit more dynamic range as input to glow, but this wasn't very useful
	
	
	
	gl_FragColor = store(color);
	//gl_FragColor = vec4(color, 1.0);
}
