@@ -2562,13 +2562,9 @@ void RasterizerSceneGLES3::render_scene(const Ref<RenderSceneBuffers> &p_render_
25622562 glBindFramebuffer (GL_FRAMEBUFFER, fbo);
25632563 glViewport (0 , 0 , rb->internal_size .x , rb->internal_size .y );
25642564
2565- scene_state.reset_gl_state ();
2566-
25672565 // If SSAO is enabled, we definitely need the depth buffer.
2568- if (render_data.environment .is_valid ()) {
2569- if (environment_get_ssao_enabled (render_data.environment )) {
2570- scene_state.used_depth_texture = true ;
2571- }
2566+ if (ssao_enabled) {
2567+ scene_state.used_depth_texture = true ;
25722568 }
25732569
25742570 // Do depth prepass if it's explicitly enabled
@@ -2861,17 +2857,11 @@ void RasterizerSceneGLES3::_render_post_processing(const RenderDataGLES3 *p_rend
28612857 if (p_render_data->environment .is_valid ()) {
28622858 ssao_enabled = environment_get_ssao_enabled (p_render_data->environment );
28632859 // This SSAO is not implemented the same way, but uses the intensity and radius
2864- // in a similar way. The 'detail' value is used as the distance falloff control.
2865- // The parameters are scaled so the SSAO defaults look good (though different).
2860+ // in a similar way. The parameters are scaled so the SSAO defaults look ok.
28662861 ssao_strength = environment_get_ssao_intensity (p_render_data->environment ) * 2.0 ;
28672862 ssao_radius = environment_get_ssao_radius (p_render_data->environment ) * 0.5 ;
28682863 }
28692864
2870- if (ssao_enabled) {
2871- // I think this already happened?
2872- // rb->check_backbuffer(scene_state.used_screen_texture, scene_state.used_depth_texture);
2873- }
2874-
28752865 uint64_t bcs_spec_constants = 0 ;
28762866 if (p_render_data->environment .is_valid ()) {
28772867 bool use_bcs = environment_get_adjustments_enabled (p_render_data->environment );
@@ -2940,10 +2930,9 @@ void RasterizerSceneGLES3::_render_post_processing(const RenderDataGLES3 *p_rend
29402930
29412931 // Copy color buffer
29422932 post_effects->post_copy (fbo_rt, target_size, color,
2943- depth_buffer, ssao_enabled, ssao_quality, ssao_strength, ssao_radius, // These are new for SSAO.
2944- internal_size, p_render_data->luminance_multiplier , glow_buffers, glow_intensity,
2945- srgb_white,
2946- 0 , false , bcs_spec_constants);
2933+ depth_buffer, ssao_enabled, ssao_quality, ssao_strength, ssao_radius,
2934+ internal_size, p_render_data->luminance_multiplier , glow_buffers, glow_intensity,
2935+ srgb_white, 0 , false , bcs_spec_constants);
29472936
29482937 // Copy depth buffer
29492938 glBindFramebuffer (GL_READ_FRAMEBUFFER, fbo_int);
@@ -3015,14 +3004,12 @@ void RasterizerSceneGLES3::_render_post_processing(const RenderDataGLES3 *p_rend
30153004 glBindFramebuffer (GL_FRAMEBUFFER, fbos[2 ]);
30163005 glFramebufferTextureLayer (GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, write_color, 0 , v);
30173006 post_effects->post_copy (fbos[2 ], target_size, source_color,
3018- read_depth, ssao_enabled, ssao_quality, ssao_strength, ssao_radius, // These are new for SSAO.
3019- internal_size, p_render_data->luminance_multiplier , glow_buffers, glow_intensity,
3020- srgb_white,
3021- v, true , bcs_spec_constants);
3007+ read_depth, ssao_enabled, ssao_quality, ssao_strength, ssao_radius,
3008+ internal_size, p_render_data->luminance_multiplier , glow_buffers, glow_intensity,
3009+ srgb_white, v, true , bcs_spec_constants);
30223010 }
30233011
30243012 // Copy depth
3025- // GLuint read_depth = rb->get_internal_depth();
30263013 GLuint write_depth = texture_storage->render_target_get_depth (render_target);
30273014
30283015 glBindFramebuffer (GL_READ_FRAMEBUFFER, fbos[0 ]);
0 commit comments