shader_type fog; uniform float density : hint_range(0, 1, 0.0001) = 1.0; uniform vec4 albedo : source_color = vec4(1.0); uniform vec4 emission : source_color = vec4(0, 0, 0, 1); uniform float height_falloff = 0.0; uniform float edge_fade = 0.1; uniform sampler3D density_texture: hint_default_white; void fog() { float x = mod(UVW.r - TIME*0.1,1.0); vec3 uvw = vec3(x, UVW.g,UVW.b); DENSITY = density * clamp(exp2(-height_falloff * (WORLD_POSITION.y - OBJECT_POSITION.y)), 0.0, 1.0); DENSITY *= texture(density_texture, uvw).r; DENSITY *= pow(clamp(-2.0 * SDF / min(min(SIZE.x, SIZE.y), SIZE.z), 0.0, 1.0), edge_fade); ALBEDO = albedo.rgb; EMISSION = emission.rgb; }