Files
zacharie 3ff6d68371 Dev 0.2.0
* Base Astra dev (pas terminée)
* Réparation du bug du level up des mutations
* Boost de la difficulté sur tous les modes
* Increase backrooms distance et réparation du succès
* Réparation de coquilles de textes et des logs qui ne s'affichent plus
2026-07-25 12:42:42 +02:00

44 lines
1.2 KiB
Plaintext

// Found Here https://godotshaders.com/shader/pearlescent/
shader_type spatial;
uniform float fresnel_power = 3.0;
uniform float interference_frequency = 3.0;
uniform sampler2D color_ramp;
uniform sampler2D noise;
uniform float noise_speed = 0.1;
uniform vec3 shift : source_color = vec3(1.0, 1.0, 1.0);
uniform vec3 fresnel_color : source_color = vec3(1.0, 1.0, 1.0);
uniform vec3 light_direction = vec3(0.0, -1.0, 0.0);
float fresnel(vec3 view, vec3 normal) {
return pow(1.0 - dot(view, normal), fresnel_power);
}
vec3 irridescence(vec3 view, vec3 normal, vec3 light, vec2 uv2, float time) {
float dot_view = dot(view, normal);
float dot_light = dot(light, normal);
float angle = abs(dot_view - dot_light);
float interference = sin(angle * interference_frequency) * 0.5 + 0.5;
interference = clamp(interference, 0.01, 0.99);
float noise_value = (
texture(noise,uv2 + vec2(time * noise_speed)).r +
texture(noise,uv2 - vec2(time * noise_speed,0.)).r
);
vec3 base_color = texture(color_ramp,vec2(noise_value)).rgb;
return mix(base_color, shift, interference);
}
void fragment() {
ALBEDO = mix(
irridescence(VIEW, NORMAL, light_direction, UV, TIME),
fresnel_color,
fresnel(VIEW, NORMAL));
EMISSION = ALBEDO;
}