Commit: 1159d8ccc9649fe1da7cfab006c19843e19eb61d
Author: Clément Foucault
Date:   Thu Jun 22 02:30:20 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB1159d8ccc9649fe1da7cfab006c19843e19eb61d

Eevee: Ambient Occlusion: Add UI properties.

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

M       release/scripts/startup/bl_ui/properties_render.py
M       release/scripts/startup/bl_ui/properties_render_layer.py
M       source/blender/draw/engines/eevee/eevee_engine.c
M       source/blender/makesrna/intern/rna_scene.c

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

diff --git a/release/scripts/startup/bl_ui/properties_render.py 
b/release/scripts/startup/bl_ui/properties_render.py
index ad210498126..bd599bc0cb4 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -631,6 +631,7 @@ class 
RENDER_PT_eevee_poststack_settings(RenderButtonsPanel, Panel):
         props = scene.layer_properties['BLENDER_EEVEE']
 
         col = layout.column()
+        col.prop(props, "gtao_enable")
         col.prop(props, "motion_blur_enable")
         col.prop(props, "dof_enable")
         col.prop(props, "bloom_enable")
@@ -652,6 +653,13 @@ class 
RENDER_PT_eevee_postprocess_settings(RenderButtonsPanel, Panel):
 
         col = layout.column()
 
+        col.label("Ambient Occlusion:")
+        col.prop(props, "gtao_use_bent_normals")
+        col.prop(props, "gtao_samples")
+        col.prop(props, "gtao_distance")
+        col.prop(props, "gtao_factor")
+        col.separator()
+
         col.label("Motion Blur:")
         col.prop(props, "motion_blur_samples")
         col.prop(props, "motion_blur_shutter")
diff --git a/release/scripts/startup/bl_ui/properties_render_layer.py 
b/release/scripts/startup/bl_ui/properties_render_layer.py
index fb52fdf5fa0..4de48f00b04 100644
--- a/release/scripts/startup/bl_ui/properties_render_layer.py
+++ b/release/scripts/startup/bl_ui/properties_render_layer.py
@@ -167,6 +167,7 @@ class 
RENDERLAYER_PT_eevee_poststack_settings(RenderLayerButtonsPanel, Panel):
         layer_props = layer.engine_overrides['BLENDER_EEVEE']
 
         col = layout.column()
+        col.template_override_property(layer_props, scene_props, "gtao_enable")
         col.template_override_property(layer_props, scene_props, 
"motion_blur_enable")
         col.template_override_property(layer_props, scene_props, "dof_enable")
         col.template_override_property(layer_props, scene_props, 
"bloom_enable")
@@ -189,6 +190,13 @@ class 
RENDERLAYER_PT_eevee_postprocess_settings(RenderLayerButtonsPanel, Panel):
         layer_props = layer.engine_overrides['BLENDER_EEVEE']
 
         col = layout.column()
+        col.label("Ambient Occlusion:")
+        col.template_override_property(layer_props, scene_props, 
"gtao_use_bent_normals")
+        col.template_override_property(layer_props, scene_props, 
"gtao_samples")
+        col.template_override_property(layer_props, scene_props, 
"gtao_distance")
+        col.template_override_property(layer_props, scene_props, "gtao_factor")
+        col.separator()
+
         col.label("Motion Blur:")
         col.template_override_property(layer_props, scene_props, 
"motion_blur_samples")
         col.template_override_property(layer_props, scene_props, 
"motion_blur_shutter")
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c 
b/source/blender/draw/engines/eevee/eevee_engine.c
index a125bb97a91..8d3cf5ea077 100644
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@ -189,6 +189,12 @@ static void EEVEE_scene_layer_settings_create(RenderEngine 
*UNUSED(engine), IDPr
                   props->type == IDP_GROUP &&
                   props->subtype == IDP_GROUP_SUB_ENGINE_RENDER);
 
+       BKE_collection_engine_property_add_bool(props, "gtao_enable", false);
+       BKE_collection_engine_property_add_bool(props, "gtao_use_bent_normals", 
true);
+       BKE_collection_engine_property_add_float(props, "gtao_distance", 0.2f);
+       BKE_collection_engine_property_add_float(props, "gtao_factor", 1.0f);
+       BKE_collection_engine_property_add_int(props, "gtao_samples", 2);
+
        BKE_collection_engine_property_add_bool(props, "dof_enable", false);
        BKE_collection_engine_property_add_float(props, "bokeh_max_size", 
100.0f);
        BKE_collection_engine_property_add_float(props, "bokeh_threshold", 
1.0f);
diff --git a/source/blender/makesrna/intern/rna_scene.c 
b/source/blender/makesrna/intern/rna_scene.c
index b800cb90d8c..17d85890a0b 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -2588,6 +2588,11 @@ 
RNA_LAYER_ENGINE_CLAY_GET_SET_FLOAT(hair_brightness_randomness)
 
 /* eevee engine */
 /* SceneLayer settings. */
+RNA_LAYER_ENGINE_EEVEE_GET_SET_BOOL(gtao_enable)
+RNA_LAYER_ENGINE_EEVEE_GET_SET_BOOL(gtao_use_bent_normals)
+RNA_LAYER_ENGINE_EEVEE_GET_SET_FLOAT(gtao_factor)
+RNA_LAYER_ENGINE_EEVEE_GET_SET_FLOAT(gtao_distance)
+RNA_LAYER_ENGINE_EEVEE_GET_SET_INT(gtao_samples)
 RNA_LAYER_ENGINE_EEVEE_GET_SET_BOOL(dof_enable)
 RNA_LAYER_ENGINE_EEVEE_GET_SET_FLOAT(bokeh_max_size)
 RNA_LAYER_ENGINE_EEVEE_GET_SET_FLOAT(bokeh_threshold)
@@ -6152,6 +6157,46 @@ static void 
rna_def_scene_layer_engine_settings_eevee(BlenderRNA *brna)
        RNA_define_verify_sdna(0); /* not in sdna */
 
        /* see RNA_LAYER_ENGINE_GET_SET macro */
+
+       /* Ambient Occlusion */
+       prop = RNA_def_property(srna, "gtao_enable", PROP_BOOLEAN, PROP_NONE);
+       RNA_def_property_boolean_funcs(prop, 
"rna_LayerEngineSettings_Eevee_gtao_enable_get",
+                                      
"rna_LayerEngineSettings_Eevee_gtao_enable_set");
+       RNA_def_property_ui_text(prop, "Ambient Occlusion", "Enable ambient 
occlusion to simulate medium scale indirect shadowing");
+       RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE);
+       RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, 
"rna_SceneLayerEngineSettings_update");
+
+       prop = RNA_def_property(srna, "gtao_use_bent_normals", PROP_BOOLEAN, 
PROP_NONE);
+       RNA_def_property_boolean_funcs(prop, 
"rna_LayerEngineSettings_Eevee_gtao_use_bent_normals_get",
+                                      
"rna_LayerEngineSettings_Eevee_gtao_use_bent_normals_set");
+       RNA_def_property_ui_text(prop, "Bent Normals", "Compute main non 
occluded direction to sample the environment");
+       RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE);
+       RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, 
"rna_SceneLayerEngineSettings_update");
+
+       prop = RNA_def_property(srna, "gtao_factor", PROP_FLOAT, PROP_FACTOR);
+       RNA_def_property_float_funcs(prop, 
"rna_LayerEngineSettings_Eevee_gtao_factor_get", 
"rna_LayerEngineSettings_Eevee_gtao_factor_set", NULL);
+       RNA_def_property_ui_text(prop, "Factor", "Factor for ambient occlusion 
blending");
+       RNA_def_property_range(prop, 0, FLT_MAX);
+       RNA_def_property_ui_range(prop, 0.0, 1.0, 0.1, 2);
+       RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE);
+       RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, 
"rna_LayerCollectionEngineSettings_update");
+
+       prop = RNA_def_property(srna, "gtao_distance", PROP_FLOAT, PROP_NONE);
+       RNA_def_property_float_funcs(prop, 
"rna_LayerEngineSettings_Eevee_gtao_distance_get", 
"rna_LayerEngineSettings_Eevee_gtao_distance_set", NULL);
+       RNA_def_property_ui_text(prop, "Distance", "Distance of object that 
contribute to the ambient occlusion effect");
+       RNA_def_property_range(prop, 0.0f, 100000.0f);
+       RNA_def_property_ui_range(prop, 0.0f, 100.0f, 1, 3);
+       RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE);
+       RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, 
"rna_LayerCollectionEngineSettings_update");
+
+       prop = RNA_def_property(srna, "gtao_samples", PROP_INT, PROP_UNSIGNED);
+       RNA_def_property_int_funcs(prop, 
"rna_LayerEngineSettings_Eevee_gtao_samples_get",
+                                  
"rna_LayerEngineSettings_Eevee_gtao_samples_set", NULL);
+       RNA_def_property_ui_text(prop, "Samples", "Number of samples to take to 
compute occlusion");
+       RNA_def_property_range(prop, 2, 32);
+       RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE);
+       RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, 
"rna_SceneLayerEngineSettings_update");
+
        /* Depth of Field */
        prop = RNA_def_property(srna, "dof_enable", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_funcs(prop, 
"rna_LayerEngineSettings_Eevee_dof_enable_get",

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to