Post Effect on saecond camera

Hello all,
I have main orbit cam and second camera for taking screenhots ( has own layer ).
I try to use different posteffect for orbitCam (e.g. vignette) and other posteffect for screenCam. It’s possible ? I still getting error ‘Framebuffer is incomplete.’ for screenCams rendertarget…

Thank you for any advices.
Radek

Hi @Radek_HART,

That’s interesting, it should work since each camera component gets its own pc.PostEffectQueue. Could you share a sample project where this fails to take a look?

Thank you Leonidas.
here is sample project https://playcanvas.com/project/718550/overview/takescreens

Screenshot Camera has some posteffect and created sreens are empty. If poststript is disabled everything works fine.

Thanks @Radek_HART, I can reproduce that the screen grab doesn’t work, though I am not getting the framebuffere is incomplete error (that’s a familiar error with post process effects).

Also sometimes the screen grab will be black and some other times it will have the camera clear color.

I will investigate a bit more and let you know if I find something.

Thanks @Leonidas, the problem is even simpler than I thought.
It is not possible to take a screenshot at all if a any post effect is used.
Do you have any idea?

Hi @Radek_HART, sorry for the delay.

I had trouble finding the correct way of dealing with this. Adding a post process effect to a camera, automatically creates a new layer (PostEffectQueue) with a render target, that’s where the post effect is rendered to.

It seems there is no need to create and assign a render target, but we can use and read from that layer render target. So I thought, and that solved the blank texture issue, but the rendered result doesn’t include, mysteriously, the post process effect.

var colorBuffer = this.cameraEntity.camera.postEffects._sourceTarget._colorBuffer;

Try submitting an issue about it in the engine repo, either it’s a bug or there is another way of doing this.