Formats for textures
Use lossless formats for anything that is data. Normal maps store surface direction in their colour channels, and JPG compression shifts those values, producing visible bumps and seams in lighting. Height, roughness and mask maps suffer similarly. PNG is the safe default; TIFF and EXR are common in film and offline rendering.
Colour textures can be lossy for delivery. Albedo or base colour textures tolerate high-quality JPG in a pinch, though engines usually recompress textures into their own GPU formats at build time anyway, so there is little gain in feeding them lossy sources.
Mind colour space. Base colour textures are sRGB. Data maps such as roughness, metalness and normals should be read as linear (non-colour) data in your 3D software. The image files are the same; the setting is on the texture node or import options.
Power of two, and square where you can. Mipmapping, compression and streaming all behave best with 512, 1024, 2048 and 4096-pixel textures.
Questions people ask
Why do my normal maps show artefacts?
Usually JPG compression, or the map being read as sRGB instead of linear data. Keep normal maps as PNG and set them to non-colour in your renderer.
How do I convert a glossiness map to roughness?
Invert it. Roughness is one minus glossiness, so the invert tool does exactly that.
What texture size should I use?
The smallest power of two that holds up at your closest camera distance. 2048 is a common default for hero assets, 1024 or 512 for props.