Dev 0.1
* Ajout des modes de jeu * Dev de subterra et estia * Ajout de tous les dialogues et traduction * Ajout d'un splashscreen
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
// 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));
|
||||
}
|
||||
Reference in New Issue
Block a user