hi
i have a question about which is more expensive when it comes to performance and memory usage (texture size (MB) or texture Count )
all texture resolutions are 2k
i have a Snow material from megascans which is 10 MB (Albedo - Roughness - Normal - AO - displacement )
now i tried to optimize it (from a video i watched and i did it in mixer )
i packed Albedo into RGB and Roughness into A --------- and Normal into X-Red Y-Green - AO into B and Disp into A
and i exported it as both EXR 32bit which Became 70 MB(together) and TARGA which Became 30 MB
now my question is which one is more expensive ???
as you can see the 5 textures (separated) are only 10MB
but the two textures Are 30 MB as TARGA 8bit and 70 MB EXR 32bit !
also if the texture Count is More important then which one is better (EXR32 Or TARGA8 ) ?
Update
i imported the EXR files into photoshop and Resaved them using Wavelet method and they Became About 20MB
i also tried it on TARGA 8 but didn’t made any difference
AnotherThing
Before that Video i mentioned
i had my textures as albedo RGB 8bit png - Normal RGB 8bit png - and (R_roughness - G_Displacement - B_Ao) as EXR
which i think if as ConradG** said i pack Roughness into G and export it as Png 8bit it is better. isn’t it ? ( i know that it becomes about 2 - 4 MB)**
Someone correct me if I’m wrong, but there is not point using 32bit files for materials on models. I’m not even sure Unreal support 32bit out of the box, which would only really matter when used in things like cubemaps/skydomes. More texture look ups can be expensive, so channel packing the grayscale ones is not a bad idea. You can use 16 bit, but again, that is for image based lighting. Since this is a snow material, all textures only need to be 8-bits per channel, meaning Targa8 is adequate.
The way I would pack maps would be 1 Albedo using RGB, 1 Packed map where R = AO, G = Roughness, B = Metallic, and 1 Grayscale Map (R8) for Displacement. Not all hardware runs Displacement, so I reason to have it a separate asset to be turned off for lower end hardware. Also, an RGB map (DXT1) is half the size of an RGBA (DXT5). In other words, having an alpha channel doubles it’s file size. One more note is when your 8 bit texture is compressed using DXT1, then bits per channel become 5/6/5, therefore the green channel has the highest fidelity after compression and is why we typically store the Roughness information there.