I am testing using a 4K diffuse map and 1K normals and masks (roughness, AO, height) on a landscape material (reasons is optimization). I thought I would need a UV multiplier to scale the 1K maps so they match the 4K ones, but it seems I do not need any, and if I actually use one I don’t get good results. Keeping the same UVs for 4K and 1K maps provides the best results. Would someone be able to explain this? Thanks!
The maps, regardless of size (resolution), are still 1 to 1. For example, if you took your 4k diffuse and rescaled it to 1k, it would still map the same…just the resolution would be lower.
UV coordinates are stored as 0-1 across the texture, so the resolution or aspect ratio doesn’t matter.
Yeah, your maps don’t all need to be the same resolution for a material if you don’t need a lot of detail in one of the maps
Thanks guys, so that’s cool. Btw I almost see no difference with 1K or 4K normal… this is a grass texture, I’ll test with others, but if this proves consistent then this is a great and cheap optimization!
For something like a grass mesh you could probably cut that down to 128, for a ground texture it depends, you can probably cut it to 512 and see how that looks
For physical based shading normal map and roughness is lot more important than albedo map. I would reduce albedo size first.
As it allready noticed one comment earlier: probably, you will need bigger normal/roughness maps, not albedo. Here’s the picture which greatly proof that concept. Notice how all details still represents on the face even then albedo has down to 512 size.
http://www.froyok.fr/archives/uplo/002/1400768454-texture_size.png
About reducing normal/roughness vs albedo, I think it comes down to which map is participating the most to details, and this I think is texture dependent. In my grass texture, the diffuse is pre-baked with albedo+AO+cavity, and it contains a fairly good amount of details, not just albedo variations. The reason why I pre-baked this is because this was the only way I found to have good results provided the input maps I had. On the other hand the roughness maps contains few and the normal an average amount of details. In this particular case of grass texture the diffuse is participating more to the details than others therefore it makes sense to have it hi-res. But this may be different for other maps.
I look at the pixels in my texture and try to figure out what’s the lowest resolution that can capture the detail I want. Easiest thing to do is import a 2K or 4K texture to the engine, then just raise the LOD bias until it stops reasonably improving quality. Keep in mind how close the player will get to your surface and whether or not that detail was worth it. Details should also be somewhat anti-aliased as well so they don’t look too pixelated when zooming in, and it is good to keep in mind whether you expect gamers to play at high resolutions or not.
Typically AO can run at 1/2 or 1/4 resolution of your normal map, but this is a purely case-by-case basis. A cloth with a silky wavy pattern in the normals might fare better than something with sharp, fine detail. And keep in mind uncompressed textures typically look as good as a compressed texture at double resolution, so if you import a bunch of grayscale maps for roughness and AO, those shouldn’t need to be as detailed as standard texture maps.
Yes I was planning to do that too, but I have 1080p screen. If I base my resolution on a 1080p screen, it might look bad on a 4K one.