Source:
<code>public AmbientOcclusionNode(Context context) { super(context); activeCamera = context.get(WorldRenderer.class).getActiveCamera(); RenderingConfig renderingConfig = context.get(Config.class).getRendering(); renderingConfig.subscribe(RenderingConfig.SSAO, this); requiresCondition(renderingConfig::isSsao); addDesiredStateChange(new EnableMaterial(SSAO_MATERIAL_URN)); ssaoMaterial = getMaterial(SSAO_MATERIAL_URN); DisplayResolutionDependentFBOs displayResolutionDependentFBOs = context.get(DisplayResolutionDependentFBOs.class); ssaoFbo = requiresFBO(new FBOConfig(SSAO_FBO_URI, FULL_SCALE, FBO.Type.DEFAULT), displayResolutionDependentFBOs); addDesiredStateChange(new BindFbo(ssaoFbo)); addDesiredStateChange(new SetViewportToSizeOf(ssaoFbo)); propertyChange(null); <START> displayResolutionDependentFBOs.subscribe(DisplayResolutionDependentFBOs.POST_FBO_REGENERATION, this); <END> FBO lastUpdatedGBuffer = displayResolutionDependentFBOs.getGBufferPair().getLastUpdatedFbo(); int texId = 0; addDesiredStateChange(new SetInputTextureFromFbo(texId++, lastUpdatedGBuffer, DepthStencilTexture, displayResolutionDependentFBOs, SSAO_MATERIAL_URN, "texDepth")); addDesiredStateChange(new SetInputTextureFromFbo(texId++, lastUpdatedGBuffer, NormalsTexture, displayResolutionDependentFBOs, SSAO_MATERIAL_URN, "texNormals")); addDesiredStateChange(new SetInputTexture2D(texId, generateNoiseTexture().getId(), SSAO_MATERIAL_URN, "texNoise")); if (ssaoSamples == null) { createSamplesBuffer(); } }</code><technical_language>remove DisplayResolutionDependentFBOs. part please. a short string left it, do FBO.HDR for example. in this case important information is event type POST_FBO_REGENERATION a good amount of information already</technical_language>

Target:
public AmbientOcclusionNode(Context context) { super(context); activeCamera = context.get(WorldRenderer.class).getActiveCamera(); RenderingConfig renderingConfig = context.get(Config.class).getRendering(); renderingConfig.subscribe(RenderingConfig.SSAO, this); requiresCondition(renderingConfig::isSsao); addDesiredStateChange(new EnableMaterial(SSAO_MATERIAL_URN)); ssaoMaterial = getMaterial(SSAO_MATERIAL_URN); DisplayResolutionDependentFBOs displayResolutionDependentFBOs = context.get(DisplayResolutionDependentFBOs.class); ssaoFbo = requiresFBO(new FBOConfig(SSAO_FBO_URI, FULL_SCALE, FBO.Type.DEFAULT), displayResolutionDependentFBOs); addDesiredStateChange(new BindFbo(ssaoFbo)); addDesiredStateChange(new SetViewportToSizeOf(ssaoFbo)); propertyChange(null); displayResolutionDependentFBOs.subscribe(POST_FBO_REGENERATION, this); FBO lastUpdatedGBuffer = displayResolutionDependentFBOs.getGBufferPair().getLastUpdatedFbo(); int texId = 0; addDesiredStateChange(new SetInputTextureFromFbo(texId++, lastUpdatedGBuffer, DepthStencilTexture, displayResolutionDependentFBOs, SSAO_MATERIAL_URN, "texDepth")); addDesiredStateChange(new SetInputTextureFromFbo(texId++, lastUpdatedGBuffer, NormalsTexture, displayResolutionDependentFBOs, SSAO_MATERIAL_URN, "texNormals")); addDesiredStateChange(new SetInputTexture2D(texId, generateNoiseTexture().getId(), SSAO_MATERIAL_URN, "texNoise")); if (ssaoSamples == null) { createSamplesBuffer(); } }