diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-05-15 16:44:09 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-05-15 16:45:19 +0300 |
commit | ef8ad66aa2d25f414822871f61ece54b0d5a6931 (patch) | |
tree | bea430f19c53523bc4cb13eb4932b16e0cfd66da /intern/cycles/render/mesh_displace.cpp | |
parent | 1f96dd2e0bb7440002b24c98e4c9d7daa44f2ebd (diff) |
Fix T49324: True displacement crashes when shader returns NaN
Diffstat (limited to 'intern/cycles/render/mesh_displace.cpp')
-rw-r--r-- | intern/cycles/render/mesh_displace.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/intern/cycles/render/mesh_displace.cpp b/intern/cycles/render/mesh_displace.cpp index cf28bb16bb7..4ca20cf7ef3 100644 --- a/intern/cycles/render/mesh_displace.cpp +++ b/intern/cycles/render/mesh_displace.cpp @@ -169,6 +169,8 @@ bool MeshManager::displace(Device *device, DeviceScene *dscene, Scene *scene, Me if(!done[t.v[j]]) { done[t.v[j]] = true; float3 off = float4_to_float3(offset[k++]); + /* Avoid illegal vertex coordinates. */ + off = ensure_finite3(off); mesh->verts[t.v[j]] += off; if(attr_mP != NULL) { for(int step = 0; step < mesh->motion_steps - 1; step++) { |