Іноді буває що стиснення дуже небажано, або дає дуже поганий результат. Можна змириться і зберігати текстуру в BMP, а можна використовувати той факт, що альфа канал стискається з більшою точністю.
Трюк полягає в поділі текстури на кольоровість і на яскравість, яка буде зберігається в альфа каналі. Найпростіший спосіб так зробити - завантажити плагін для фотошопа FilterMeister і запустити в ньому цей скрипт:
Прихований текст: показати
ForEveryTile: int r_, g_, b_;
int max_;
int mul_;
if # 40; planes - planesWithoutAlpha == 0 # 41; Info # 40; "Please select RGB and Alpha channels in Photoshop's Channel palette. Then restart this plugin." # 41 ;;
return false;
>
if # 40; imageMode == 11 # 41; mul_ = 32768;
else if # 40; imageMode == 3 # 41; mul_ = 255;
else return false;
for # 40; y = y_start; y
g_ = src # 40; x, y, 1 # 41 ;;
b_ = src # 40; x, y, 2 # 41 ;;
max_ = max # 40; max # 40; r_, g_ # 41;, b_ # 41 ;;
r_ = # 40; r_ * mul_ # 41; / Max_;
g_ = # 40; g_ * mul_ # 41; / Max_;
b_ = # 40; b_ * mul_ # 41; / Max_;
pset # 40; x, y, 0, r_ # 41 ;;
pset # 40; x, y, 1, g_ # 41 ;;
pset # 40; x, y, 2, b_ # 41 ;;
pset # 40; x, y, 3, max_ # 41 ;;
Для "розпакування" такої текстури треба всього-лише написати в шейдера Combine texture * texture alpha
100 текстурок 1024х1024 в БМП і 100 текстурок 1024х1024 наприклад ПНГ / тга / ДДС різниця буде величезною
Після того як ЮНИТИ скомпресіла ці текстурки - різниці таки не буде, правильно? (Якщо без хитрих маніпуляцій з dds як писали вище)
Так як DXT - стиснення з втратами, то трюк з альфа-каналом дозволяє зменшити артефакти стиснення.