[Bf-blender-cvs] [0366c46ec64] blender-v2.82-release: Fix T69070 EEVEE: Volume shader glitch if object as axis with 0.0 scale

Clément Foucault noreply at git.blender.org
Mon Jan 27 19:52:47 CET 2020


Commit: 0366c46ec64e42135953aad1de41c6976947e7a4
Author: Clément Foucault
Date:   Mon Jan 27 17:31:12 2020 +0100
Branches: blender-v2.82-release
https://developer.blender.org/rB0366c46ec64e42135953aad1de41c6976947e7a4

Fix T69070 EEVEE: Volume shader glitch if object as axis with 0.0 scale

===================================================================

M	source/blender/draw/engines/eevee/eevee_volumes.c

===================================================================

diff --git a/source/blender/draw/engines/eevee/eevee_volumes.c b/source/blender/draw/engines/eevee/eevee_volumes.c
index d32f93432b8..423cc64da36 100644
--- a/source/blender/draw/engines/eevee/eevee_volumes.c
+++ b/source/blender/draw/engines/eevee/eevee_volumes.c
@@ -401,6 +401,14 @@ void EEVEE_volumes_cache_object_add(EEVEE_ViewLayerData *sldata,
     return;
   }
 
+  float size[3];
+  mat4_to_size(size, ob->obmat);
+  /* Check if any of the axes have 0 length. (see T69070) */
+  const float epsilon = 1e-8f;
+  if ((size[0] < epsilon) || (size[1] < epsilon) || (size[2] < epsilon)) {
+    return;
+  }
+
   struct GPUMaterial *mat = EEVEE_material_mesh_volume_get(scene, ma);
   eGPUMaterialStatus status = GPU_material_status(mat);



More information about the Bf-blender-cvs mailing list