2 IvanZ9: я может не совсем наглядно выразился, поясню.
Разберём два случая.
Случай первый, на вход вада подается индексированная текстура.
В вад пишется индексированная текстура.
Случай второй, на вход вада подается 32-битная или 24-битная текстура.
В этом случается в вад пишется джве текстуры:
1. обычная 8-битная текстура, которая урезается до максимального размера 512х512. Это максимальный размер, при котором не происходит деградации цвета.
2. DDS-текстура сжатая в DXT5 YCoCg, без каких-либо изменений в размерах,
но предварительно выровненная по 16.
8-битная текстура используется в редакторе для наложения. В игре движок сперва пытается загрузить текстуру высокой чёткости в формате DDS, а если не находит её - то уже грузит 8-битную. Несмотря на то, что текстур становится больше (две вместо одной), их суммарный вес всё равно ниже одной несжатой текстуры. Пример - грузим 24-битную текстуру 1024х1024, которая весит 3 мегабайта. Индексированная текстура ресемплится до 512х512, квантизируется и её итоговый вес составит ~340 килобайт. DDS в DXT5 будет весить ~1 Mb.
Таким образом итоговый вес двух текстур ~1.3 Mb, против трёх мегабайт. Еще момент - сопутствующие текстуры материалов не делают для себя 8-битных копий, поскольку в редакторе они нам ни к чему, компиляторам на них тоже наплевать, следовательно мы можем хранить их исключительно в DXT-виде.
Спекулярки сжимаются в DXT1, нормалмапы в DXT5NM. DDS так устроен, что его степень сжатия выше чем у индексированной текстуры, даже для жирного DXT5.
Таким образом, поскольку нам надо всё равно где-то надо хранить нормалки и спекуляр, оно попросту попадает в вад и не мозолит нам глаза. Для каждого вада существует свой файлик, с описанием материалов, на манер глобального файла, который был в параное. Там можно прописать рефлективность от кубемап, степень блеска и другие константы и режимы. Когда наш вад полностью укомплектован, мы можем вкомпилить этот текстовый файлик внутрь вада, и вад превращается в ассет материалов, как в дорогих иномаркахсовременных движках. Этим ассетом можно делиться, можно выкладывать, это уже не просто текстурки, а архив настроенных материалов. И всё в одном файле.
Ну и конечно же у такого архива сохраняется совместимость с халфой - она просто проигнорирует неведомые лумпы (я к слову тут заглянул в сорцы rehlds, голдсорс даже не удосуживается проверять тип лумпов, но к счастью использует бинарный поиск, а мейквад гарантированно пишет лумпы таким образом, что первой найдется именно индексированная текстура).
Вот примерно такой расклад.
Теперь к вопросу зачем мне всё это надо. Вады снимают кучу головной боли, во первых компилятору не надо находить путь к игре, достаточно иметь пути к вадам. Во вторых, не надо сидеть как идиоту и в каких-то кастомных шейдерах прописывать пути к своим текстурам, которые всё равно несовместимы с халфовской записью имени текстуры без путей.
Вам ведь внешние текстуры были нужны для чего? Для полноценного альфа-канала и для текстур высокого разрешения. А это останется.