1/*
2 Copyright (c) 2015 yvt
3
4 This file is part of OpenSpades.
5
6 OpenSpades is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 OpenSpades is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OpenSpades.  If not, see <http://www.gnu.org/licenses/>.
18
19 */
20
21
22uniform sampler2D mainTexture;
23
24varying vec2 texCoord;
25
26void main() {
27	// linear RGB
28	vec3 color = texture2D(mainTexture, texCoord).xyz;
29
30	// desaturate
31	float brightness = max(max(color.x, color.y), color.z);
32
33	// remove NaN and Infinity
34	if (!(brightness >= 0. && brightness <= 16.)) {
35		brightness = 0.05;
36	}
37
38	// lower bound
39	brightness = max(0.05, brightness);
40
41	// uppr bound
42	brightness = min(1.3, brightness);
43
44	// raise to the n-th power to reduce overbright
45	brightness *= brightness;
46	brightness *= brightness;
47
48	gl_FragColor = vec4(brightness, brightness, brightness, 1.);
49}
50
51