ReflectiveShadowMap GI disappears when using SSAO, SSR or MotionBlur

Example:
https://playground.babylonjs.com/#WW87YI#10

The GI lighting totally disappears when using any of
SSAO2RenderingPipeline
SSRRenderingPipeline
or
MotionBlurPostProcess

However, it works when using
DefaultRenderingPipeline

Also disappears using my own post effects that are usiing scene.enablePrePassRenderer(), but not when just call this on its own, so maybe nothing to do with prepass.

This is looking like a true master question :slight_smile: let me summon @Evgeni_Popov in the thread

GIRSM doesn’t work with the pre-pass renderer, see:

The workaround is to force SSAO or SSR to use the geometry buffer instead:

let ssao = new BABYLON.SSAO2RenderingPipeline(
    "ssao",
    scene,
    {
        ssaoRatio: 0.5,
        blurRatio: 0.5,
    },
    camera,
    true // forceGeometryBuffer
)
1 Like

As @fazil47 said, you must use the geometry buffer renderer with SSAO/SSR if you want to use GI with them.

I updated the doc to make it clear:

1 Like