Eevee: Ambient Occlusion: Enable Multibounce approximation and Change influence factor.
Making the influence a power for easy tuning. Works like a contrast knob.
This commit is contained in:
@@ -391,7 +391,7 @@ void EEVEE_effects_init(EEVEE_Data *vedata)
|
||||
/* Ambient Occlusion*/
|
||||
stl->effects->ao_dist = BKE_collection_engine_property_value_get_float(props, "gtao_distance");
|
||||
stl->effects->ao_samples = BKE_collection_engine_property_value_get_int(props, "gtao_samples");
|
||||
stl->effects->ao_factor = 1.0f - BKE_collection_engine_property_value_get_float(props, "gtao_factor");
|
||||
stl->effects->ao_factor = BKE_collection_engine_property_value_get_float(props, "gtao_factor");
|
||||
}
|
||||
|
||||
/* MinMax Pyramid */
|
||||
|
||||
@@ -124,7 +124,7 @@ void gtao(vec3 normal, vec3 position, vec2 noise, out float visibility
|
||||
#endif
|
||||
}
|
||||
|
||||
visibility = min(1.0, visibility / aoSamples);
|
||||
visibility = clamp(visibility / aoSamples, 1e-8, 1.0);
|
||||
|
||||
#ifdef USE_BENT_NORMAL
|
||||
/* The bent normal will show the facet look of the mesh. Try to minimize this. */
|
||||
@@ -132,7 +132,7 @@ void gtao(vec3 normal, vec3 position, vec2 noise, out float visibility
|
||||
#endif
|
||||
|
||||
/* Scale by user factor */
|
||||
visibility = max(0.0, mix(aoFactor, 1.0, visibility));
|
||||
visibility = pow(visibility, aoFactor);
|
||||
}
|
||||
|
||||
/* Multibounce approximation base on surface albedo.
|
||||
|
||||
@@ -494,7 +494,7 @@ vec3 eevee_surface_lit(vec3 world_normal, vec3 albedo, vec3 f0, float roughness,
|
||||
|
||||
vec3 indirect_radiance =
|
||||
spec_accum.rgb * F_ibl(f0, brdf_lut) * float(specToggle) * specular_occlusion(dot(sd.N, sd.V), final_ao, roughness) +
|
||||
diff_accum.rgb * albedo * final_ao;
|
||||
diff_accum.rgb * albedo * gtao_multibounce(final_ao, albedo);
|
||||
|
||||
return radiance + indirect_radiance;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user