v4k-git-backup/engine/art/shaders/fs_shadow_vsm.glsl

25 lines
581 B
Plaintext
Raw Normal View History

2024-08-29 15:32:34 +00:00
in vec3 v_position;
out vec4 fragcolor;
2023-09-10 14:46:07 +00:00
2024-08-29 18:46:30 +00:00
const int SHADOW_VSM = 0;
2024-08-30 19:00:04 +00:00
const int SHADOW_CSM = 1;
2024-08-29 18:46:30 +00:00
uniform int shadow_technique;
2023-09-10 14:46:07 +00:00
void main() {
2024-08-29 18:46:30 +00:00
if (shadow_technique == SHADOW_VSM) {
2024-08-30 14:01:46 +00:00
float depth = length(v_position) / 200;
2024-08-29 15:32:34 +00:00
2024-08-30 01:46:46 +00:00
float moment1 = depth;
float moment2 = depth * depth;
float dx = dFdx(depth);
float dy = dFdy(depth);
moment2 += 0.25*(dx*dx+dy*dy);
fragcolor = vec4( moment1, moment2, 0.0, 1.0);
2024-08-29 18:46:30 +00:00
}
2024-08-30 19:00:04 +00:00
else if (shadow_technique == SHADOW_CSM) {
2024-08-29 18:46:30 +00:00
fragcolor = vec4(vec3(gl_FragCoord.z), 1.0);
}
2024-08-29 15:32:34 +00:00
}