diff --git a/projects/voxelization/resources/shaders/shader.frag b/projects/voxelization/resources/shaders/shader.frag
index a5793542b9f0ea2a79504cdf3ef67ec0d32124ad..e8f85919dff4ffe6fad21d4f718192e6631492fc 100644
--- a/projects/voxelization/resources/shaders/shader.frag
+++ b/projects/voxelization/resources/shaders/shader.frag
@@ -91,7 +91,7 @@ void main()	{
     vec3 F_out      = fresnelSchlick(NoV, f0);
     vec3 diffuse    = lambertBRDF(albedo) * (1 - F_in) * (1 - F_out);
     
-    vec3 up         = N_geo.y >= 0.99 ? vec3(1, 0, 0) : vec3(0, 1, 0);
+    vec3 up         = abs(N_geo.y) >= 0.99 ? vec3(1, 0, 0) : vec3(0, 1, 0);
     vec3 right      = normalize(cross(up, N));
     up              = cross(N, right); 
     mat3 toSurface  = mat3(right, up, N);
diff --git a/projects/voxelization/resources/shaders/voxelSecondaryBounce.comp b/projects/voxelization/resources/shaders/voxelSecondaryBounce.comp
index 3e10ecb8faeaf8fe1ca5ea539ac94e92d38e5c3b..29026e7052861ab190200b23d9f860bc609d1550 100644
--- a/projects/voxelization/resources/shaders/voxelSecondaryBounce.comp
+++ b/projects/voxelization/resources/shaders/voxelSecondaryBounce.comp
@@ -32,7 +32,7 @@ void main(){
         float halfVoxelSize = voxelInfo.extent / float(voxelImageSize.x) * 0.5f;
         vec3 pos            = voxelCoordinatesToWorldPosition(UV, voxelImageSize.x, voxelInfo, halfVoxelSize);
         
-        vec3 up         = N.y >= 0.99 ? vec3(1, 0, 0) : vec3(0, 1, 0);
+        vec3 up         = abs(N.y) >= 0.99 ? vec3(1, 0, 0) : vec3(0, 1, 0);
         vec3 right      = normalize(cross(up, N));
         up              = cross(N, right); 
         mat3 toSurface  = mat3(right, up, N);