(Making a separate bug for this. Note this is original SSAORenderingPipeline and not the newer SSAO2RenderingPipeline).
SSAORenderingPipeline, configured exactly as per the tutorial,
suffers what Ill describe as a dirty ghost layer, as if the SSAO pass were run once and then cached instead of being recalculated per frame.
var ssao = new SSAORenderingPipeline('ssaopipeline', scene, 0.75, [ camera ]);
Not easily visible in still form, but you can see it when the camera rotates or zooms because the ghost layer appears attached to the camera. Shown here with ssao.totalStrength = 2.0 to exaggerate the layer for visibility.
The code has only the single ArcRotateCamera, nothing fancy being done there.
Render loop is nothing more than
engine.runRenderLoop(() => {
scene.render();
});
Babylon.js v5.16.0 - WebGL2 - Parallel shader compilation
- renderer: “ANGLE (NVIDIA, NVIDIA GeForce RTX 3080 Direct3D11 vs_5_0 ps_5_0, D3D11)”
- vendor: “Google Inc. (NVIDIA)”
- version: “WebGL 2.0 (OpenGL ES 3.0 Chromium)”
(All these on Windows 10)
Brave Version 1.41.100 Chromium: 103.0.5060.134 (Official Build) (64-bit)
Chrome (looks the same) Version 103.0.5060.134 (Official Build) (64-bit)
Firefox 103.0 (64-bit)
Edge Version 103.0.1264.77 (Official build) (64-bit)
Opera Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 OPR/89.0.4447.71