author | František Kučera <franta-hg@frantovo.cz> |
Tue, 05 Dec 2023 22:55:25 +0100 | |
branch | v_0 |
changeset 20 | 0899e966993e |
parent 18 | c4384f43c739 |
child 21 | bcc53967ab3c |
permissions | -rw-r--r-- |
0 | 1 |
#version 330 core |
2 |
||
2
3faef2f5128e
better GLSL variable names
František Kučera <franta-hg@frantovo.cz>
parents:
0
diff
changeset
|
3 |
uniform sampler2D uTexture; |
3faef2f5128e
better GLSL variable names
František Kučera <franta-hg@frantovo.cz>
parents:
0
diff
changeset
|
4 |
in vec2 vTextureXY; |
14
ceeb36fad818
transparency/alpha: simple binary transparent/opaque, no blending, just discard some fragments
František Kučera <franta-hg@frantovo.cz>
parents:
11
diff
changeset
|
5 |
out vec4 fColor; |
0 | 6 |
|
14
ceeb36fad818
transparency/alpha: simple binary transparent/opaque, no blending, just discard some fragments
František Kučera <franta-hg@frantovo.cz>
parents:
11
diff
changeset
|
7 |
vec4 grayscale(vec4 original) { |
4
9aba96f0b001
fragment shader: add grayscale() function
František Kučera <franta-hg@frantovo.cz>
parents:
2
diff
changeset
|
8 |
const vec3 luminanceWeighting = vec3(0.2125, 0.7154, 0.0721); |
14
ceeb36fad818
transparency/alpha: simple binary transparent/opaque, no blending, just discard some fragments
František Kučera <franta-hg@frantovo.cz>
parents:
11
diff
changeset
|
9 |
float luminance = dot(original.rgb, luminanceWeighting); |
ceeb36fad818
transparency/alpha: simple binary transparent/opaque, no blending, just discard some fragments
František Kučera <franta-hg@frantovo.cz>
parents:
11
diff
changeset
|
10 |
return vec4(vec3(luminance), original.a); |
4
9aba96f0b001
fragment shader: add grayscale() function
František Kučera <franta-hg@frantovo.cz>
parents:
2
diff
changeset
|
11 |
} |
9aba96f0b001
fragment shader: add grayscale() function
František Kučera <franta-hg@frantovo.cz>
parents:
2
diff
changeset
|
12 |
|
18
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
13 |
vec4 invert(vec4 original) { |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
14 |
original = clamp(original, 0.0, 1.0); |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
15 |
return vec4(vec3(1.) - original.rgb, original.a); |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
16 |
} |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
17 |
|
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
18 |
float rand(vec2 co) { |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
19 |
return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453); |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
20 |
} |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
21 |
|
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
22 |
void main() { |
14
ceeb36fad818
transparency/alpha: simple binary transparent/opaque, no blending, just discard some fragments
František Kučera <franta-hg@frantovo.cz>
parents:
11
diff
changeset
|
23 |
fColor = texture(uTexture, vTextureXY).rgba; |
18
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
24 |
|
4
9aba96f0b001
fragment shader: add grayscale() function
František Kučera <franta-hg@frantovo.cz>
parents:
2
diff
changeset
|
25 |
// fColor = grayscale(fColor); |
18
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
26 |
// fColor = invert(fColor); |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
27 |
fColor = (fColor-rand(vTextureXY)*0.3) * 1.6; |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
28 |
|
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
29 |
float lineCount = 200.; |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
30 |
fColor.xyz *= abs(sin(radians(vTextureXY.y * 180. * lineCount))); |
14
ceeb36fad818
transparency/alpha: simple binary transparent/opaque, no blending, just discard some fragments
František Kučera <franta-hg@frantovo.cz>
parents:
11
diff
changeset
|
31 |
|
18
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
32 |
// float columnCount = 320; |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
33 |
// fColor.xyz *= |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
34 |
// clamp(abs(sin(radians(vTextureXY.x * 180. * columnCount)))+0.6, 0., 1.); |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
35 |
|
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
36 |
// fColor = grayscale(fColor) * vec4(1.00, 0.80, 0.10, 1.00); // amber |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
37 |
fColor = grayscale(fColor) * vec4(0.30, 0.80, 0.20, 1.00); // green |
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
38 |
|
c4384f43c739
new shader: phosphor-basic.frag
František Kučera <franta-hg@frantovo.cz>
parents:
15
diff
changeset
|
39 |
// let us move decades ago, when screens were greener and future brighter |
0 | 40 |
} |