diff options
Diffstat (limited to 'intern/cycles/blender/blender_mesh.cpp')
-rw-r--r-- | intern/cycles/blender/blender_mesh.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index a590b5f5532..ba0ba7892e8 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -660,13 +660,14 @@ static void create_subd_mesh(Scene *scene, BL::Object b_ob, BL::Mesh& b_mesh, PointerRNA *cmesh, - const vector<uint>& used_shaders) + const vector<uint>& used_shaders, + float dicing_rate) { Mesh basemesh; create_mesh(scene, &basemesh, b_mesh, used_shaders); SubdParams sdparams(mesh, used_shaders[0], true, false); - sdparams.dicing_rate = RNA_float_get(cmesh, "dicing_rate"); + sdparams.dicing_rate = max(0.1f, RNA_float_get(cmesh, "dicing_rate") * dicing_rate); scene->camera->update(); sdparams.camera = scene->camera; @@ -783,7 +784,7 @@ Mesh *BlenderSync::sync_mesh(BL::Object& b_ob, if(b_mesh) { if(render_layer.use_surfaces && !hide_tris) { if(cmesh.data && experimental && RNA_enum_get(&cmesh, "subdivision_type")) - create_subd_mesh(scene, mesh, b_ob, b_mesh, &cmesh, used_shaders); + create_subd_mesh(scene, mesh, b_ob, b_mesh, &cmesh, used_shaders, dicing_rate); else create_mesh(scene, mesh, b_mesh, used_shaders); |