aboutsummaryrefslogtreecommitdiff
path: root/src/client/shadows/dynamicshadows.cpp
diff options
context:
space:
mode:
authorDmitry Kostenko <codeforsmile@gmail.com>2022-02-20 00:04:48 +0100
committerx2048 <codeforsmile@gmail.com>2022-03-07 23:45:26 +0100
commit4801bdf45aaaa9238bc52a157e1d25c9d477d81a (patch)
tree7d557eda80e935b62129f40ae683e7685b28bc8f /src/client/shadows/dynamicshadows.cpp
parent25c1974e0d734b6e80d128b325e8e6b506a7401b (diff)
downloadhax-minetest-server-4801bdf45aaaa9238bc52a157e1d25c9d477d81a.tar.gz
hax-minetest-server-4801bdf45aaaa9238bc52a157e1d25c9d477d81a.zip
Correct normal bias for entities
Remove use of magic constants. Apply cameraOffset Calculate distance projected on SM plane
Diffstat (limited to 'src/client/shadows/dynamicshadows.cpp')
-rw-r--r--src/client/shadows/dynamicshadows.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/client/shadows/dynamicshadows.cpp b/src/client/shadows/dynamicshadows.cpp
index 6ef5a4f1d..a45bf64fe 100644
--- a/src/client/shadows/dynamicshadows.cpp
+++ b/src/client/shadows/dynamicshadows.cpp
@@ -58,15 +58,13 @@ void DirectionalLight::createSplitMatrices(const Camera *cam)
const v3f &viewUp = cam->getCameraNode()->getUpVector();
v3f viewRight = look.crossProduct(viewUp);
- v3f farCorner = look + viewRight * tanFovX + viewUp * tanFovY;
+ v3f farCorner = (look + viewRight * tanFovX + viewUp * tanFovY).normalize();
// Compute the frustumBoundingSphere radius
v3f boundVec = (camPos + farCorner * sfFar) - newCenter;
- radius = boundVec.getLength() * 2.0f;
+ radius = boundVec.getLength();
// boundVec.getLength();
- float vvolume = radius * 2.0f;
-
+ float vvolume = radius;
v3f frustumCenter = newCenter;
- // probar radius multipliacdor en funcion del I, a menor I mas multiplicador
v3f eye_displacement = direction * vvolume;
// we must compute the viewmat with the position - the camera offset