How to decide the texture resolution

I wrote about this briefly at the end of my optimization guide: the texture size must be made for the viewing distance that you desire. The closer you get, the more resolution you need, and the further away less.

Judging the distance must be done realistically and objectively by thinking about the distance where the players will look at your asset / take screenshots in-game. Nobody will zoom in extremely close to see that stain you added in a window.

Example with an asset I did, a car wash. Realistically, most people will keep the camera at a distance where you can see most of the asset (Image 1), and not zoomed in very close (Image 2):

Image of a 3d carwash model

Image 1

Image of a 3d carwash model

Image 2

To illustrate this better, I ran some optimization tests in Unreal Engine 5, with the "Required Texture Resolution" tool to see based on the viewing distance from the camera, what resolution the GPU wants.

Here are 3 cubes which are 8x8x8 meters, with a 1k, 2k, and 4k texture left to right. The camera is placed in the same spot/distance.

Image of a 3d carwash model

The first cube is Good, the second one is 1X Over, and the third one is 2X Over more resolution than needed, based on the viewing distance and the size/pixels of my monitor.

Based on the information above, here is an example with my own asset, the car wash. Ideally, you want to be in the orange-white area depending on the distance that you decide to make your texture for:

Image of a 3d carwash model