2016-09-12 3 views
1

Я получаю сжатые видеофрагменты jpeg по сети каждые 30 кадров. Но у меня маломощное мобильное устройство, и, похоже, он сильно отстает, если я загружу следующие строки.Быстрая загрузка динамических текстур в Unity 3D

Texture2D tex; 
tex.LoadImage(MyUDPReceiver.Instance.data_JPG); 

Есть ли более эффективные способы решения этой проблемы?

+0

Почему бы не написать полный скрипт, где вы выполняете 'tex.LoadImage'? Это покажет, что еще вы делаете неправильно. То, как вы получаете изображение, тоже важно, поэтому вы должны опубликовать это как-то. – Programmer

ответ

0

Вы не должны использовать изображения JPEG или PNG, поскольку их декодирование выполняется очень медленно. Эти текстуры также декодируются для несжатого и используют много баранов.

Вы должны использовать текстуры ETC1, если вам нужен альфа-канал, DXT5. Обратите внимание, что DXT5 не поддерживается везде, поэтому вам может понадобиться поддержка другого типа текстуры для этого (PVRTC?).

Для этого используется tex.LoadImageRaw, для его использования вам необходимо проанализировать заголовок для значений ширины/высоты (просто простая структура).