Revision 81a0b906
Added by Leszek Koltunski about 7 years ago
src/main/res/raw/main_fragment_shader.glsl | ||
---|---|---|
37 | 37 |
////////////////////////////////////////////////////////////////////////////////////////////// |
38 | 38 |
// CHROMA EFFECT |
39 | 39 |
|
40 |
#if defined(CHROMA) || defined(SMOOTH_CHROMA) |
|
40 | 41 |
void chroma(float degree, int effect, inout vec4 color) |
41 | 42 |
{ |
42 | 43 |
color.rgb = mix(color.rgb, fUniforms[effect].yzw, degree*fUniforms[effect].x); |
43 | 44 |
} |
45 |
#endif |
|
44 | 46 |
|
45 | 47 |
////////////////////////////////////////////////////////////////////////////////////////////// |
46 | 48 |
// ALPHA EFFECT (change transparency level) |
47 | 49 |
|
50 |
#if defined(ALPHA) || defined(SMOOTH_ALPHA) |
|
48 | 51 |
void alpha(float degree, int effect, inout vec4 color) |
49 | 52 |
{ |
50 | 53 |
color.a *= (degree*(fUniforms[effect].x-1.0)+1.0); |
51 | 54 |
} |
55 |
#endif |
|
52 | 56 |
|
53 | 57 |
////////////////////////////////////////////////////////////////////////////////////////////// |
54 | 58 |
// BRIGHTNESS EFFECT |
55 | 59 |
|
60 |
#if defined(BRIGHTNESS) || defined(SMOOTH_BRIGHTNESS) |
|
56 | 61 |
void brightness(float degree, int effect, inout vec4 color) |
57 | 62 |
{ |
58 | 63 |
color.rgb = mix(vec3(0.0,0.0,0.0), color.rgb, degree*(fUniforms[effect].x-1.0)+1.0 ); |
59 | 64 |
} |
60 |
|
|
65 |
#endif |
|
66 |
|
|
61 | 67 |
////////////////////////////////////////////////////////////////////////////////////////////// |
62 | 68 |
// CONTRAST EFFECT |
63 | 69 |
|
70 |
#if defined(CONTRAST) || defined(SMOOTH_CONTRAST) |
|
64 | 71 |
void contrast(float degree, int effect, inout vec4 color) |
65 | 72 |
{ |
66 | 73 |
color.rgb = mix(vec3(0.5,0.5,0.5), color.rgb, degree*(fUniforms[effect].x-1.0)+1.0 ); |
67 | 74 |
} |
75 |
#endif |
|
68 | 76 |
|
69 | 77 |
////////////////////////////////////////////////////////////////////////////////////////////// |
70 | 78 |
// SATURATION EFFECT |
71 | 79 |
|
80 |
#if defined(SATURATION) || defined(SMOOTH_SATURATION) |
|
72 | 81 |
void saturation(float degree, int effect, inout vec4 color) |
73 | 82 |
{ |
74 | 83 |
float luminance = dot(LUMI,color.rgb); |
75 | 84 |
color.rgb = mix(vec3(luminance,luminance,luminance), color.rgb, degree*(fUniforms[effect].x-1.0)+1.0 ); |
76 | 85 |
} |
86 |
#endif |
|
77 | 87 |
|
78 | 88 |
#endif |
79 | 89 |
|
... | ... | |
92 | 102 |
diff = (v_Position.xy - fUniforms[2*i+1].xy)/fUniforms[2*i+1].zw; |
93 | 103 |
pointDegree = max(0.0,1.0-dot(diff,diff)); |
94 | 104 |
|
95 |
if( fType[i]==CHROMA ) chroma (sign(pointDegree),2*i,pixel); |
|
96 |
else if( fType[i]==SMOOTH_CHROMA ) chroma ( pointDegree ,2*i,pixel); |
|
97 |
else if( fType[i]==ALPHA ) alpha (sign(pointDegree),2*i,pixel); |
|
98 |
else if( fType[i]==SMOOTH_ALPHA ) alpha ( pointDegree ,2*i,pixel); |
|
99 |
else if( fType[i]==BRIGHTNESS ) brightness(sign(pointDegree),2*i,pixel); |
|
100 |
else if( fType[i]==SMOOTH_BRIGHTNESS ) brightness( pointDegree ,2*i,pixel); |
|
101 |
else if( fType[i]==CONTRAST ) contrast (sign(pointDegree),2*i,pixel); |
|
102 |
else if( fType[i]==SMOOTH_CONTRAST ) contrast ( pointDegree ,2*i,pixel); |
|
103 |
else if( fType[i]==SATURATION ) saturation(sign(pointDegree),2*i,pixel); |
|
104 |
else if( fType[i]==SMOOTH_SATURATION ) saturation( pointDegree ,2*i,pixel); |
|
105 |
#ifdef CHROMA |
|
106 |
if( fType[i]==CHROMA ) chroma (sign(pointDegree),2*i,pixel); else |
|
107 |
#endif |
|
108 |
#ifdef SMOOTH_CHROMA |
|
109 |
if( fType[i]==SMOOTH_CHROMA ) chroma ( pointDegree ,2*i,pixel); else |
|
110 |
#endif |
|
111 |
#ifdef ALPHA |
|
112 |
if( fType[i]==ALPHA ) alpha (sign(pointDegree),2*i,pixel); else |
|
113 |
#endif |
|
114 |
#ifdef SMOOTH_ALPHA |
|
115 |
if( fType[i]==SMOOTH_ALPHA ) alpha ( pointDegree ,2*i,pixel); else |
|
116 |
#endif |
|
117 |
#ifdef BRIGHTNESS |
|
118 |
if( fType[i]==BRIGHTNESS ) brightness(sign(pointDegree),2*i,pixel); else |
|
119 |
#endif |
|
120 |
#ifdef SMOOTH_BRIGHTNESS |
|
121 |
if( fType[i]==SMOOTH_BRIGHTNESS ) brightness( pointDegree ,2*i,pixel); else |
|
122 |
#endif |
|
123 |
#ifdef CONTRAST |
|
124 |
if( fType[i]==CONTRAST ) contrast (sign(pointDegree),2*i,pixel); else |
|
125 |
#endif |
|
126 |
#ifdef SMOOTH_CONTRAST |
|
127 |
if( fType[i]==SMOOTH_CONTRAST ) contrast ( pointDegree ,2*i,pixel); else |
|
128 |
#endif |
|
129 |
#ifdef SATURATION |
|
130 |
if( fType[i]==SATURATION ) saturation(sign(pointDegree),2*i,pixel); else |
|
131 |
#endif |
|
132 |
#ifdef SMOOTH_SATURATION |
|
133 |
if( fType[i]==SMOOTH_SATURATION ) saturation( pointDegree ,2*i,pixel); else |
|
134 |
#endif |
|
135 |
{} |
|
105 | 136 |
} |
106 | 137 |
#endif |
107 | 138 |
|
Also available in: Unified diff
Preparation for shader optimization