What size should textures be?

I've started making content in MD, Substance Painter, Blender etc, but im unsure on what size of texture maps is appropriate for distribution.
What is best practice for:
- Bit depth (for RBG maps like base colour and normal maps, and for grayscale maps)
- Format (JPEG, TIFF, PNG)
- Compression
In respect to compression, I can reduce the file size quite a lot with, say, a JPEG image without any visible deterioration of the image texture map, but unsure how any invisible changes will compare during render.
Post edited by lilweep on
Comments
The standard size is currently 4096. Occasionally you will see 8k textures but not often. If you can get away with smaller textures then you should. Smaller size requires less memory. For example if you're texturing a small object or using a tiling texture.
Format is usually jpeg with low compression (high quality). Normal maps should be png or tiff (lossles). Most textures are 8bit but normal maps should be 16bit.
Most are using full 4K these days, I think. 4096x4096 seems very common.
JPG is common since it's already 4K & you can deal with some loss at 4096 pixels, IMO.
4K PNG/GIF/TIFF less common due to file size, I think, and relatively little benefit versus a 4K JPG.
I mean... if you render UHD 4K (fewer than 4096 pixels), and the arm texture is at 4096 pixels, I think a little loss via JPG is more than okay. I mean, your rendered image is usually not 4K, so I don't see why the model textures need to be absolutely the best 100% quality 4K.
(A lot of us downscale it anyway to make it fit into a video card or whatever.)
I'm sure someone somewhere makes renders that need 4k textures but for most end users they are a PITA. At this point every asset I buy I make a render at the default texture size and then a second with the size cut in half. I have only maybe 5 times seen a difference or had an image comparison program find any. Then 99+% of the time I overwrite the defaults with the shrunk textures. That time saves me an immense amount of hassle when I start building scenes and rendering.
I flat do not buy anything with 8k textures except characters.
Kind of depends on what the textures are? The more they're tiled, the lower the resolution you can get away with.
theoretically would, say, a normal map in JPG format at 8k look better than a PNG normal map at 4k?
Again, it comes down to usage.
Normal maps? You're using those to create close-up details, in general, compared to bump maps for the more distant shots.
In general, these are creating elevation and variation in the skin surfaces. They are not directly influencing a render's quality, but causing a secondary effect on the surface of a person or object.
So. How much detail do you need for a secondary map like a Normal? It's really only there to create skin/surface imperfections, and only under the right kinds of lighting and camera details. So is that the best use of time and system memory?
It's really a use case discussion for me, from the user standpoint. Like, there's a reason why the Scene Optimizer has a button that says "Take out all the Normals?"). They are very secondary maps in most usage.
So, no, I don't think I have a need for 8k Normals. The actual effect of an 8k Normal would be, in 95% of cases, very limited in a practical application.
Normal maps should never be a jpg since it creates artifacts and you lose clarity.
Also, when creating textures, especially with substance painter, it will create extra textures like metalicity, roughness, etc which are usually overkill in DS and IRAY. Metal (specific materials) parts should have their own material slot instead of it being defined with a texture. You need to get the best look you can with the least amount of textures for performance sake in IRAY, but also allow for user custimization.
Hmmm... I have yet to figure this out so for me this is very interesting! The Wikipedia article for it seems to stress added detail and does not contain the word "elevation".
Just saying... I don't have my copy of Jeremy Birn's Digital Lighting and Rendering handy.
https://en.wikipedia.org/wiki/Normal_mapping
They don't actually create elevation, just the appearance of it. Displacement maps are for creating actual elevation.
They shouldn't really be an 8 bit texture, jpg or whatever. Tiff is better.
@OP
Textures should be decent size, 4K is fine. It may be bigger than most need most of the time, but a texture cannot be upsized or have detail added.
My understanding is that jpg/png compression saves you disk space only. As soon as the software does anything with those files they are decoded, and then only pixelcount and bitness matter. VRam is valuable to me, Ram less so, diskspace not very much. So large jpgs with high compression are the wrong approach IMO. The GPU does not care if that 8k map is max quality or distorted with compression artifacts.
A normal map is an improved bump map. In a bump map a greyscale image is used where the darker a p[ixel is the lower the location. In a normal map the greyscale is replaced by an RGB one. The precise color tells the renderer which way each polygon is oriented as well as the height vale previously found in bumps.
A displacement map is another step up in that it directs the render engine to create more geometry to produce surface details.