diff options
-rw-r--r-- | intern/cycles/blender/addon/ui.py | 2 | ||||
-rw-r--r-- | intern/cycles/blender/blender_sync.cpp | 1 | ||||
-rw-r--r-- | intern/cycles/blender/blender_sync.h | 2 | ||||
-rw-r--r-- | intern/cycles/blender/blender_volume.cpp | 5 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 1 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 10 |
6 files changed, 19 insertions, 2 deletions
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py index d24d965bb06..3e0d40bc5fd 100644 --- a/intern/cycles/blender/addon/ui.py +++ b/intern/cycles/blender/addon/ui.py @@ -770,6 +770,8 @@ class CYCLES_RENDER_PT_filter(CyclesButtonsPanel, Panel): col.prop(view_layer, "use_solid", text="Surfaces") col = flow.column() col.prop(view_layer, "use_strand", text="Hair") + col = flow.column() + col.prop(view_layer, "use_volumes", text="Volumes") if with_freestyle: col = flow.column() col.prop(view_layer, "use_freestyle", text="Freestyle") diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp index 8f00f9ccda0..4529c6a2798 100644 --- a/intern/cycles/blender/blender_sync.cpp +++ b/intern/cycles/blender/blender_sync.cpp @@ -405,6 +405,7 @@ void BlenderSync::sync_view_layer(BL::SpaceView3D & /*b_v3d*/, BL::ViewLayer &b_ view_layer.use_background_ao = b_view_layer.use_ao(); view_layer.use_surfaces = b_view_layer.use_solid(); view_layer.use_hair = b_view_layer.use_strand(); + view_layer.use_volumes = b_view_layer.use_volumes(); /* Material override. */ view_layer.material_override = b_view_layer.material_override(); diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index 0a7174e407b..d212caa69f7 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -236,6 +236,7 @@ class BlenderSync { use_background_ao(true), use_surfaces(true), use_hair(true), + use_volumes(true), samples(0), bound_samples(false) { @@ -247,6 +248,7 @@ class BlenderSync { bool use_background_ao; bool use_surfaces; bool use_hair; + bool use_volumes; int samples; bool bound_samples; } view_layer; diff --git a/intern/cycles/blender/blender_volume.cpp b/intern/cycles/blender/blender_volume.cpp index 47259d4945c..4dab60088bb 100644 --- a/intern/cycles/blender/blender_volume.cpp +++ b/intern/cycles/blender/blender_volume.cpp @@ -1,4 +1,3 @@ - /* * Copyright 2011-2013 Blender Foundation * @@ -83,7 +82,9 @@ void BlenderSync::sync_volume(BL::Object &b_ob, Mesh *mesh, const vector<Shader mesh->used_shaders = used_shaders; /* Smoke domain. */ - sync_smoke_volume(scene, b_ob, mesh, b_scene.frame_current()); + if (view_layer.use_volumes) { + sync_smoke_volume(scene, b_ob, mesh, b_scene.frame_current()); + } /* Tag update. */ bool rebuild = (old_has_voxel_attributes != mesh->has_voxel_attributes()); diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index 3a88cd0a33b..5759b237f83 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -242,6 +242,7 @@ typedef struct SceneRenderLayer { #define SCE_LAY_STRAND (1 << 5) #define SCE_LAY_FRS (1 << 6) #define SCE_LAY_AO (1 << 7) +#define SCE_LAY_VOLUMES (1 << 8) /* flags between (1 << 8) and (1 << 15) are set to 1 already, for future options */ #define SCE_LAY_ALL_Z (1 << 15) diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 27d742fd33c..f974d5c563f 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -4018,6 +4018,16 @@ void rna_def_view_layer_common(StructRNA *srna, const bool scene) RNA_def_property_clear_flag(prop, PROP_EDITABLE); } + prop = RNA_def_property(srna, "use_volumes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_sdna(prop, NULL, "layflag", SCE_LAY_VOLUMES); + RNA_def_property_ui_text(prop, "Volumes", "Render volumes in this Layer"); + if (scene) { + RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL); + } + else { + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + } + /* passes */ prop = RNA_def_property(srna, "use_pass_combined", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "passflag", SCE_PASS_COMBINED); |