[gd_resource type="Environment" format=3 uid="uid://dq64sos14f8hu"] [ext_resource type="Texture2D" uid="uid://crrj260kiyoy" path="res://dynamic-sky/sky_44_2k.png" id="1_vd8dq"] [sub_resource type="Shader" id="Shader_porxs"] code = " shader_type sky; uniform sampler2D skybox_texture : source_color, filter_linear_mipmap, repeat_enable; uniform bool skybox_enabled = false; uniform float skybox_blend = 1.0; uniform vec4 sky_top_color : source_color = vec4(0.2, 0.4, 0.8, 1.0); uniform vec4 sky_horizon_color : source_color = vec4(0.6, 0.7, 0.9, 1.0); uniform vec4 sky_bottom_color : source_color = vec4(0.4, 0.5, 0.6, 1.0); uniform float gradient_intensity = 1.0; uniform float horizon_blend = 0.5; uniform bool sun_glow_enabled = true; uniform vec3 sun_direction = vec3(0.0, 1.0, 0.0); uniform vec4 sun_glow_color : source_color = vec4(1.0, 0.95, 0.8, 1.0); uniform float sun_glow_intensity = 0.5; uniform float sun_glow_size = 0.2; uniform float sun_glow_falloff = 2.0; uniform bool dawn_dusk_enabled = true; uniform vec4 dawn_dusk_color : source_color = vec4(1.0, 0.6, 0.4, 1.0); uniform float dawn_dusk_intensity = 0.5; uniform float dawn_dusk_blend = 0.0; uniform float stars_visibility = 0.0; uniform vec4 stars_tint : source_color = vec4(1.0); float hash(vec2 p) { return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); } float stars(vec3 dir) { vec2 uv = dir.xz / (abs(dir.y) + 0.001) * 50.0; vec2 cell = floor(uv); vec2 local = fract(uv) - 0.5; float star = 0.0; float h = hash(cell); if (h > 0.97) { float dist = length(local); star = smoothstep(0.1, 0.0, dist) * (h - 0.97) / 0.03; star *= step(0.0, dir.y); } return star; } vec2 pano_uv(vec3 dir) { dir = normalize(dir); float u = atan(dir.x, dir.z) / (2.0 * PI) + 0.5; float v = acos(clamp(dir.y, -1.0, 1.0)) / PI; return vec2(u, v); } void sky() { vec3 dir = EYEDIR; float y = dir.y; vec3 color; if (y > 0.0) { float t = pow(y, horizon_blend); color = mix(sky_horizon_color.rgb, sky_top_color.rgb, t); } else { float t = pow(-y, horizon_blend); color = mix(sky_horizon_color.rgb, sky_bottom_color.rgb, t); } color = mix(vec3(0.5), color, gradient_intensity); if (skybox_enabled) { vec3 pano_color = texture(skybox_texture, pano_uv(dir)).rgb; color = mix(color, pano_color, skybox_blend); } if (sun_glow_enabled && sun_direction.y > -0.2) { float sun_dot = max(0.0, dot(dir, normalize(sun_direction))); float glow = pow(sun_dot, 1.0 / max(0.001, sun_glow_size)); glow = pow(glow, sun_glow_falloff); color += sun_glow_color.rgb * glow * sun_glow_intensity; } if (dawn_dusk_enabled && dawn_dusk_blend > 0.0) { float horizon_factor = 1.0 - abs(y); horizon_factor = pow(horizon_factor, 2.0); color = mix(color, dawn_dusk_color.rgb, horizon_factor * dawn_dusk_intensity * dawn_dusk_blend); } if (stars_visibility > 0.0 && y > 0.0) { float star_value = stars(dir) * stars_visibility; color += stars_tint.rgb * star_value; } COLOR = color; } " [sub_resource type="ShaderMaterial" id="ShaderMaterial_jmmec"] shader = SubResource("Shader_porxs") shader_parameter/skybox_texture = ExtResource("1_vd8dq") shader_parameter/skybox_enabled = true shader_parameter/skybox_blend = 1.0 shader_parameter/sky_top_color = Color(0.2, 0.4, 0.85, 1) shader_parameter/sky_horizon_color = Color(0.6, 0.75, 0.95, 1) shader_parameter/sky_bottom_color = Color(0.5, 0.6, 0.7, 1) shader_parameter/gradient_intensity = 1.0 shader_parameter/horizon_blend = 0.5 shader_parameter/sun_glow_enabled = true shader_parameter/sun_direction = Vector3(-0.46286085, -0.82338524, -0.32832408) shader_parameter/sun_glow_color = Color(1, 0.95, 0.85, 1) shader_parameter/sun_glow_intensity = 0.3 shader_parameter/sun_glow_size = 0.2 shader_parameter/sun_glow_falloff = 2.0 shader_parameter/dawn_dusk_enabled = true shader_parameter/dawn_dusk_color = Color(1, 0.6, 0.4, 1) shader_parameter/dawn_dusk_intensity = 0.5 shader_parameter/dawn_dusk_blend = 0.0 shader_parameter/stars_visibility = 0.0 shader_parameter/stars_tint = Color(1, 1, 1, 1) [sub_resource type="Sky" id="Sky_ssi15"] sky_material = SubResource("ShaderMaterial_jmmec") [resource] background_mode = 2 sky = SubResource("Sky_ssi15") ambient_light_color = Color(0.23323175, 0.23041001, 0.30062926, 1) ambient_light_energy = 0.078244984 fog_enabled = true fog_light_color = Color(0.26191625, 0.21975225, 0.23041001, 1) fog_density = 0.018752154 fog_height_density = 0.1