Material optimization

sRGB just raises a linear space to a power of 1.8 or 2.2 (IDK what UE4 uses, everyone uses something different). You can always convert a linear texture to sRGB fairly cheaply by multiplying the texture by itself. This raises it to a power of 2. It MIGHT be a bit lighter than it should be, but it only costs one instruction and eliminates the obvious washed-out look with linear space, and players playing the game won’t notice the difference. Alternatively, you can use the levels adjustment in Photoshop ahead of time and save one instruction at the expense of some quality in the brighter areas of the texture. I’d recommend not doing this, exactly, because the one instruction savings is not worth the loss in quality.

The best way to channel-pack normals is to use a default texture compression settings, no sRGB, append the normal channels together and ConstantBiasScale it (Bias: -0.5, Scale: 2.0) and DeriveNormalZ to the normal map, and multiply whatever part of the texture that’s going to be affecting screen colors by itself. Take a look at the example below:

a6875935f9b965a53f493588d972784ae393afb7.jpeg