Практическое использование движка Unity3d.
Задача 5: Загрузка DDS, BMP, TGA и других текстур через класс WWW
В этой статье рассмотрим следующую задачу: необходимо реализовать загрузку изображение через класс WWW в Unity3d. Т.к. Unity3d поддерживает загрузку изображений через WWW только форматов PNG и JPG (подробнее здесь: http://docs.unity3d.com/Documentation/ScriptReference/WWW-texture.html), то необходимо также реализовать загрузку DDS, BMP, GIF, PSD, TGA etc.
Демонстрация работы программы показана на рис. 1.
Рисунок 1. – Демонстрация работы приложения
Все необходимые форматы изображений поддерживаются библиотекой DevIL (подробнее здесь: http://openil.sourceforge.net/features.php).
Т.к. библиотека DevIL имеет отличное описание и множество примеров, нет надобности подробно описывать алгоритм загрузки изображений. Я лишь приведу краткое описание алгоритма работы программы:
- Загрузить текстуру через класс WWW;
- Данные получить через поле «bytes» у класса WWW;
- Из этих данных создать DevIL текстуру;
- Из DevIL текстуры получить массив цветов Color32[];
- На основе массива цветов создать Texture2D;
Для демонстрации реализации загрузки изображений я создал тестовое приложение. Хочу отметить, что это приложение также подгружает все доступные MipMap'ы с текстуры.
Если Вам нужно более детальное описание работы, или реализовать загрузку изображений не поддерживаемых Unity3d, пожалуйста, пишите в комментариях.
Демонстрацию работы можно скачать здесь:
No comments:
Post a Comment