Any ideas RE artifacts on a render?

Hi there!

I working on my creative project and I faced with some strange behaviour. I use DefaultRenderingPipeline and post process in my scene. The post process is pass-through at the moment, basically I just provide 2d coordinates to the render texture and thats it. So the issue I faced is that I have some kind of “posterization” when I use this postprocess. As I don’t have enough colors to draw an image. Here is the screenshots:

With this problematic effect:

Without effect:

I used curves in a 2d editor to make the issue more visible

If anybody faced, please share your thoughts.

This is the way I creating post process:

const postProcess = postProcessMaterial.createPostProcess(this._scene.activeCamera, 1, Constants.TEXTURE_LINEAR_LINEAR);
            postProcess!.samples = 16;

But I also tried to tweak some params:

const postProcess = postProcessMaterial.createPostProcess(this._scene.activeCamera, {
    textureType: Constants.TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV,
    defines: 'precision highp float;'
}, Constants.TEXTURE_LINEAR_LINEAR);

What if you create the post-process with texture type Constants.TEXTURETYPE_FLOAT?

Already tried, no difference(

Can you share a repro ? It definitely looks like a wrong texture type somewhere in your pipeline.

1 Like

Well…) I’ll try) But I use DefaultRenderingPipeline. Maybe there is some property that allows to select texture type manually? Or do you said about texture type in my PostProcess?

Ok, I’ll try to reproduce the issue anyway

I think I reproduced the behaviour in this PG

But only when I use HDR

Your post process needs to be in float/half float to prevent banding artifacts: https://playground.babylonjs.com/#WB27SW#354

2 Likes

Yes, it works! Thank you!

1 Like