61 lines
1.2 KiB
Plaintext
61 lines
1.2 KiB
Plaintext
shader_type canvas_item;
|
|
render_mode unshaded;
|
|
|
|
uniform vec4 original_0: source_color;
|
|
uniform vec4 original_1: source_color;
|
|
uniform vec4 original_2: source_color;
|
|
uniform vec4 original_3: source_color;
|
|
uniform vec4 original_4: source_color;
|
|
uniform vec4 original_5: source_color;
|
|
uniform vec4 original_6: source_color;
|
|
uniform vec4 replace_0: source_color;
|
|
uniform vec4 replace_1: source_color;
|
|
uniform vec4 replace_2: source_color;
|
|
uniform vec4 replace_3: source_color;
|
|
uniform vec4 replace_4: source_color;
|
|
uniform vec4 replace_5: source_color;
|
|
uniform vec4 replace_6: source_color;
|
|
|
|
uniform vec4 tint: source_color = vec4(1.0);
|
|
|
|
const float precision = 0.1;
|
|
const int Colz = 7;
|
|
|
|
vec4 swap_color(vec4 color){
|
|
vec4 original_colors[Colz] = vec4[Colz] (original_0, original_1, original_2, original_3, original_4, original_5, original_6);
|
|
vec4 replace_colors[Colz] = vec4[Colz] (replace_0, replace_1, replace_2, replace_3, replace_4, replace_5, replace_6);
|
|
for (int i = 0; i < Colz; i ++) {
|
|
if (distance(color, original_colors[i]) <= precision){
|
|
return replace_colors[i];
|
|
}
|
|
}
|
|
return color;
|
|
}
|
|
|
|
|
|
void fragment() {
|
|
vec4 col = swap_color(texture(TEXTURE, UV));
|
|
//#COLOR = mix(col, tint, 1.0);
|
|
COLOR = col * tint;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|