fix fog and weather controller
This commit is contained in:
@@ -1,29 +1,15 @@
|
||||
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);
|
||||
}
|
||||
Reference in New Issue
Block a user