[Bf-blender-cvs] [9fd28c77693] blender2.8: Eevee: AO: Removes samples and denoise options.

Clément Foucault noreply at git.blender.org
Tue Jan 16 18:22:42 CET 2018


Commit: 9fd28c776938fe420782a6339e9da7c619724dae
Author: Clément Foucault
Date:   Tue Jan 16 18:21:56 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB9fd28c776938fe420782a6339e9da7c619724dae

Eevee: AO: Removes samples and denoise options.

This comes with a lot of code simplification that leads to a small performance improvement.

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

M	release/scripts/startup/bl_ui/properties_render.py
M	release/scripts/startup/bl_ui/properties_view_layer.py
M	source/blender/draw/engines/eevee/eevee_effects.c
M	source/blender/draw/engines/eevee/eevee_engine.c
M	source/blender/draw/engines/eevee/eevee_lightprobes.c
M	source/blender/draw/engines/eevee/eevee_materials.c
M	source/blender/draw/engines/eevee/eevee_occlusion.c
M	source/blender/draw/engines/eevee/eevee_private.h
M	source/blender/draw/engines/eevee/eevee_screen_raytrace.c
M	source/blender/draw/engines/eevee/shaders/ambient_occlusion_lib.glsl
M	source/blender/draw/engines/eevee/shaders/effect_gtao_frag.glsl
M	source/blender/draw/engines/eevee/shaders/effect_ssr_frag.glsl
M	source/blender/draw/engines/eevee/shaders/lit_surface_frag.glsl
M	source/blender/makesrna/intern/rna_layer.c

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

diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py
index d076f6f4fdb..e9a41f33335 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -633,9 +633,7 @@ class RENDER_PT_eevee_ambient_occlusion(RenderButtonsPanel, Panel):
         layout.active = props.gtao_enable
         col = layout.column()
         col.prop(props, "gtao_use_bent_normals")
-        col.prop(props, "gtao_denoise")
         col.prop(props, "gtao_bounce")
-        col.prop(props, "gtao_samples")
         col.prop(props, "gtao_distance")
         col.prop(props, "gtao_factor")
         col.prop(props, "gtao_quality")
diff --git a/release/scripts/startup/bl_ui/properties_view_layer.py b/release/scripts/startup/bl_ui/properties_view_layer.py
index 31168a16a5c..9d3183f45e7 100644
--- a/release/scripts/startup/bl_ui/properties_view_layer.py
+++ b/release/scripts/startup/bl_ui/properties_view_layer.py
@@ -178,9 +178,7 @@ class VIEWLAYER_PT_eevee_ambient_occlusion(ViewLayerButtonsPanel, Panel):
 
         col = layout.column()
         col.template_override_property(layer_props, scene_props, "gtao_use_bent_normals")
-        col.template_override_property(layer_props, scene_props, "gtao_denoise")
         col.template_override_property(layer_props, scene_props, "gtao_bounce")
-        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.template_override_property(layer_props, scene_props, "gtao_quality")
diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c
index 5322f84679b..c09e180b36d 100644
--- a/source/blender/draw/engines/eevee/eevee_effects.c
+++ b/source/blender/draw/engines/eevee/eevee_effects.c
@@ -456,6 +456,9 @@ void EEVEE_draw_effects(EEVEE_Data *vedata)
 			if (stl->g_data->gtao_horizons_debug) DRW_transform_to_display(stl->g_data->gtao_horizons_debug);
 			break;
 		case 7:
+			if (txl->gtao_horizons) DRW_transform_to_display(txl->gtao_horizons);
+			break;
+		case 8:
 			if (txl->sss_data) DRW_transform_to_display(txl->sss_data);
 			break;
 		default:
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c
index 678501528c8..b59f2cd8c0b 100644
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@ -381,12 +381,10 @@ static void eevee_view_layer_settings_create(RenderEngine *UNUSED(engine), IDPro
 
 	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_bool(props, "gtao_denoise", true);
 	BKE_collection_engine_property_add_bool(props, "gtao_bounce", 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_float(props, "gtao_quality", 0.25f);
-	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);
diff --git a/source/blender/draw/engines/eevee/eevee_lightprobes.c b/source/blender/draw/engines/eevee/eevee_lightprobes.c
index 7edf9013239..dd49ae0481e 100644
--- a/source/blender/draw/engines/eevee/eevee_lightprobes.c
+++ b/source/blender/draw/engines/eevee/eevee_lightprobes.c
@@ -1113,7 +1113,7 @@ static void render_scene_to_probe(
 	EEVEE_StorageList *stl = vedata->stl;
 	EEVEE_LightProbesInfo *pinfo = sldata->probes;
 
-	float winmat[4][4], wininv[4][4], posmat[4][4], tmp_ao_dist, tmp_ao_samples, tmp_ao_settings;
+	float winmat[4][4], wininv[4][4], posmat[4][4], tmp_ao_dist, tmp_ao_settings;
 
 	unit_m4(posmat);
 
@@ -1127,7 +1127,6 @@ static void render_scene_to_probe(
 
 	/* Disable AO until we find a way to hide really bad discontinuities between cubefaces. */
 	tmp_ao_dist = stl->effects->ao_dist;
-	tmp_ao_samples = stl->effects->ao_samples;
 	tmp_ao_settings = stl->effects->ao_settings;
 	stl->effects->ao_settings = 0.0f; /* Disable AO */
 
@@ -1214,7 +1213,6 @@ static void render_scene_to_probe(
 	stl->g_data->minzbuffer = tmp_minz;
 	txl->maxzbuffer = tmp_maxz;
 	stl->effects->ao_dist = tmp_ao_dist;
-	stl->effects->ao_samples = tmp_ao_samples;
 	stl->effects->ao_settings = tmp_ao_settings;
 }
 
diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c
index 31cda5936ad..f4bef9afed1 100644
--- a/source/blender/draw/engines/eevee/eevee_materials.c
+++ b/source/blender/draw/engines/eevee/eevee_materials.c
@@ -395,11 +395,10 @@ static void add_standard_uniforms(
 
 	if (vedata->stl->effects->use_ao) {
 		DRW_shgroup_uniform_buffer(shgrp, "horizonBuffer", &vedata->txl->gtao_horizons);
-		DRW_shgroup_uniform_ivec2(shgrp, "aoHorizonTexSize", (int *)vedata->stl->effects->ao_texsize, 1);
 	}
 	else {
-		/* Use shadow_pool as fallback to avoid sampling problem on certain platform, see: T52593 */
-		DRW_shgroup_uniform_buffer(shgrp, "horizonBuffer", &sldata->shadow_pool);
+		/* Use maxzbuffer as fallback to avoid sampling problem on certain platform, see: T52593 */
+		DRW_shgroup_uniform_buffer(shgrp, "horizonBuffer", &vedata->txl->maxzbuffer);
 	}
 
 	if (vedata->stl->effects->use_volumetrics && use_alpha_blend) {
diff --git a/source/blender/draw/engines/eevee/eevee_occlusion.c b/source/blender/draw/engines/eevee/eevee_occlusion.c
index 02b52f75e8a..0ae5fb91db3 100644
--- a/source/blender/draw/engines/eevee/eevee_occlusion.c
+++ b/source/blender/draw/engines/eevee/eevee_occlusion.c
@@ -72,7 +72,9 @@ int EEVEE_occlusion_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata
 
 	const DRWContextState *draw_ctx = DRW_context_state_get();
 	ViewLayer *view_layer = draw_ctx->view_layer;
-	IDProperty *props = BKE_view_layer_engine_evaluated_get(view_layer, COLLECTION_MODE_NONE, RE_engine_id_BLENDER_EEVEE);
+	IDProperty *props = BKE_view_layer_engine_evaluated_get(view_layer,
+	                                                        COLLECTION_MODE_NONE,
+	                                                        RE_engine_id_BLENDER_EEVEE);
 
 	if (BKE_collection_engine_property_value_get_bool(props, "gtao_enable")) {
 		const float *viewport_size = DRW_viewport_size_get();
@@ -85,8 +87,6 @@ int EEVEE_occlusion_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata
 		effects->ao_dist = BKE_collection_engine_property_value_get_float(props, "gtao_distance");
 		effects->ao_factor = BKE_collection_engine_property_value_get_float(props, "gtao_factor");
 		effects->ao_quality = 1.0f - BKE_collection_engine_property_value_get_float(props, "gtao_quality");
-		effects->ao_samples = BKE_collection_engine_property_value_get_int(props, "gtao_samples");
-		effects->ao_samples_inv = 1.0f / effects->ao_samples;
 
 		effects->ao_settings = 1.0; /* USE_AO */
 		if (BKE_collection_engine_property_value_get_bool(props, "gtao_use_bent_normals")) {
@@ -101,29 +101,10 @@ int EEVEE_occlusion_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata
 		effects->ao_texsize[0] = ((int)viewport_size[0]);
 		effects->ao_texsize[1] = ((int)viewport_size[1]);
 
-		/* Round up to multiple of 2 */
-		if ((effects->ao_texsize[0] & 0x1) != 0) {
-			effects->ao_texsize[0] += 1;
-		}
-		if ((effects->ao_texsize[1] & 0x1) != 0) {
-			effects->ao_texsize[1] += 1;
-		}
-
-		CLAMP(effects->ao_samples, 1, 32);
-
-		if (effects->hori_tex_layers != effects->ao_samples) {
-			DRW_TEXTURE_FREE_SAFE(txl->gtao_horizons);
-		}
-
-		if (txl->gtao_horizons == NULL) {
-			effects->hori_tex_layers = effects->ao_samples;
-			txl->gtao_horizons = DRW_texture_create_2D_array((int)viewport_size[0], (int)viewport_size[1], effects->hori_tex_layers, DRW_TEX_RG_8, 0, NULL);
-		}
-
-		DRWFboTexture tex = {&txl->gtao_horizons, DRW_TEX_RG_8, 0};
+		DRWFboTexture tex = {&txl->gtao_horizons, DRW_TEX_RGBA_8, 0};
 
 		DRW_framebuffer_init(&fbl->gtao_fb, &draw_engine_eevee_type,
-		                    effects->ao_texsize[0], effects->ao_texsize[1],
+		                    (int)viewport_size[0], (int)viewport_size[1],
 		                    &tex, 1);
 
 		if (G.debug_value == 6) {
@@ -174,8 +155,6 @@ void EEVEE_occlusion_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data
 		DRW_shgroup_uniform_vec4(grp, "viewvecs[0]", (float *)stl->g_data->viewvecs, 2);
 		DRW_shgroup_uniform_vec2(grp, "mipRatio[0]", (float *)stl->g_data->mip_ratio, 10);
 		DRW_shgroup_uniform_vec4(grp, "aoParameters[0]", &stl->effects->ao_dist, 2);
-		DRW_shgroup_uniform_float(grp, "sampleNbr", &stl->effects->ao_sample_nbr, 1);
-		DRW_shgroup_uniform_ivec2(grp, "aoHorizonTexSize", (int *)stl->effects->ao_texsize, 1);
 		DRW_shgroup_uniform_texture(grp, "utilTex", EEVEE_materials_get_util_tex());
 		DRW_shgroup_call_add(grp, quad, NULL);
 
@@ -187,8 +166,6 @@ void EEVEE_occlusion_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data
 		DRW_shgroup_uniform_vec4(grp, "viewvecs[0]", (float *)stl->g_data->viewvecs, 2);
 		DRW_shgroup_uniform_vec2(grp, "mipRatio[0]", (float *)stl->g_data->mip_ratio, 10);
 		DRW_shgroup_uniform_vec4(grp, "aoParameters[0]", &stl->effects->ao_dist, 2);
-		DRW_shgroup_uniform_float(grp, "sampleNbr", &stl->effects->ao_sample_nbr, 1);
-		DRW_shgroup_uniform_ivec2(grp, "aoHorizonTexSize", (int *)stl->effects->ao_texsize, 1);
 		DRW_shgroup_uniform_texture(grp, "utilTex", EEVEE_materials_get_util_tex());
 		DRW_shgroup_call_add(grp, quad, NULL);
 
@@ -202,7 +179,6 @@ void EEVEE_occlusion_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data
 			DRW_shgroup_uniform_vec4(grp, "viewvecs[0]", (float *)stl->g_data->viewvecs, 2);
 			DRW_shgroup_uniform_vec2(grp, "mipRatio[0]", (float *)stl->g_data->mip_ratio, 10);
 			DRW_shgroup_uniform_vec4(grp, "aoParameters[0]", &stl->effects->ao_dist, 2);
-			DRW_shgroup_uniform_ivec2(grp, "aoHorizonTexSize", (int 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list