From 26d7b83fcd0144d54171b01d5e24977d5651bf68 Mon Sep 17 00:00:00 2001
From: Alexander Gauggel <agauggel@uni-koblenz.de>
Date: Thu, 24 Jun 2021 20:00:38 +0200
Subject: [PATCH] [#82] Reduce shadow swimming on movement

---
 projects/voxelization/src/ShadowMapping.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/projects/voxelization/src/ShadowMapping.cpp b/projects/voxelization/src/ShadowMapping.cpp
index 1e58b3c8..9c81aa09 100644
--- a/projects/voxelization/src/ShadowMapping.cpp
+++ b/projects/voxelization/src/ShadowMapping.cpp
@@ -115,6 +115,10 @@ glm::mat4 computeShadowViewProjectionMatrix(
 	getMinMaxView(voxelVolumeCorners);
 
 	glm::vec3 scale  = glm::vec3(2) / (maxView - minView);
+
+	// rotationaly invariant to avoid swimming when moving camera
+	scale = glm::vec3(glm::max(glm::max(scale.x, scale.y), scale.z));
+
 	glm::vec3 offset = -0.5f * (maxView + minView) * scale;
 
 	glm::mat4 crop(1);
-- 
GitLab