Skip to content

Commit

Permalink
CascadeShadowMap : depthBias is now a factor to the depth offset
Browse files Browse the repository at this point in the history
  • Loading branch information
TothBenoit committed Jul 17, 2024
1 parent 43c6c95 commit 20b1135
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions h3d/pass/CascadeShadowMap.hx
Original file line number Diff line number Diff line change
Expand Up @@ -135,14 +135,16 @@ class CascadeShadowMap extends DirShadowMap {
var invD0 = 1 / d0;
var zDist0 = cascadeBounds0.zMax - cascadeBounds0.zMin;

var depthBiasFactor = (params[0] != null ) ? params[0].depthBias : 1.0;

var proj = tmpProj;
proj.zero();
proj._11 = invD0;
proj._22 = invD0;
proj._33 = 1 / (zDist0);
proj._41 = 0.5;
proj._42 = 0.5;
proj._43 = 0.00000190734; // 2^-19 depth offset;
proj._43 = 0.00000190734 * depthBiasFactor; // 2^-19 depth offset;
proj._44 = 1;

cascadeViewProj.multiply(view, proj);
Expand Down Expand Up @@ -187,10 +189,13 @@ class CascadeShadowMap extends DirShadowMap {
var proj = tmpProj;
proj.zero();
var invD2 = 2.0 * invD;

var depthBiasFactor = (params[i] != null ) ? params[i].depthBias : 1.0;

proj._11 = invD2;
proj._22 = invD2;
proj._33 = invZDist;
proj._43 = 0.00000190734; // 2^-19 depth offset;
proj._43 = 0.0000190734 * depthBiasFactor; // 2^-19 depth offset;
proj._44 = 1;

lightCameras[i].viewProj.multiply(view, proj);
Expand Down Expand Up @@ -299,8 +304,7 @@ class CascadeShadowMap extends DirShadowMap {
// Bilinear depth only make sense if we use sample compare to get weighted shadow occlusion which we doesn't support yet.
texture.filter = Nearest;

var param = params[cascade - 1 - i];
texture.depthBias = (param != null) ? param.depthBias : 0;
var param = params[i];
texture.slopeScaledBias = (param != null) ? param.slopeBias : 0;
texture.depthClamp = true;

Expand Down

0 comments on commit 20b1135

Please sign in to comment.