diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-04-04 21:06:22 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-04-04 22:22:31 +0300 |
commit | b2e2db94bdae25b4505df563ae9e56a37d89cb7a (patch) | |
tree | e454893e7bc7215de93262f7bb9bad9b62ca7908 /intern/cycles/render/mesh.cpp | |
parent | 59d0582a750cf61c98368dc66277e788dcf6f502 (diff) |
Fix T60379: Cycles viewport adaptive subdivision hangs after updates.
The camera world to raster computation was using wrong values. Also fixes
update when changing subdivision scene settings.
Diffstat (limited to 'intern/cycles/render/mesh.cpp')
-rw-r--r-- | intern/cycles/render/mesh.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index f0b06a1e14a..03dc21b91c9 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -2144,6 +2144,9 @@ void MeshManager::device_update(Device *device, DeviceScene *dscene, Scene *scen /* Tessellate meshes that are using subdivision */ if(total_tess_needed) { + Camera *dicing_camera = scene->dicing_camera; + dicing_camera->update(scene); + size_t i = 0; foreach(Mesh *mesh, scene->meshes) { if(mesh->need_update && @@ -2159,6 +2162,7 @@ void MeshManager::device_update(Device *device, DeviceScene *dscene, Scene *scen progress.set_status("Updating Mesh", msg); + mesh->subd_params->camera = dicing_camera; DiagSplit dsplit(*mesh->subd_params); mesh->tessellate(&dsplit); |