Post Game jam commit
This commit is contained in:
commit
6db2131520
164 changed files with 172524 additions and 0 deletions
33
shaders/fog.gdshader
Normal file
33
shaders/fog.gdshader
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
shader_type canvas_item;
|
||||
|
||||
uniform vec2 center = vec2(0.5, 0.5);
|
||||
uniform float radius : hint_range(0.0, 1.0) = 0.3;
|
||||
uniform float softness : hint_range(0.0, 1.0) = 0.1;
|
||||
|
||||
// Use 'repeat_enable' to ensure the noise tiles seamlessly
|
||||
uniform sampler2D noise_texture : repeat_enable, filter_nearest;
|
||||
uniform float noise_strength : hint_range(0.0, 1.0) = 0.1;
|
||||
uniform float noise_scale = 4.0; // New: Controls how "dense" the fog clouds are
|
||||
|
||||
void fragment() {
|
||||
vec2 uv = UV;
|
||||
|
||||
// 1. Scale the UVs for the noise lookup.
|
||||
// Higher scale = more frequent/smaller clouds.
|
||||
vec2 noise_uv = (uv * noise_scale) + vec2(TIME * 0.05);
|
||||
|
||||
// 2. Center the noise!
|
||||
// Texture returns 0.0 to 1.0. Subtracting 0.5 makes it -0.5 to 0.5.
|
||||
// This allows the fog to distort BOTH inward and outward.
|
||||
float noise = texture(noise_texture, noise_uv).r - 0.5;
|
||||
|
||||
float dist = distance(uv, center);
|
||||
|
||||
// 3. Apply the centered noise to the threshold
|
||||
float fog_threshold = radius + (noise * noise_strength);
|
||||
|
||||
// 4. Smoothstep for the alpha transition
|
||||
float alpha = smoothstep(fog_threshold - softness, fog_threshold, dist);
|
||||
|
||||
COLOR.a *= alpha;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue