[Bf-blender-cvs] [e22ca0fb860] blender2.8: SceneRenderLayer > SceneLayer: Convert samples_override

Dalai Felinto noreply at git.blender.org
Wed Nov 22 10:18:07 CET 2017


Commit: e22ca0fb860ed945eb3438bfe6dba8040cfd7cf3
Author: Dalai Felinto
Date:   Wed Nov 15 12:17:54 2017 -0200
Branches: blender2.8
https://developer.blender.org/rBe22ca0fb860ed945eb3438bfe6dba8040cfd7cf3

SceneRenderLayer > SceneLayer: Convert samples_override

Note: Cycles still need to handle its own doversion for theses cases and

(1) Remove the override as it is
(2) Add a new override (scene.cycles.samples) if scene.cycles.use_layer_samples != IGNORE

Respecting the expected behaviour when scene.cycles.use_layer_samples == BOUNDED.

===================================================================

M	intern/cycles/blender/addon/ui.py
M	intern/cycles/blender/blender_sync.cpp
M	intern/cycles/blender/blender_sync.h
M	source/blender/blenkernel/BKE_layer.h
M	source/blender/blenkernel/intern/layer.c
M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesrna/intern/rna_scene.c

===================================================================

diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 537303035b3..b125e0af234 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -204,13 +204,6 @@ class CYCLES_RENDER_PT_sampling(CyclesButtonsPanel, Panel):
             col.prop(cscene, "sample_all_lights_indirect")
 
         layout.row().prop(cscene, "sampling_pattern", text="Pattern")
-
-        for rl in scene.render.layers:
-            if rl.samples > 0:
-                layout.separator()
-                layout.row().prop(cscene, "use_layer_samples")
-                break
-
         draw_samples_info(layout, context)
 
 
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index cbe373eff6b..2135d72e877 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -378,7 +378,6 @@ void BlenderSync::sync_film()
 
 void BlenderSync::sync_render_layers(BL::SpaceView3D& b_v3d, const char *layer)
 {
-	PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
 	string layername;
 
 	/* 3d view */
@@ -391,7 +390,6 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D& b_v3d, const char *layer)
 	/* render layer */
 	BL::RenderSettings r = b_scene.render();
 	BL::RenderSettings::layers_iterator b_rlay;
-	int use_layer_samples = get_enum(cscene, "use_layer_samples");
 	bool first_layer = true;
 	uint layer_override = get_layer(b_engine.layer_override());
 	uint scene_layers = layer_override ? layer_override : get_layer(b_scene.layers());
@@ -415,14 +413,8 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D& b_v3d, const char *layer)
 			render_layer.use_surfaces = b_rlay->use_solid();
 			render_layer.use_hair = b_rlay->use_strand();
 
-			render_layer.bound_samples = (use_layer_samples == 1);
-			if(use_layer_samples != 2) {
-				int samples = b_rlay->samples();
-				if(get_boolean(cscene, "use_square_samples"))
-					render_layer.samples = samples * samples;
-				else
-					render_layer.samples = samples;
-			}
+			render_layer.bound_samples = false;
+			render_layer.samples = 0;
 		}
 
 		first_layer = false;
diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h
index a0cbc45da98..a68b6a03906 100644
--- a/intern/cycles/blender/blender_sync.h
+++ b/intern/cycles/blender/blender_sync.h
@@ -207,8 +207,8 @@ private:
 		bool use_background_ao;
 		bool use_surfaces;
 		bool use_hair;
-		int samples;
-		bool bound_samples;
+		int samples; /* This can be safely removed from Cycles. */
+		bool bound_samples; /* This can be safely removed from Cycles. */
 	} render_layer;
 
 	Progress &progress;
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index ad2f196866f..d195c98396b 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -109,6 +109,7 @@ void BKE_layer_sync_object_unlink(const struct Scene *scene, struct SceneCollect
 /* override */
 
 void BKE_override_scene_layer_datablock_add(struct SceneLayer *scene_layer, int id_type, const char *data_path, const struct ID *id);
+void BKE_override_scene_layer_int_add(struct SceneLayer *scene_layer, int id_type, const char *data_path, const int value);
 
 /* engine settings */
 typedef void (*EngineSettingsCB)(struct RenderEngine *engine, struct IDProperty *props);
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c
index 3c9c110625b..f7866922c1c 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -1066,6 +1066,15 @@ void BKE_override_scene_layer_datablock_add(SceneLayer *scene_layer, int id_type
 	TODO_LAYER_OVERRIDE;
 }
 
+/**
+ * Add a new int override
+ */
+void BKE_override_scene_layer_int_add(SceneLayer *scene_layer, int id_type, const char *data_path, const int value)
+{
+	UNUSED_VARS(scene_layer, id_type, data_path, value);
+	TODO_LAYER_OVERRIDE;
+}
+
 /* ---------------------------------------------------------------------- */
 /* Engine Settings */
 
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index d38a9a12999..f6801d22a53 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -306,6 +306,16 @@ void do_versions_after_linking_280(Main *main)
 
 						SceneLayer *scene_layer = BKE_scene_layer_add(scene, srl->name);
 
+						if (srl->samples != 0) {
+							/* It is up to the external engine to handle
+							 * its own doversion in this case. */
+							BKE_override_scene_layer_int_add(
+										scene_layer,
+										ID_SCE,
+										"samples",
+										srl->samples);
+						}
+
 						if (srl->mat_override) {
 							BKE_override_scene_layer_datablock_add(
 							            scene_layer,
diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h
index 3e554bafdf2..7c93febc69f 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -184,7 +184,7 @@ typedef struct SceneRenderLayer {
 	int passflag;			/* pass_xor has to be after passflag */
 	int pass_xor;
 
-	int samples;
+	int samples DNA_DEPRECATED; /* Converted to SceneLayer override. */
 	float pass_alpha_threshold;
 
 	IDProperty *prop;
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index f653fcfa238..d62741d9383 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -3301,11 +3301,6 @@ void rna_def_render_layer_common(StructRNA *srna, int scene)
 	else RNA_def_property_clear_flag(prop, PROP_EDITABLE);
 
 	if (scene) {
-		prop = RNA_def_property(srna, "samples", PROP_INT, PROP_UNSIGNED);
-		RNA_def_property_ui_text(prop, "Samples", "Override number of render samples for this render layer, "
-		                                          "0 will use the scene setting");
-		RNA_def_property_update(prop, NC_SCENE | ND_RENDER_OPTIONS, NULL);
-
 		prop = RNA_def_property(srna, "pass_alpha_threshold", PROP_FLOAT, PROP_FACTOR);
 		RNA_def_property_ui_text(prop, "Alpha Threshold",
 		                         "Z, Index, normal, UV and vector passes are only affected by surfaces with "



More information about the Bf-blender-cvs mailing list