29 lines
1013 B
Plaintext
29 lines
1013 B
Plaintext
shader_type canvas_item;
|
|
render_mode blend_mul;
|
|
|
|
// Colori esposti nell'Inspector
|
|
uniform vec4 color_mattina : source_color = vec4(1.0, 0.9, 0.8, 1.0);
|
|
uniform vec4 color_pomeriggio : source_color = vec4(1.0, 0.6, 0.2, 1.0);
|
|
uniform vec4 color_notte : source_color = vec4(0.1, 0.1, 0.3, 1.0);
|
|
|
|
// Parametro fluido: 1.0 = Mattina, 2.0 = Pomeriggio, 3.0 = Notte
|
|
uniform float tempo_giorno : hint_range(1.0, 3.0) = 1.0;
|
|
|
|
void fragment() {
|
|
vec4 tex_color = texture(TEXTURE, UV);
|
|
vec4 final_tint;
|
|
|
|
if (tempo_giorno <= 2.0) {
|
|
// Transizione tra Mattina (1.0) e Pomeriggio (2.0)
|
|
// mix(A, B, t) dove t va da 0 a 1
|
|
float t = tempo_giorno - 1.0;
|
|
final_tint = mix(color_mattina, color_pomeriggio, t);
|
|
} else {
|
|
// Transizione tra Pomeriggio (2.0) e Notte (3.0)
|
|
float t = tempo_giorno - 2.0;
|
|
final_tint = mix(color_pomeriggio, color_notte, t);
|
|
}
|
|
|
|
// Applica il colore finale con blend_mul (moltiplicazione)
|
|
COLOR = tex_color * final_tint;
|
|
} |