Rename drop_shadow_blink.shader to shaders/drop_shadow_blink.shader

subj
This commit is contained in:
4aiman 2024-12-26 23:42:17 +03:00 • committed by GitHub
commit 0e88962aa1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -0,0 +1,27 @@
uniform int shadow_offset_x;
uniform int shadow_offset_y;
uniform int shadow_blur_size;
uniform float speed;
uniform float4 shadow_color;
uniform bool is_alpha_premultiplied;
float4 mainImage(VertData v_in) : TARGET
{
int shadow_blur_samples = int(pow(shadow_blur_size * 2 + 1, 2));
float4 color = image.Sample(textureSampler, v_in.uv);
float2 shadow_uv = float2(v_in.uv.x - uv_pixel_interval.x * shadow_offset_x,
v_in.uv.y - uv_pixel_interval.y * shadow_offset_y);
float sampled_shadow_alpha = 0;
for (int blur_x = -shadow_blur_size; blur_x <= shadow_blur_size; blur_x++)
{
for (int blur_y = -shadow_blur_size; blur_y <= shadow_blur_size; blur_y++)
{
float2 blur_uv = shadow_uv + float2(uv_pixel_interval.x * blur_x, uv_pixel_interval.y * blur_y);
sampled_shadow_alpha += image.Sample(textureSampler, blur_uv).a / shadow_blur_samples;
}
}
float t = elapsed_time * speed;
float4 final_shadow_color = float4(shadow_color.rgb, shadow_color.a * sampled_shadow_alpha* (1 + sin(t)) / 2);
float4 color_two = final_shadow_color * (1-color.a) + color * (int(is_alpha_premultiplied) * 1 + int(!is_alpha_premultiplied) * color.a);
return float4(color_two.r, color_two.g, color_two.b, color_two.a);
}