Linearization of depth buffer. Didn't change graphics in any way.
This commit is contained in:
parent
d26722595e
commit
955eee5a60
@ -51,11 +51,12 @@ vec2 poissonDisk[16] = vec2[](
|
|||||||
);
|
);
|
||||||
|
|
||||||
float sampleDirectionalShadow(sampler2DShadow shadowMap, vec4 shadowCoord) {
|
float sampleDirectionalShadow(sampler2DShadow shadowMap, vec4 shadowCoord) {
|
||||||
|
float nearPlane = 0.1;
|
||||||
float visibility = 1.0;
|
float visibility = 1.0;
|
||||||
float bias = 0.001*tan(acos(clamp(dot(vNormal, -directionalLightVector), 0.0, 1.0)));
|
float bias = 0.001*tan(acos(clamp(dot(vNormal, -directionalLightVector), 0.0, 1.0)));
|
||||||
bias = clamp(bias, 0.0, 0.01);
|
bias = clamp(bias, 0.0, 0.01);
|
||||||
for (int i=0; i<4; i++) {
|
/*for (int i=0; i<4; i++) {
|
||||||
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, (shadowCoord.z - bias)/shadowCoord.w)));
|
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, (2.0 * nearPlane)/(farPlane+ nearPlane - shadowCoord.z * (farPlane - nearPlane))- bias)));
|
||||||
}
|
}
|
||||||
if (visibility == 1.0-(directionalIntensity/16)*4)
|
if (visibility == 1.0-(directionalIntensity/16)*4)
|
||||||
{
|
{
|
||||||
@ -63,10 +64,11 @@ float sampleDirectionalShadow(sampler2DShadow shadowMap, vec4 shadowCoord) {
|
|||||||
}
|
}
|
||||||
else if (visibility != 1.0) {
|
else if (visibility != 1.0) {
|
||||||
for (int i=0; i<12; i++) {
|
for (int i=0; i<12; i++) {
|
||||||
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, (shadowCoord.z - bias)/shadowCoord.w)));
|
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, (2.0 * nearPlane)/(farPlane+ nearPlane - shadowCoord.z * (farPlane - nearPlane))- bias)));
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
return visibility;
|
visibility = texture(shadowMap, vec3(shadowCoord.xy, (shadowCoord.z - bias)/shadowCoord.w));
|
||||||
|
return (2.0 * nearPlane) / (farPlane + nearPlane - visibility * (farPlane - nearPlane));
|
||||||
}
|
}
|
||||||
|
|
||||||
float samplePointShadow(samplerCubeShadow shadowMap, vec3 lightDirection) {
|
float samplePointShadow(samplerCubeShadow shadowMap, vec3 lightDirection) {
|
||||||
|
Loading…
Reference in New Issue
Block a user