Прежде чем мы начнем рассматривать варианты оптимизация текстур в UDK, я бы хотел показать список форматов текстур которые поддерживает UDK.
— .bmp
— .pcx
— .tga
— .float
— .psd
— .png
Я предпочитаю использовать формат TGA так как он поддерживаться в большинстве программ Плюс вы можете редактировать альфа канал. Но иногда текстуры в этом формате могут быть сохранены только с 32битным цветом или только альфа канал даже если его там не было. Это не очень хорошо потому что UDK при импорте файлов сжимает их с помощью встроенного компрессора DXTC. Тем не менее альфа плохо поддается компрессии а иногда вообще ее не проходит.
Для примера я возьму текстуру листа от банановой пальмы.
Мы привыкли сохранять текстуру вместе со всеми картами (diffuse, specular, normals), хотя в некоторых случая карту отражений (specular map) можно достать из диффузной карты (diffuse map)
На скриншоте выше, в редакторе материалов UDK, я вывел 2 канала из диффузной карты (diffuse map) красный и зеленый и сделал им режим наложения Multiply. Затем повторил процедуру но на этот раз повысил значение до 18. Вы можете настроить отражение в UDK или просто импортировать карту отражений (specular map) с расширением 256х256.
Иногда когда мы сохраняем текстуры забываем проверить их расширение. Всегда проверяйте ихнее расширение так как UDK импортирует только с расширением 2 (х2). Например: 256×256, 512×512, 1024×1024, 2048×2048 и т.д. Также убедитесь что файл будет сохранен с 8-битной цветностью на канал RGB\RGBA иначе в дальнейшем у вас могут возникнуть непредвиденные баги или дополнительные сложности. После того как вы загрузили текстуру в UDK убедитесь что вы выставили LOD Bias.
Как видно выше на скриншоте я загрузил свою текстуру бананового листа с расширением 1024х1024 но параметр Lod Bias я установил на 1. После этого наша текстура уменьшается на один шаг и становится с расширением 512х512. Причина по которой я уменьшил расширение текстуры это уменьшение использование памяти. Ниже я продемонстрирую это на скриншотах. Зайдите в UDK в меню View -> Browser window -> Texture Stats, вы должны увидеть окно статистики.
Как вы видите на картинке выше текстура загруженная с расширением 1024х1024 потребляет 1366kb памяти.
На этой картинке я включил LOD Bias и текстура потребляет гораздо меньше оперативной памяти.
Для объектов где нужна высокая детализация этот метод не подойдет, но если у вас в сцене присутствуют мелкие или незначительные объекты такие как трава, листья деревьев эта техника позволит вам сохранить очень много ресурсов.
Источник: cg.tutsplus.com