shader_type canvas_item; // Colore della tua nebbia (scegli un colore che stia bene col tuo Skybox) uniform vec4 fog_color : source_color = vec4(0.85, 0.9, 0.95, 1.0); // Quanto è grande lo spazio pulito al centro per il treno uniform float clear_center_radius : hint_range(0.0, 1.0) = 0.4; // Quanto è morbida la sfumatura della nebbia verso i bordi uniform float edge_softness : hint_range(0.01, 1.0) = 0.5; // Opacità massima ai bordi estremi dello schermo uniform float max_opacity : hint_range(0.0, 1.0) = 0.8; void fragment() { // Calcola la distanza del pixel dal centro dello schermo (0.5, 0.5) float dist_from_center = distance(SCREEN_UV, vec2(0.5)); // Crea una maschera morbida circolare // Al centro (distanza < clear_center) sarà 0.0 (trasparente) // Verso i bordi salirà dolcemente fino a 1.0 (opaco) float fog_amount = smoothstep(clear_center_radius, clear_center_radius + edge_softness, dist_from_center); // Moltiplica per l'opacità massima desiderata fog_amount *= max_opacity; // Applica il colore della nebbia solo dove serve COLOR = vec4(fog_color.rgb, fog_color.a * fog_amount); }