PNG 16bit SRGB is identical to PNG 8bit RBG

So I was migrating my cave package from 4.7 to 4.9.2 and for some reason everything was really dark:

and it really confused me, then I remembered an older answerhub post where I reported a bug about 16 bit png’s not being able to export out of ue4.
So I changed the png’s to 8 bit and didnt import them untill this migration.

In unlit mode the same scene looks like:

the scene on the left has PNG 16 bit @ SRGB.
The scene on the right has PNG 8 bit @ SRGB.

now, lets change the PNG on the right to PNG 8 bit @ RGB
(Edit: just noticed I flipped the image…)

that must be a bug right?

(edit: ignore the version’s mentioned in the image, I thought that was the issue at first)

Hey Luos,

So to understand, you had a project in an older version of the engine, when you migrated the project the scene became really dark.

Now, when you migrated projects you had 16bit png textures for your materials. When you changed those to 8 bit then the scene was darker after migrating. You also didn’t add these textures until after the migration.

I just attempted the same step and I was unable to see what you are posting.

Do you have any reproduction steps or perhaps a copy of this project and I will see if this is reproducible.

Oh, it has nothing to do with the version of ue4, as I pointed out in the “edit”.
This is always the case.
Migrating had nothing to do with it, I just happen to import the 8 bit versions afterwards.
(Next time I should probably refrain from telling a story before I get to the point)

I also noticed that I made a typo in the previous post causing confusing, so…

  1. get a random texture.
  2. save one version as 16 bit png.
  3. save another one as 8 bit png.
  4. import both.
  5. already see the result, the 16 bit png is washed out. (srgb is automatically activated)

  1. disable SRGB on both:

conclusion: 16 bit png is washed out,

Funny thing, am setting up a test for you.
White only the 16 bit SRGB looks washed out as a texture:

When the texture is in a shader,only the 8bit SRGB isnt washed out:

Will edit post when file is uploaded.
Edit: Dropbox - Error

there you go.

This does appear to be a bug. I reproduced this on my end with a clean project.

I have entered a bug for this issue.

The bug number is UE-21913,

I will keep you informed on this bugs progress.

Thanks for reporting this Luos.

The engine doesn’t currently support 16-bit sRGB textures. When we’re doing the texture compression, all 16-bit textures are sent to the DDC as linear textures, regardless of the sRGB option. However, I suspect that there’s some miscommunication in the pipeline.

When the GPU reads an image that was stored linearly, but the option for sRGB is still true, so it expects that to be the case. As such it effectively double gamma corrects the image (hence the washed-out-ness).

Hey Nick, I just found out something else .PNG related which I felt is still relevant to this.

If the .png (8 bit in this case) is a grayscale instead of RGB, its impossible to export the texture out of ue4.

its not a bug, its a limitation.

See if you can grab the base-files, save them as 8-bit and use those.

I have the same problem, have this bug been checked?

I really needed to keep it 16 bit for being projected with better result on a voxelized object. The only way it work is by usibg tga instead of png.