Mipmaps
From damanding and others:
“And
always generate mipmaps for XBox.”
* You
definitely want mipmaps. Even if they take up more space, they drastically improve game performance.
* Mipmaps for game performance - that's their purpose.
* Mipmaps were originally intended as a quality-at-a-distance improvement, the game performance came as a side-benefit.
* If you don't generate mipmaps everyone has worse performance, both on PC and XBox.
Question: What is the side-effect of no mipmaps?
* With rasterization (generating on the fly) the game engine says “render this” and the graphics card does a “what pixel in the image” math - it may look odd or different every time that the game has to rasterize that object.
* A good mipmap generator pre-determines “what pixel is important”, making the image look better from a distance.
* Without mipmaps it can look strange from a distance, plus you get really bad game performance. The XBox gurus will recommend that users don't use your mod. This is not because your mod/textures/etc are awful looking - it is strictly from the perspective of game performance reasons, XBox players need as much performance as possible.
From Jonathan, more info:
Things will still work without mipmaps. However the game could be trying to render that 1k texture on a 3 pixel tall building model half a mile away.
Essentially you as a mod author are making the game engine struggle by forcing it to resize your textures on the fly. A lot of non-mipmap textures will drop the player's FPS dramatically while the engine resizes things to cope.
From damanding:
Performance is much more critical on XBox than PC. If you're going to damage the intended performance systems then don't publish for XBox.
While space is a concern (especially with the XBox's 1GB mod limit), mipmaps are too important to do without in exchange for a smaller mod.
Most users would have no way of knowing that your textures will cause reduced performance. Users therefore have no way to provide you with that feedback, that there is an issue with your textures/mod.
Texture sizes, damanding:
Never publish 4k for XBox. 2k is the max and should be used rarely.
Have you ever noticed an object with a somewhat blurry looking texture that then suddenly looks detailed? That's the mipmaps at work.
(Whisper) An addition - if the item is small (like a bottle size?) then you don't need 1024 or 1k size - 512 or 1/2k size should be plenty. (Probably less is needed - players aren’t going to be regularly looking at a bottle, fuse, screwdriver, wrench, etc at close range - it’s a waste of space plus causes their hardware to struggle loading large-sized textures.)
How the game loads textures, damanding:
The game loads the mipmaps first and then the full texture as you're closer. If it's having to load the full texture even from far away, that's worse for performance in general. (This in relation to not using mipmaps in your textures.)
Final summation from damanding:
* (If you have no mipmaps with your textures) Redo all your textures and add mipmaps, everyone will love you for it.
* Also if you're using GIMP, use a recent version of it, older versions of the program broke mipmaps.
Technical Details of Mipmaps
When you get close to a wall, the game has to start magnifying (aka upscaling) the image. Since the basic detail is not there everything gets blurry. The way to fix that is to have a higher resolution image of the wall - at the cost of bigger filesize.
When you get farther away the game starts downscaling the image. When that 1k image only covers a 512x512 area of the screen the graphics card/cpu starts to work. They work harder when things are at 256x256 and 128x128 areas of the screen.
When that area of the screen is only 3x3 pixels size it is doing a lot of calculations to reduce that 1k image down to 3x3 pixels.
To save the computer/console from grinding hard when it tries to render that 1024x1024 image to cover a 64x64 area, the designers of the game did something really smart: they pre-generated lots of smaller images and saved them in the dds file. These pre-generated smaller images are called mip-maps.
Mipmap Size
A texture file of 1024x1024 size is generally around the 1.3 megabyte size.
What the mipmaps do is add progressively smaller images into the same file (so that the system doesn’t have to keep track of lots of files of different sizes).
Each smaller added file is half the screen resolution of the last, all the way down to a 1x1 pixel “image” that is a wall of that 10-story building a mile away in the game. So the standard 1k file packs together a bunch of pictures of these sizes:
1024x1024
512x512
256x256
128x128
64x64
32x32
16x16
8x8
4x4
2x2
1x1
If the original full-sized file was only 1mb size, adding all of these extra images into it will increase the file size by only 1/3rd. This turns a 1mb file into a 1.3mb file - slightly more size and much easier for the game to deal with.
Graphically a file with mipmaps might look like the following (
source):
You will note that all of the images described above are square and in multiples of two. This is a built-in part of the optimization system. While it might seem like a good idea to shave off a little image size by using a smaller image (example: 900x900 base image size) this also breaks the game optimization. It causes the system to work harder, may cause the images to look weird, and might cause game crashes.
Ditto for not making mipmaps at all in your images.
Summary
When choosing what size of texture to put up, take into account the size of the object and how close the player will likely get to it. A 4k 10mm bullet texture (for example - I've not looked to see if there actually is one out there) is humorously silly in this context and is a waste of system resources.