Sunday, April 7, 2013

Задача 5: Загрузка DDS, BMP, TGA и других текстур через класс WWW

Практическое использование движка 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