Некоторое время назад пытался грузить dds.
Есть такая функция:
LoadRawTextureData
Недокументированная. В поиске не находится, но она есть (т.е. была когда я занимался). Обсуждение можно посмотреть
ТУТ.
Там я задавал вопрос, но нормального решения не нашел. Только костыли. Может тут у кого появится мысль как нормально грузить dds с неполным количеством mip-map уровней?
Цитата с юнити ру:
Если в текстуре недостаточно уровней mip - возникает ошибка
UnityException: LoadRawTextureData: not enough data provided (will result in overread).
Например есть две текстуры 1024*1024. У которой в текстуре присутствуют все 11 уровней - загружается, У которой всего 6 уровней выдает ошибку.
Количество mip уровней лежит по смещению 0x1c. Теперь сообразить бы как указать функции сколько уровней загружать.
Можно, конечно mip вообще не грузить, но часто это ж не очень хорошо - вообще не иметь mipmap
|
Костыли описаны там, приводить их тут не буду.
___________
Чувствую будет вопрос - а зачем собственно? А затем, что dds в проекте как таковых нет. Они формируются рантайм из неких данных (типа проприетарного архива). Извлечь их и просто добавить в проект - не выход.