Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/intern/scene.c')
-rw-r--r--source/blender/blenkernel/intern/scene.c100
1 files changed, 68 insertions, 32 deletions
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index b810ff0b393..ea0498930ff 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -248,8 +248,7 @@ void BKE_scene_copy_data(Main *bmain, Scene *sce_dst, const Scene *sce_src, cons
sce_dst->master_collection = BKE_collection_copy_master(bmain, sce_src->master_collection, flag);
}
- /* layers */
- IDPropertyTemplate val = {0};
+ /* View Layers */
BLI_duplicatelist(&sce_dst->view_layers, &sce_src->view_layers);
for (ViewLayer *view_layer_src = sce_src->view_layers.first, *view_layer_dst = sce_dst->view_layers.first;
view_layer_src;
@@ -258,15 +257,6 @@ void BKE_scene_copy_data(Main *bmain, Scene *sce_dst, const Scene *sce_src, cons
BKE_view_layer_copy_data(sce_dst, sce_src, view_layer_dst, view_layer_src, flag_subdata);
}
- sce_dst->collection_properties = IDP_New(IDP_GROUP, &val, ROOT_PROP);
- if (sce_src->collection_properties) {
- IDP_MergeGroup_ex(sce_dst->collection_properties, sce_src->collection_properties, true, flag_subdata);
- }
- sce_dst->layer_properties = IDP_New(IDP_GROUP, &val, ROOT_PROP);
- if (sce_src->layer_properties) {
- IDP_MergeGroup_ex(sce_dst->layer_properties, sce_src->layer_properties, true, flag_subdata);
- }
-
BLI_duplicatelist(&(sce_dst->markers), &(sce_src->markers));
BLI_duplicatelist(&(sce_dst->transform_spaces), &(sce_src->transform_spaces));
BLI_duplicatelist(&(sce_dst->r.views), &(sce_src->r.views));
@@ -526,19 +516,8 @@ void BKE_scene_free_ex(Scene *sce, const bool do_id_user)
sce->master_collection = NULL;
}
- /* LayerCollection engine settings. */
- if (sce->collection_properties) {
- IDP_FreeProperty(sce->collection_properties);
- MEM_freeN(sce->collection_properties);
- sce->collection_properties = NULL;
- }
-
- /* Render engine setting. */
- if (sce->layer_properties) {
- IDP_FreeProperty(sce->layer_properties);
- MEM_freeN(sce->layer_properties);
- sce->layer_properties = NULL;
- }
+ /* These are freed on doversion. */
+ BLI_assert(sce->layer_properties == NULL);
}
void BKE_scene_free(Scene *sce)
@@ -818,19 +797,76 @@ void BKE_scene_init(Scene *sce)
/* Master Collection */
sce->master_collection = BKE_collection_master_add();
- /* Engine settings */
- IDPropertyTemplate val = {0};
- sce->collection_properties = IDP_New(IDP_GROUP, &val, ROOT_PROP);
- BKE_layer_collection_engine_settings_create(sce->collection_properties);
-
- sce->layer_properties = IDP_New(IDP_GROUP, &val, ROOT_PROP);
- BKE_view_layer_engine_settings_create(sce->layer_properties);
-
BKE_view_layer_add(sce, "View Layer");
/* SceneDisplay */
copy_v3_v3(sce->display.light_direction, (float[3]){-M_SQRT1_3, -M_SQRT1_3, M_SQRT1_3});
sce->display.shadow_shift = 0.1;
+
+ sce->display.matcap_icon = 1;
+ sce->display.matcap_type = CLAY_MATCAP_NONE;
+ sce->display.matcap_hue = 0.5f;
+ sce->display.matcap_saturation = 0.5f;
+ sce->display.matcap_value = 0.5f;
+ sce->display.matcap_ssao_distance = 0.2f;
+ sce->display.matcap_ssao_attenuation = 1.0f;
+ sce->display.matcap_ssao_factor_cavity = 1.0f;
+ sce->display.matcap_ssao_factor_edge = 1.0f;
+ sce->display.matcap_ssao_samples = 16;
+
+ /* SceneEEVEE */
+ sce->eevee.gi_diffuse_bounces = 3;
+ sce->eevee.gi_cubemap_resolution = 512;
+ sce->eevee.gi_visibility_resolution = 32;
+
+ sce->eevee.taa_samples = 16;
+ sce->eevee.taa_render_samples = 64;
+
+ sce->eevee.sss_samples = 7;
+ sce->eevee.sss_jitter_threshold = 0.3f;
+
+ sce->eevee.ssr_quality = 0.25f;
+ sce->eevee.ssr_max_roughness = 0.5f;
+ sce->eevee.ssr_thickness = 0.2f;
+ sce->eevee.ssr_border_fade = 0.075f;
+ sce->eevee.ssr_firefly_fac = 10.0f;
+
+ sce->eevee.volumetric_start = 0.1f;
+ sce->eevee.volumetric_end = 100.0f;
+ sce->eevee.volumetric_tile_size = 8;
+ sce->eevee.volumetric_samples = 64;
+ sce->eevee.volumetric_sample_distribution = 0.8f;
+ sce->eevee.volumetric_light_clamp = 0.0f;
+ sce->eevee.volumetric_shadow_samples = 16;
+
+ sce->eevee.gtao_distance = 0.2f;
+ sce->eevee.gtao_factor = 1.0f;
+ sce->eevee.gtao_quality = 0.25f;
+
+ sce->eevee.bokeh_max_size = 100.0f;
+ sce->eevee.bokeh_threshold = 1.0f;
+
+ copy_v3_fl(sce->eevee.bloom_color, 1.0f);
+ sce->eevee.bloom_threshold = 0.8f;
+ sce->eevee.bloom_knee = 0.5f;
+ sce->eevee.bloom_intensity = 0.8f;
+ sce->eevee.bloom_radius = 6.5f;
+ sce->eevee.bloom_clamp = 1.0f;
+
+ sce->eevee.motion_blur_samples = 8;
+ sce->eevee.motion_blur_shutter = 1.0f;
+
+ sce->eevee.shadow_method = SHADOW_ESM;
+ sce->eevee.shadow_cube_size = 512;
+ sce->eevee.shadow_cascade_size = 1024;
+
+ sce->eevee.flag =
+ SCE_EEVEE_VOLUMETRIC_LIGHTS |
+ SCE_EEVEE_VOLUMETRIC_COLORED |
+ SCE_EEVEE_GTAO_BENT_NORMALS |
+ SCE_EEVEE_GTAO_BOUNCE |
+ SCE_EEVEE_TAA_REPROJECTION |
+ SCE_EEVEE_SSR_HALF_RESOLUTION;
}
Scene *BKE_scene_add(Main *bmain, const char *name)