mirror of
https://github.com/Merlin1809/Eclipse-Shader.git
synced 2026-10-10 04:53:07 +08:00
28 lines
809 B
GLSL
28 lines
809 B
GLSL
#ifndef VOXY_PROGRAM
|
|
uniform float far;
|
|
uniform int dhVoxyRenderDistance;
|
|
#endif
|
|
|
|
const float k = 1.8;
|
|
const float d0 = 0.04 + (1.0-clamp(shadowDistance-64.0, 0.0,1.0)) * 0.1;
|
|
const float d1 = 0.61;
|
|
float a = exp(d0);
|
|
float b = (exp(d1)-a)*150./128.0;
|
|
|
|
// thank you Espen
|
|
// #ifdef DISTANT_HORIZONS_SHADOWMAP
|
|
// float b = (exp(d1)-a)*min(dhVoxyRenderDistance, shadowDistance)/shadowDistance;
|
|
// #else
|
|
// float b = (exp(d1)-a)*min(far+16.0*3.5, shadowDistance)/shadowDistance;
|
|
// #endif
|
|
|
|
vec4 BiasShadowProjection(in vec4 projectedShadowSpacePosition) {
|
|
|
|
float distortFactor = log(length(projectedShadowSpacePosition.xy)*b+a)*k;
|
|
projectedShadowSpacePosition.xy /= distortFactor;
|
|
return projectedShadowSpacePosition;
|
|
}
|
|
|
|
float calcDistort(vec2 worldpos){
|
|
return 1.0/(log(length(worldpos)*b+a)*k);
|
|
} |