Setting the clearColor
property of a MultiRenderTarget
will clear all the attached textures with the same color. Is there a way to clear each texture with a different color?
I think you could iterate all textures of the MultiRenderTarget
and clear them by the color of your choice.
It seems like the Texture
does not offer a method to clear color directly. Am I supposed to add a draw call to render to it?
Use texture.updateURL
to update the texture.
This way I have to upload data from cpu to gpu every frame
I don’t know what exactly do you want to achieve but this might help you:
1 Like
Thanks! This thread is quite helpful. I finally did things as follow:
const gl = scene.getEngine().getRenderingCanvas().getContext("webgl2");
multiRenderTarget.onClearObservable.add(() => {
gl.drawBuffers([gl.COLOR_ATTACHMENT0, gl.COLOR_ATTACHMENT1]);
gl.clearBufferfv(gl.COLOR, 0, [color1.r, color1.g, color1.b, color1.a]);
gl.clearBufferfv(gl.COLOR, 1, [color2.r, color2.g, color2.b, color2.a]);
});
By registering onClearObservable
the auto clear of RTT will be overwritten. And I can use clearBufferfv()
to set two different colors to the two color attachments.
1 Like