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.
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 "
|
||||
|
||||
Reference in New Issue
Block a user