Would there be a problem with using high resolution textures for everything? For example, 2Kx2K or even 4Kx4K textures on all models? What about a very large texture for an entire (organic) level? I know the default space these textures would consume and the problem with storing them in graphics card memory, but I’m looking for unintented side effects of bundling up many high resolution textures in the game. For example, are textures scaled on the fly, or are they precomputed during compile?
In theory, Unity should scale down the textures as appropriate, right? But in practice, would that really work out?
To put this in perspective, I’m currently considering whether to use photorealistic or stylized textures.
Use high res textures.
When running on older graphics card which don’t support that high resolutions Unity will scale down the texture. Which has no performance penalty since we already have all the mip maps pre calculated and stored anyway.
However 4096 size textures are not supported very well supported on ATI cards.
The latest XT 1600 cards support it but i think no ATI cards before that did.
NVIDIA cards have supported 4096 texture size for a while now (Geforce FX and up if i remember correctly)
So depending on who your target audience is, it might make sense to use 2048 texture sizes.
But generally packing your textures into one big texture is the way to go.
This is a good reference as to which cards support which features (look for MAX_TEXTURE_SIZE in this case).
Incidentally, does Unity do anything to deal with situations where it can’t fit all the textures into VRAM at once? That is, does it just let OpenGL swap the textures in and out of the graphics card, or does it reduce texture sizes to reduce VRAM usage?
We don’t do anything special at the moment. But if you have a example project and opengl/unity gives you corrupted textures, please do report a bug.
Thanks – hi-res textures it is, then.