2
0
Эх сурвалжийг харах

enabled ambient_light_disabled render mode flag

Logan Lang 3 жил өмнө
parent
commit
e61d8b6f53

+ 8 - 2
drivers/gles3/shaders/scene.glsl

@@ -1096,9 +1096,15 @@ void main() {
 #if defined(CUSTOM_IRRADIANCE_USED)
 	ambient_light = mix(ambient_light, custom_irradiance.rgb, custom_irradiance.a);
 #endif // CUSTOM_IRRADIANCE_USED
-	ambient_light *= albedo.rgb;
 
-	ambient_light *= ao;
+	{
+#if defined(AMBIENT_LIGHT_DISABLED)
+		ambient_light = vec3(0.0, 0.0, 0.0);
+#else
+		ambient_light *= albedo.rgb;
+		ambient_light *= ao;
+#endif // AMBIENT_LIGHT_DISABLED
+	}
 
 	// convert ao to direct light ao
 	ao = mix(1.0, ao, ao_light_affect);

+ 12 - 9
servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl

@@ -1374,16 +1374,19 @@ void fragment_shader(in SceneData scene_data) {
 	}
 
 	//finalize ambient light here
-	ambient_light *= albedo.rgb;
-	ambient_light *= ao;
-
-	// convert ao to direct light ao
-	ao = mix(1.0, ao, ao_light_affect);
+	{
+#if defined(AMBIENT_LIGHT_DISABLED)
+		ambient_light = vec3(0.0, 0.0, 0.0);
+#else
+		ambient_light *= albedo.rgb;
+		ambient_light *= ao;
 
-	if (bool(implementation_data.ss_effects_flags & SCREEN_SPACE_EFFECTS_FLAGS_USE_SSIL)) {
-		vec4 ssil = textureLod(sampler2D(ssil_buffer, material_samplers[SAMPLER_LINEAR_CLAMP]), screen_uv, 0.0);
-		ambient_light *= 1.0 - ssil.a;
-		ambient_light += ssil.rgb * albedo.rgb;
+		if (bool(scene_data.ss_effects_flags & SCREEN_SPACE_EFFECTS_FLAGS_USE_SSIL)) {
+			vec4 ssil = textureLod(sampler2D(ssil_buffer, material_samplers[SAMPLER_LINEAR_CLAMP]), screen_uv, 0.0);
+			ambient_light *= 1.0 - ssil.a;
+			ambient_light += ssil.rgb * albedo.rgb;
+		}
+#endif // AMBIENT_LIGHT_DISABLED
 	}
 
 	//this saves some VGPRs

+ 8 - 2
servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl

@@ -1100,8 +1100,14 @@ void main() {
 	} //Reflection probes
 
 	// finalize ambient light here
-	ambient_light *= albedo.rgb;
-	ambient_light *= ao;
+	{
+#if defined(AMBIENT_LIGHT_DISABLED)
+		ambient_light = vec3(0.0, 0.0, 0.0);
+#else
+		ambient_light *= albedo.rgb;
+		ambient_light *= ao;
+#endif // AMBIENT_LIGHT_DISABLED
+	}
 
 	// convert ao to direct light ao
 	ao = mix(1.0, ao, ao_light_affect);