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")
|
col.prop(cscene, "sample_all_lights_indirect")
|
||||||
|
|
||||||
layout.row().prop(cscene, "sampling_pattern", text="Pattern")
|
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)
|
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)
|
void BlenderSync::sync_render_layers(BL::SpaceView3D& b_v3d, const char *layer)
|
||||||
{
|
{
|
||||||
PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
|
|
||||||
string layername;
|
string layername;
|
||||||
|
|
||||||
/* 3d view */
|
/* 3d view */
|
||||||
@@ -391,7 +390,6 @@ void BlenderSync::sync_render_layers(BL::SpaceView3D& b_v3d, const char *layer)
|
|||||||
/* render layer */
|
/* render layer */
|
||||||
BL::RenderSettings r = b_scene.render();
|
BL::RenderSettings r = b_scene.render();
|
||||||
BL::RenderSettings::layers_iterator b_rlay;
|
BL::RenderSettings::layers_iterator b_rlay;
|
||||||
int use_layer_samples = get_enum(cscene, "use_layer_samples");
|
|
||||||
bool first_layer = true;
|
bool first_layer = true;
|
||||||
uint layer_override = get_layer(b_engine.layer_override());
|
uint layer_override = get_layer(b_engine.layer_override());
|
||||||
uint scene_layers = layer_override ? layer_override : get_layer(b_scene.layers());
|
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_surfaces = b_rlay->use_solid();
|
||||||
render_layer.use_hair = b_rlay->use_strand();
|
render_layer.use_hair = b_rlay->use_strand();
|
||||||
|
|
||||||
render_layer.bound_samples = (use_layer_samples == 1);
|
render_layer.bound_samples = false;
|
||||||
if(use_layer_samples != 2) {
|
render_layer.samples = 0;
|
||||||
int samples = b_rlay->samples();
|
|
||||||
if(get_boolean(cscene, "use_square_samples"))
|
|
||||||
render_layer.samples = samples * samples;
|
|
||||||
else
|
|
||||||
render_layer.samples = samples;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
first_layer = false;
|
first_layer = false;
|
||||||
|
|||||||
@@ -207,8 +207,8 @@ private:
|
|||||||
bool use_background_ao;
|
bool use_background_ao;
|
||||||
bool use_surfaces;
|
bool use_surfaces;
|
||||||
bool use_hair;
|
bool use_hair;
|
||||||
int samples;
|
int samples; /* This can be safely removed from Cycles. */
|
||||||
bool bound_samples;
|
bool bound_samples; /* This can be safely removed from Cycles. */
|
||||||
} render_layer;
|
} render_layer;
|
||||||
|
|
||||||
Progress &progress;
|
Progress &progress;
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ void BKE_layer_sync_object_unlink(const struct Scene *scene, struct SceneCollect
|
|||||||
/* override */
|
/* 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_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 */
|
/* engine settings */
|
||||||
typedef void (*EngineSettingsCB)(struct RenderEngine *engine, struct IDProperty *props);
|
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;
|
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 */
|
/* Engine Settings */
|
||||||
|
|
||||||
|
|||||||
@@ -306,6 +306,16 @@ void do_versions_after_linking_280(Main *main)
|
|||||||
|
|
||||||
SceneLayer *scene_layer = BKE_scene_layer_add(scene, srl->name);
|
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) {
|
if (srl->mat_override) {
|
||||||
BKE_override_scene_layer_datablock_add(
|
BKE_override_scene_layer_datablock_add(
|
||||||
scene_layer,
|
scene_layer,
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ typedef struct SceneRenderLayer {
|
|||||||
int passflag; /* pass_xor has to be after passflag */
|
int passflag; /* pass_xor has to be after passflag */
|
||||||
int pass_xor;
|
int pass_xor;
|
||||||
|
|
||||||
int samples;
|
int samples DNA_DEPRECATED; /* Converted to SceneLayer override. */
|
||||||
float pass_alpha_threshold;
|
float pass_alpha_threshold;
|
||||||
|
|
||||||
IDProperty *prop;
|
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);
|
else RNA_def_property_clear_flag(prop, PROP_EDITABLE);
|
||||||
|
|
||||||
if (scene) {
|
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);
|
prop = RNA_def_property(srna, "pass_alpha_threshold", PROP_FLOAT, PROP_FACTOR);
|
||||||
RNA_def_property_ui_text(prop, "Alpha Threshold",
|
RNA_def_property_ui_text(prop, "Alpha Threshold",
|
||||||
"Z, Index, normal, UV and vector passes are only affected by surfaces with "
|
"Z, Index, normal, UV and vector passes are only affected by surfaces with "
|
||||||
|
|||||||
Reference in New Issue
Block a user