1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
void valtorgb_opti_constant(
float fac, float edge, vec4 color1, vec4 color2, out vec4 outcol, out float outalpha)
{
outcol = (fac > edge) ? color2 : color1;
outalpha = outcol.a;
}
void valtorgb_opti_linear(
float fac, vec2 mulbias, vec4 color1, vec4 color2, out vec4 outcol, out float outalpha)
{
fac = clamp(fac * mulbias.x + mulbias.y, 0.0, 1.0);
outcol = mix(color1, color2, fac);
outalpha = outcol.a;
}
void valtorgb_opti_ease(
float fac, vec2 mulbias, vec4 color1, vec4 color2, out vec4 outcol, out float outalpha)
{
fac = clamp(fac * mulbias.x + mulbias.y, 0.0, 1.0);
fac = fac * fac * (3.0 - 2.0 * fac);
outcol = mix(color1, color2, fac);
outalpha = outcol.a;
}
void valtorgb(float fac, sampler1DArray colormap, float layer, out vec4 outcol, out float outalpha)
{
outcol = texture(colormap, vec2(fac, layer));
outalpha = outcol.a;
}
void valtorgb_nearest(
float fac, sampler1DArray colormap, float layer, out vec4 outcol, out float outalpha)
{
fac = clamp(fac, 0.0, 1.0);
outcol = texelFetch(colormap, ivec2(fac * (textureSize(colormap, 0).x - 1), layer), 0);
outalpha = outcol.a;
}
|