Problem of continuity in the rendering in multiple views (viewport/scissor), with the composer

Hello,
I’m using ThreeJS to create an application with several viewports of the same scene. The viewports are a continuity of the 3d scene. And they are not displayed continuously in the interface, I have to detach them.

I used this example: three.js/examples/webgl_multiple_views.html at 17abdb5e4b88368a6c1528743d014e641b32cf85 · mrdoob/three.js · GitHub

This works well with the renderer.setViewport() and renderer.setScissor() functions, as well as with the camera.setViewOffset() function, which allows me to ensure image continuity.

My problem is that I’m using the EffectComposer with specific passes (gtao, bloom, etc.), and this displays a discontinuity in the rendering.

See example: https://codepen.io/Vincent_mgd/pen/NWZBzqK

Is it possible to overcome this problem?
But I have the impression that it’s structural: with several views rendered by the EffectComposer, I can’t have continuity?

Another problem with multiview rendering:
I’ve noticed that you need to do a EffectComposer.setSize(viewSize) for each rendered view, to optimise, otherwise in my example with 4 views, there are 4 full size renderings for each frame.

Thanks in advance if you have any ideas or tips!

GTAOPass probably has this discontinuity regardless of whether it’s in a viewport or not, since it’s a screenspace effect(?)… i.e. there isn’t enough information at the edges for it to radially sample for occluding.
You may just not usually notice it in regular rendering context since the artifact is at the edges of the screen.
It’s also possible that the effect renders some overscan before resolving just the visible interior rectangle (in a full window context), but this may break down when a non full viewport is used since it can’t safely render outside the viewport. If that is the case, one possible solution would be to render your viewports to a smaller viewport sized renderer (or rendertarget), and then drawImage the result into your final canvas. This would avoid having to set the viewport/scissor etc, as each viewport would be rendering to a full target.

In my personal opinion though, the issue isn’t super noticable anyway unless you know what you’re looking for… so maybe just don’t worry about it?