[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