TEXTURE OPTIMIZATION
Texture optimization is done to save video memory at no visual quality-loss. This is done by several methods, individual for each texture and it's use. Typically by converting diffuse-maps to BC1/BC7 - DXT1/DXT5, and rescaling normal-maps and specular-maps.
Scaling:
Scaling textures according to the objects they cover, is more important than
scaling according to screen resolution, contrary to popular belief. It's true that if you have a
higher screen resolution, then you also need a bigger texture to cover the same
object, but proper scaling in relation to the specific object is still far more
important. As a rule of thumb, the texture size needed is twice the size of the
amount of pixels that the object takes of the screen when showing. (With lots of
exceptions of course)
Example: The texture for a mug. This object is rather small, and will
never take up a significant percentage of the screen. (Unless unusually
closely examined) An object this size doesn't need a texture size that matches
your screen resolution
to look perfect. You will not gain any quality improvement what so ever by using a
huge texture on a small object. The perfect texture size
for a mug, using a 4k monitor, will therefore not be a 4k texture, but rather
something like a 2k diffuse-map with 1k
normal-maps & 1k specular-maps.
Example: The texture for a tree. This is a huge object, that can cover a
large percentage of the screen, even without showing the entire object. This
texture therefore needs to be bigger than your screen resolution. On a 4k monitor, the perfect size would
probably be 8-16k, depending on your system recourses and your eye for detail.
Proper scaling: The first and most important thing is to ensure that the
texture looks good at 100% size in 2D. Meaning, resize according to the quality
of the texture without thinking of the object. When
quality is perfect, then the size needs to be compared to the object. If still
too big (This rarely happens) then it can be downsized further.
This is unfortunately a very common issue with texture mods.
A lot of mod authors (even Bethesda themselves) do a little "cheating" when
making HD textures. They take a 2k texture, and simply stretch it in Photoshop
to make it 4k. This is completely useless. A 4k texture that is made by
stretching a 2k texture, will look 100% identical in-game. Absolutely no
difference what so ever, not even a little. The only difference is that the 4k
texture wastes 4 times the amount of video memory. The reason they do it, is
because it looks better to state that the textures are 4k. A cheap little
marketing
trick, which unfortunately is very common. However, when
loaded into Photoshop, these "fake" HD textures are easily spotted, and can be downsized again without problems.
Compression:
Another common mistake, is missing or wrong texture compression. If a texture is
compressed where it shouldn't be, or left uncompressed where it actually could be
optimized, the quality won't be optimal, and the mod may take up way more video memory than
needed. This is very common too.
Memory-usage by formats:
Uncompressed 32-bit ARGB 4k texture size = 64mb
Uncompressed 24-bit RGB 4k texture size = 44mb
BC7/DXT5 with alpha (transparency) 4k texture size = 22mb
BC1/DXT1 no alpha 4k texture size = 11mb
Proper compression: With hundreds of textures loaded at the same time,
quite a lot of video memory can be saved by having proper compression. However,
not all textures can be compressed without quality-loss, so it's very important
only to compress the right texture types, and to take pixel-size into consideration as
well.
Texture types - Diffuse-maps:
These are textures that put an image on the surface of an object. They are
needed for every single object in the game, and are the most important textures.
Without a diffuse-map, the object would be all pink. This texture can usually
be compressed with BC1/DXT1 or BC7/DXT5 without any visual difference in the game. On a
close-up screenshot you may, or may not, notice a tiny difference (not
necessarily worse), but that's it.
Texture types - Normal-maps:
These textures are light-pointers. They provide a map of how light should look
on the texture, making it look like a real surface, nut just a flat image
wrapped around an object. These typically needs to be either left uncompressed
or, depending on the object of use, compressed with BC7/DXT5.
Texture types - Specular-maps:
These textures determine the amount of shine and where. Typically used to make
objects look wet, or to simulate a certain material. As these usually consist of
dot-like points and lines rather than large smooth ranges, BC7/DXT5 can be used in
99% of cases for these.
Aim of SSEBP texture compression:
To save as much video memory as possible without loss of quality, minded for
1080p/2160p.
Example of a standard optimal texture set: 4k diffuse-map compressed with
BC1/BC7 - DXT1/DXT5, 2k normal-map compressed with BC7/DXT5/uncompressed, and 2k specular-map
with BC7/DXT5 compression.
*Optimal compression/scale varies depending on object size/type, the
original texture quality, and in-game use/location.
Free texture software:
Intel Texture Works: (LINK)
*For editing dds textures in Photoshop (BC format)
Nvidia Texture Plug-in for Photoshop: (LINK)
*For editing dds textures in Photoshop (DXT format)
Nvidia Texture Tools Exporter: (LINK)
*For quick viewing textures from your desktop
Adobe Photoshop (LINK) is my strong personal preference, but GIMP is a 100% free and capable image tool: (LINK)
If you
notice in-game quality-loss caused by SSEBP texture optimization mods,
please let me know on Discord