How to avoid compression and get a 16 bit normal map. I have tried many methods described on the Internet, but I can not avoid the normal map compression, which compresses everything to 8 bit, or 8 bit + dithering when I need 16 bit for smooth surfaces of cars. I really need it if the built-in functionality does not allow this, then I need a person who can help me with this
- set compression to userinterface2d
- go to project settings and change gbuffer format to high precision normals
- let me know if it worked
1.Other types of compression do not work with Normal material channel.
2.This option makes it more correct to display the normals of the mesh itself and not the normal texture
I just can’t believe that such a powerful tool like ue4 does not support 16 bit normals. I cannot find an answer to this question for several months now. In other programs, this is not a problem.
I can’t even start working on the project until I solve this issue
it works you just need to remap the values of the normalmap. the bitmap (bmp,tga, etc) has the normal information stored from 0 to 1, you need to remap that from -1 to 1. thats how unreal works with normalmaps. you can do that with a lerp per channel from -1 to 1 or a multiply (2) and a subtract (1). there are also remapping nodes already available.
but i remember there was an issue with 16 bit png or tga cant remember which of these didnt work correctly in ue and other 3d apps…
I need a visual example, if possible
Make texture as X in R and Y in G.
Import as UserInterface2D (e g, uncompressed) and turn off sRGB:
Sample this with a linear color sampler, multiply by 2, subtract 1, add a Y component based on how “flat” you want it to be (1.0 is a good start) and normalize:
Make sure you actually sample with a linear sampler as well!
(an alternative is to calculate the “Z” component based on sqrt(1 - xx - yy) but then there exist invalid values in the input texture that you shouldn’t use, so it depends on your specific input art.)
what he said