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; }