diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-05-10 17:34:49 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-05-10 17:34:49 +0400 |
commit | 31e39e9b0e4937f1f87e542a94dcc97bbe738b07 (patch) | |
tree | 8898d43a26b2532fb1f37c009468144faf260603 /intern/cycles/blender/blender_mesh.cpp | |
parent | 96a11219f655a7a99853b8365b6f014a1db5d74b (diff) |
Cycles: add Use Surfaces and Use Hair option to render layers, to disable rendering
of hair and surfaces, similar to blender internal options.
Diffstat (limited to 'intern/cycles/blender/blender_mesh.cpp')
-rw-r--r-- | intern/cycles/blender/blender_mesh.cpp | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index 8de4fa1a114..7f02bc68e6b 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -442,31 +442,35 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool object_updated, bool hide_tri /* create derived mesh */ bool need_undeformed = mesh->need_attribute(scene, ATTR_STD_GENERATED); - BL::Mesh b_mesh = object_to_mesh(b_data, b_ob, b_scene, true, !preview, need_undeformed); PointerRNA cmesh = RNA_pointer_get(&b_ob_data.ptr, "cycles"); vector<Mesh::Triangle> oldtriangle = mesh->triangles; - /* compares curve_keys rather than strands in order to handle quick hair adjustsments in dynamic BVH - other methods could probably do this better*/ + /* compares curve_keys rather than strands in order to handle quick hair + * adjustsments in dynamic BVH - other methods could probably do this better*/ vector<Mesh::CurveKey> oldcurve_keys = mesh->curve_keys; mesh->clear(); mesh->used_shaders = used_shaders; mesh->name = ustring(b_ob_data.name().c_str()); - if(b_mesh) { - if(!(hide_tris && experimental)) { - if(cmesh.data && experimental && RNA_boolean_get(&cmesh, "use_subdivision")) - create_subd_mesh(mesh, b_mesh, &cmesh, used_shaders); - else - create_mesh(scene, mesh, b_mesh, used_shaders); - } + if(render_layer.use_surfaces || render_layer.use_hair) { + BL::Mesh b_mesh = object_to_mesh(b_data, b_ob, b_scene, true, !preview, need_undeformed); + + if(b_mesh) { + if(render_layer.use_surfaces && !(hide_tris && experimental)) { + if(cmesh.data && experimental && RNA_boolean_get(&cmesh, "use_subdivision")) + create_subd_mesh(mesh, b_mesh, &cmesh, used_shaders); + else + create_mesh(scene, mesh, b_mesh, used_shaders); + } - if(experimental) - sync_curves(mesh, b_mesh, b_ob, object_updated); + if(render_layer.use_hair && experimental) + sync_curves(mesh, b_mesh, b_ob, object_updated); - /* free derived mesh */ - b_data.meshes.remove(b_mesh); + /* free derived mesh */ + b_data.meshes.remove(b_mesh); + } } /* displacement method */ |