diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-01-27 19:31:12 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-01-27 21:52:20 +0300 |
commit | 0366c46ec64e42135953aad1de41c6976947e7a4 (patch) | |
tree | e29f49b8695312ae336a4e216044de4bbd2157ce /source/blender/draw | |
parent | 10eb711e1657a7f49e30a44bae9177ec3590c6c0 (diff) |
Fix T69070 EEVEE: Volume shader glitch if object as axis with 0.0 scale
Diffstat (limited to 'source/blender/draw')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_volumes.c | 8 |
1 files changed, 8 insertions, 0 deletions
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); |