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.